## LaTeX: loading equations from an external file

Some time ago I had to give a hand to my girlfriend in writing one of
her physics papers using LaTeX. Obviously she provided the content,
and asked me for some advice on how to write the LaTeX code.
It wasn’t a though task, but the source code was a real mess because of all the
(sometimes *huge*) equations being mixed up with the text.

I started marking all the equations with
*intrusive* comments to help my eyes set them apart from the text,
but the code was getting even more unreadable.

Moreover, we wanted to split the workload this way: you write the equations,
and I write the text around. We tried using `git`

to merge
our edits to the sources, but it was often complaining about merge
*conflicts*, because we were working on the very same files thus
making conflictual edits by mistake.

Then I though I had to *separate* the equations from the code.

How? Since making a single file for each equation is overkill and really
unconfortable for the person writing the equations, I searched for a way to
put *all* the equations in a separate file, tag them with an identifier,
and have a command like `\loadeq{23}`

to include them in
the main source file.

I couldn’t find anything pre-made, but I came across this tex.stackexchange.com post.

The LaTeX package `catchfilebetweentags`

allows you to include
*parts* of other files delimited with a tag (basically a pseudo-XML
tag wrapped in a LaTeX comment), by using the command `\ExecuteMetaData[file.tex]{tag}`

.

I created the file `equations.tex`

file as follows (please
notice the pseudo-XML tags around equations):

% Equations dictionary \documentclass[11pt]{article} \usepackage{amssymb,amsmath} % Begin document \begin{document} %<*eq001> \begin{equation} F\left (x_1,\dots,x_n,\frac{\partial u}{\partial x_1},\dots,\frac{\partial u}{\partial x_n},\frac{\partial^2 u}{\partial x_1\partial x_1},\dots,\frac{\partial^2 u}{\partial x_n\partial x_n},\dots \right). \end{equation} %</eq001> %<*eq002> \begin{equation} u_x=\frac{\partial u}{\partial x}, \quad\quad\quad u_{xy}=\frac{\partial^2 u}{\partial y \partial x}=\frac{\partial u}{\partial y}\left( \frac{\partial u}{\partial x} \right). \end{equation} %</eq002> % A bunch of other equations... \end{document}

And I defined the custom command `\loadeq`

in my `main.tex`

source file.

\usepackage{catchfilebetweentags} \newcommand{\loadeq}[1]{% \ExecuteMetaData[equations.tex]{eq#1}% }

Including an equation in `main.tex`

became easy like this:

\loadeq{001}

The conclusion is that loading the equations from a unique external file proved to be a good idea: the code was more readable, and we efficiently divided the workload.