html_be_strict = false;
html_math_output = MathML;
html_math_img_scale = 1.0;
+ html_css_as_file = false;
output_sync = false;
use_refstyle = true;
html_math_output = static_cast<MathOutput>(temp);
} else if (token == "\\html_be_strict") {
lex >> html_be_strict;
+ } else if (token == "\\html_css_as_file") {
+ lex >> html_css_as_file;
} else if (token == "\\html_math_img_scale") {
lex >> html_math_img_scale;
} else if (token == "\\html_latex_start") {
}
os << "\\tracking_changes " << convert<string>(trackChanges) << '\n'
- << "\\output_changes " << convert<string>(outputChanges) << '\n'
- << "\\html_math_output " << html_math_output << '\n'
- << "\\html_be_strict " << convert<string>(html_be_strict) << '\n';
+ << "\\output_changes " << convert<string>(outputChanges) << '\n'
+ << "\\html_math_output " << html_math_output << '\n'
+ << "\\html_css_as_file " << html_css_as_file << '\n'
+ << "\\html_be_strict " << convert<string>(html_be_strict) << '\n';
if (html_math_img_scale != 1.0)
os << "\\html_math_img_scale " << convert<string>(html_math_img_scale) << '\n';
}
-bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
- TexRow & texrow, FileName const & filepath) const
+bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
+ FileName const & filepath) const
{
// http://www.tug.org/texmf-dist/doc/latex/base/fixltx2e.pdf
// !! To use the Fix-cm package, load it before \documentclass, and use the command
// Do not to load any other package before the document class, unless you
// have a thorough understanding of the LATEX internals and know exactly what you
// are doing!
- if (features.mustProvide("fix-cm")) {
+ if (features.mustProvide("fix-cm"))
os << "\\RequirePackage{fix-cm}\n";
- texrow.newline();
- }
os << "\\documentclass";
}
os << '{' << from_ascii(tclass.latexname()) << "}\n";
- texrow.newline();
// end of \documentclass defs
- int nlines;
// if we use fontspec, we have to load the AMS packages here
string const ams = features.loadAMSPackages();
- if (useNonTeXFonts && !ams.empty()) {
+ if (useNonTeXFonts && !ams.empty())
os << from_ascii(ams);
- nlines = int(count(ams.begin(), ams.end(), '\n'));
- texrow.newlines(nlines);
- }
- if (useNonTeXFonts) {
+ if (useNonTeXFonts)
os << "\\usepackage{fontspec}\n";
- texrow.newline();
- }
// font selection must be done before loading fontenc.sty
string const fonts =
fonts_expert_sc, fonts_old_figures,
fonts_sans_scale, fonts_typewriter_scale,
useNonTeXFonts, features);
- if (!fonts.empty()) {
+ if (!fonts.empty())
os << from_ascii(fonts);
- nlines =
- int(count(fonts.begin(), fonts.end(), '\n'));
- texrow.newlines(nlines);
- }
+
if (fonts_default_family != "default")
os << "\\renewcommand{\\familydefault}{\\"
<< from_ascii(fonts_default_family) << "}\n";
|| arab != string::npos) {
os << "\\usepackage[" << from_ascii(font_encoding())
<< ",LFE,LAE]{fontenc}\n";
- texrow.newline();
} else {
os << "\\usepackage[" << from_ascii(font_encoding())
<< "]{fontenc}\n";
- texrow.newline();
}
}
// handle inputenc etc.
- writeEncodingPreamble(os, features, texrow);
+ writeEncodingPreamble(os, features);
// includeonly
if (!features.runparams().includeall && !included_children_.empty()) {
os << "}\n";
}
- if (!listings_params.empty() || features.isRequired("listings")) {
+ if (!listings_params.empty() || features.isRequired("listings"))
os << "\\usepackage{listings}\n";
- texrow.newline();
- }
+
if (!listings_params.empty()) {
os << "\\lstset{";
// do not test validity because listings_params is
// we can't support all packages, but we should load the color package
if (par.find("\\color", 0) != string::npos)
features.require("color");
- os << from_utf8(par);
- // count the number of newlines
- for (size_t i = 0; i < par.size(); ++i)
- if (par[i] == '\n')
- texrow.newline();
- os << "}\n";
- texrow.newline();
+ os << from_utf8(par)
+ << "}\n";
}
if (!tclass.provides("geometry")
&& (use_geometry || nonstandard_papersize)) {
if (!g_options.empty())
os << '[' << g_options << ']';
os << "{geometry}\n";
- texrow.newline();
// output this only if use_geometry is true
if (use_geometry) {
os << "\\geometry{verbose";
if (!columnsep.empty())
os << ",columnsep=" << from_ascii(Length(columnsep).asLatexString());
os << "}\n";
- texrow.newline();
}
} else if (orientation == ORIENTATION_LANDSCAPE
|| papersize != PAPER_DEFAULT) {
features.require("papersize");
}
- if (tokenPos(tclass.opt_pagestyle(),
- '|', pagestyle) >= 0) {
- if (pagestyle == "fancy") {
+ if (tokenPos(tclass.opt_pagestyle(), '|', pagestyle) >= 0) {
+ if (pagestyle == "fancy")
os << "\\usepackage{fancyhdr}\n";
- texrow.newline();
- }
os << "\\pagestyle{" << from_ascii(pagestyle) << "}\n";
- texrow.newline();
}
// only output when the background color is not default
os << "\\setcounter{secnumdepth}{"
<< secnumdepth
<< "}\n";
- texrow.newline();
}
if (tocdepth != tclass.tocdepth()) {
os << "\\setcounter{tocdepth}{"
<< tocdepth
<< "}\n";
- texrow.newline();
}
}
os << "\\setlength{\\parskip}{\\medskipamount}\n";
break;
}
- texrow.newline();
os << "\\setlength{\\parindent}{0pt}\n";
- texrow.newline();
} else {
// when separation by indentation
// only output something when a width is given
if (getIndentation().asLyXCommand() != "default") {
os << "\\setlength{\\parindent}{"
- << from_utf8(getIndentation().asLatexCommand())
+ << from_utf8(getIndentation().asLatexCommand())
<< "}\n";
- texrow.newline();
}
}
// to access the stream itself in PDFOptions.
os << lyxpreamble;
- int lines =
- int(count(lyxpreamble.begin(), lyxpreamble.end(), '\n'));
-
OutputParams tmp_params = features.runparams();
- lines += pdfoptions().writeLaTeX(tmp_params, os,
+ pdfoptions().writeLaTeX(tmp_params, os,
documentClass().provides("hyperref"));
- texrow.newlines(lines);
// set back for the rest
lyxpreamble.clear();
// correctly break URLs with hyperref and dvi output
if (!i18npreamble.empty())
lyxpreamble += i18npreamble + '\n';
- nlines = int(count(lyxpreamble.begin(), lyxpreamble.end(), '\n'));
- texrow.newlines(nlines);
-
os << lyxpreamble;
return use_babel;
}
-void BufferParams::writeEncodingPreamble(odocstream & os,
- LaTeXFeatures & features, TexRow & texrow) const
+void BufferParams::writeEncodingPreamble(otexstream & os,
+ LaTeXFeatures & features) const
{
// XeTeX does not need this
if (features.runparams().flavor == OutputParams::XETEX)
&& ((inputenc == "auto" && language->encoding()->package() == Encoding::inputenc)
|| (inputenc != "auto" && encoding().package() == Encoding::inputenc))) {
os << "\\usepackage[utf8]{luainputenc}\n";
- texrow.newline();
}
return;
}
os << from_ascii(doc_encoding);
}
os << "]{inputenc}\n";
- texrow.newline();
}
if (package == Encoding::CJK || features.mustProvide("CJK")) {
if (language->encoding()->name() == "utf8-cjk"
os << "\\usepackage{CJKutf8}\n";
else
os << "\\usepackage{CJK}\n";
- texrow.newline();
}
} else if (inputenc != "default") {
switch (encoding().package()) {
break;
os << "\\usepackage[" << from_ascii(inputenc)
<< "]{inputenc}\n";
- texrow.newline();
break;
case Encoding::CJK:
if (encoding().name() == "utf8-cjk"
os << "\\usepackage{CJKutf8}\n";
else
os << "\\usepackage{CJK}\n";
- texrow.newline();
break;
}
}
// The encoding "armscii8" (for Armenian) is only available when
// the package "armtex" is loaded.
if (language->encoding()->latexName() == "armscii8"
- || inputenc == "armscii8") {
+ || inputenc == "armscii8")
os << "\\usepackage{armtex}\n";
- texrow.newline();
- }
}