from sympy import *
from IPython.display import display,Math
x,y,z = symbols("x y z", cls=Function)
r,theta,phi = symbols(r"r \theta \phi")
r_vector_symbol = symbols(r"\vec{r}")
x = r*sin(theta)*cos(phi)
y = r*sin(theta)*sin(phi)
z = r*cos(theta)
r_vector = Matrix([x,y,z])
dr_vectordr_symbol = symbols(r'\frac{\partial{\vec{r}}}{\partial{r}}')
dr_vectordtheta_symbol = symbols(r'\frac{\partial{\vec{r}}}{\partial{\theta}}')
dr_vectordphi_symbol = symbols(r'\frac{\partial{\vec{r}}}{\partial{\phi}}')
dr_vectordr = diff(r_vector,r)
dr_vectordtheta = diff(r_vector,theta)
dr_vectordphi = diff(r_vector,phi)
er_symbol, etheta_symbol, ephi_symbol = symbols(r'\vec{e}_r \vec{e}_\theta \vec{e}_\phi')
er = dr_vectordr
etheta = dr_vectordtheta
ephi = dr_vectordphi
display(Math(f'{er_symbol}\cdot{er_symbol} = {latex(er.dot(er).simplify())}'))
display(Math(f'{etheta_symbol}\cdot{etheta_symbol} = {latex(etheta.dot(etheta).simplify())}'))
display(Math(f'{ephi_symbol}\cdot{ephi_symbol} = {latex(ephi.dot(ephi).simplify())}'))