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;