Ignore geometry-related settings if the class provides geometry

Fixes #11724

(cherry picked from commit dce9e44a14)
(cherry picked from commit b0a2868938)
This commit is contained in:
Juergen Spitzmueller 2020-01-29 11:25:01 +01:00 committed by Richard Kimberly Heck
parent e30adc702c
commit 1f060e5b7a

View File

@ -1803,7 +1803,8 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
os << "}\n";
}
if (use_geometry || nonstandard_papersize) {
if (!features.isProvided("geometry")
&& (use_geometry || nonstandard_papersize)) {
odocstringstream ods;
if (!getGraphicsDriver("geometry").empty())
ods << getGraphicsDriver("geometry");
@ -1915,20 +1916,17 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
break;
}
docstring g_options = trim(ods.str(), ",");
os << "\\usepackage";
// geometry-light means that the class works with geometry, but overwrites
// the package options and paper sizes (memoir does this).
// In this case, all options need to go to \geometry
// and the standard paper sizes need to go to the class options.
if (!features.isProvided("geometry")) {
os << "\\usepackage";
if (!g_options.empty() && !features.isProvided("geometry-light")) {
os << '[' << g_options << ']';
g_options.clear();
}
os << "{geometry}\n";
if (!g_options.empty() && !features.isProvided("geometry-light")) {
os << '[' << g_options << ']';
g_options.clear();
}
if (use_geometry || features.isProvided("geometry")
|| features.isProvided("geometry-light")) {
os << "{geometry}\n";
if (use_geometry || features.isProvided("geometry-light")) {
os << "\\geometry{verbose";
if (!g_options.empty())
// Output general options here with "geometry light".