Abstract
While each computer algebra system (CAS) contains its own unique syntax for
inputting mathematical expressions, LaTeX is perhaps the most widespread
language for typesetting mathematics. NRPyLaTeX (NL) enables direct LaTeX input
of complex tensorial expressions (written in Einstein notation) relevant to
general relativity and differential geometry into the SymPy CAS. As SymPy also
supports output compatible with the Mathematica and Maple CASs, NL lowers the
learning curve for inputting and manipulating tensorial expressions in three
widely used CASs. LaTeX however is a typesetting language, and as such is not
designed to resolve ambiguities in mathematical expressions. To address this,
NL implements a convenient configuration interface that, e.g., defines
variables with certain attributes. Configuration commands appear as LaTeX
comments, so that entire NL workflows can fit seamlessly into the LaTeX source
code of scientific papers without interfering with the rendered mathematical
expressions. Further, NL adopts NRPy+'s rigid syntax for indexed symbols (e.g.,
tensors), which enables NL output to be directly converted into highly
optimized C/C++-code kernels using NRPy+. Finally NL has robust and
user-friendly error-handling, which catches common tensor indexing errors and
reports unresolved ambiguities, further expediting the input and validation of
LaTeX expressions into a CAS.