diff --git a/doc/dynare.texi b/doc/dynare.texi
index d355a76884907600eb0f0487748179520ab166c1..13ac2279a7460da364a4914fbf4324d7c86c3780 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -2149,7 +2149,8 @@ For the required @LaTeX{} packages, @pxref{write_latex_original_model}.
 @table @code
 
 @item write_equation_tags
-Write the equation tags in the latex output
+Write the equation tags in the @LaTeX{} output. NB: the equation tags will be
+interpreted with @LaTeX{} markups.
 
 @end table
 
diff --git a/preprocessor/ModelTree.cc b/preprocessor/ModelTree.cc
index deec8b723819ec928dec94d49af0c298f8faad63..ed5ecdbeb83459dae77acad7c9d9499aa02b5ef5 100644
--- a/preprocessor/ModelTree.cc
+++ b/preprocessor/ModelTree.cc
@@ -1573,19 +1573,31 @@ ModelTree::writeLatexModelFile(const string &basename, ExprNodeOutputType output
 
   for (int eq = 0; eq < (int) equations.size(); eq++)
     {
-      content_output << "\\begin{dmath}" << endl
-                     << "% Equation " << eq+1 << endl;
+      content_output << "% Equation " << eq + 1 << endl;
+      bool wrote_eq_tag = false;
       if (write_equation_tags)
-        for (vector<pair<int,pair<string,string> > >::const_iterator iteqt = equation_tags.begin();
-             iteqt != equation_tags.end(); iteqt++)
-          if (iteqt->first == eq)
-            {
-              content_output << "[\\textrm{" << iteqt->second.first << "}";
-              if (!empty(iteqt->second.second))
-                content_output << " = \\textrm{``" << iteqt->second.second << "''}";
-              content_output << "]";
-            }
+        {
+          for (vector<pair<int,pair<string,string> > >::const_iterator iteqt = equation_tags.begin();
+               iteqt != equation_tags.end(); iteqt++)
+            if (iteqt->first == eq)
+              {
+                if (!wrote_eq_tag)
+                  content_output << "\\noindent[";
+                else
+                  content_output << ", ";
+
+                content_output << iteqt->second.first;
+
+                if (!empty(iteqt->second.second))
+                  content_output << "= `" << iteqt->second.second << "'";
+
+                wrote_eq_tag = true;
+              }
+        }
+      if (wrote_eq_tag)
+        content_output << "]";
 
+      content_output << "\\begin{dmath}" << endl;
       // Here it is necessary to cast to superclass ExprNode, otherwise the overloaded writeOutput() method is not found
       dynamic_cast<ExprNode *>(equations[eq])->writeOutput(content_output, output_type);
       content_output << endl << "\\end{dmath}" << endl;
diff --git a/tests/TeX/fs2000_corr_ME.mod b/tests/TeX/fs2000_corr_ME.mod
index 4e67e98fee278ed8c1ef8177ed54ae5e6df6130c..c226ef835860c6d7f2d5e7698a41e7f8b02506a2 100644
--- a/tests/TeX/fs2000_corr_ME.mod
+++ b/tests/TeX/fs2000_corr_ME.mod
@@ -71,7 +71,7 @@ del = 0.02;
 options_.TeX=1;
 
 model;
-[name='technology growth']
+[name='technology growth: $\Delta A_{t}$', eq='\#1']
 dA = exp(gam+e_a);
 [name='money supply rule']
 log(m) = (1-rho)*log(mst) + rho*log(m(-1))+e_m;