From c4bcdf837a3beac6ea8b11596cb6360e411eb5c0 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Sat, 10 May 2008 22:35:17 +0000 Subject: [PATCH] Make it less ugly and safer, as when adding to the preamble one doesn't have to check whether \makeatletter has already been added or not. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24713 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/BufferParams.cpp | 47 ++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index 3f52f99702..b444a2b4a9 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -1271,45 +1271,30 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features, lyxpreamble += oss.str(); } - // only add \makeatletter and \makeatother when actually needed - bool makeatletter = false; + // Will be surrounded by \makeatletter and \makeatother when needed + docstring atlyxpreamble; // Some macros LyX will need docstring tmppreamble(from_ascii(features.getMacros())); - if (!tmppreamble.empty()) { - if (!makeatletter) { - lyxpreamble += "\n\\makeatletter\n"; - makeatletter = true; - } - lyxpreamble += "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " + if (!tmppreamble.empty()) + atlyxpreamble += "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " "LyX specific LaTeX commands.\n" + tmppreamble + '\n'; - } // the text class specific preamble tmppreamble = features.getTClassPreamble(); - if (!tmppreamble.empty()) { - if (!makeatletter) { - lyxpreamble += "\n\\makeatletter\n"; - makeatletter = true; - } - lyxpreamble += "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " + if (!tmppreamble.empty()) + atlyxpreamble += "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " "Textclass specific LaTeX commands.\n" + tmppreamble + '\n'; - } /* the user-defined preamble */ - if (!preamble.empty()) { - if (!makeatletter) { - lyxpreamble += "\n\\makeatletter\n"; - makeatletter = true; - } + if (!preamble.empty()) // FIXME UNICODE - lyxpreamble += "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " + atlyxpreamble += "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% " "User specified LaTeX commands.\n" + from_utf8(preamble) + '\n'; - } // Itemize bullet settings need to be last in case the user // defines their own bullets that use a package included @@ -1343,16 +1328,14 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features, } } - if (!bullets_def.empty()) { - if (!makeatletter) { - lyxpreamble += "\n\\makeatletter\n"; - makeatletter = true; - } - lyxpreamble += bullets_def + "}\n\n"; - } + if (!bullets_def.empty()) + atlyxpreamble += bullets_def + "}\n\n"; - if (makeatletter) - lyxpreamble += "\\makeatother\n\n"; + if (atlyxpreamble.find(from_ascii("@")) != docstring::npos) + lyxpreamble += "\n\\makeatletter\n" + + atlyxpreamble + "\\makeatother\n\n"; + else + lyxpreamble += '\n' + atlyxpreamble; int const nlines = int(count(lyxpreamble.begin(), lyxpreamble.end(), '\n')); -- 2.39.2