mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Fix interplay of memoir and geometry
Fixes: #10970
(cherry picked from commit 65c1ae8133
)
This commit is contained in:
parent
7c0d9eb4d9
commit
1ee62a3358
@ -17,6 +17,9 @@ PageStyle Headings
|
||||
Provides makeidx 1
|
||||
Provides framed 1
|
||||
Provides subscript 1
|
||||
# Geometry is supported, but the package options and paper sizes
|
||||
# are ignored
|
||||
Provides geometry-light 1
|
||||
# Memoir has support for line spacing, but uses different names from
|
||||
# what setspace.sty does.
|
||||
Provides SetSpace 1
|
||||
|
@ -1602,7 +1602,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
|
||||
&& papersize != PAPER_A5
|
||||
&& papersize != PAPER_B5;
|
||||
|
||||
if (!use_geometry) {
|
||||
if (!use_geometry || features.isProvided("geometry-light")) {
|
||||
switch (papersize) {
|
||||
case PAPER_A4:
|
||||
clsoptions << "a4paper,";
|
||||
@ -1803,8 +1803,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
|
||||
os << "}\n";
|
||||
}
|
||||
|
||||
if (!features.isProvided("geometry")
|
||||
&& (use_geometry || nonstandard_papersize)) {
|
||||
if (use_geometry || nonstandard_papersize) {
|
||||
odocstringstream ods;
|
||||
if (!getGraphicsDriver("geometry").empty())
|
||||
ods << getGraphicsDriver("geometry");
|
||||
@ -1915,31 +1914,45 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
|
||||
case PAPER_DEFAULT:
|
||||
break;
|
||||
}
|
||||
docstring const g_options = trim(ods.str(), ",");
|
||||
os << "\\usepackage";
|
||||
if (!g_options.empty())
|
||||
os << '[' << g_options << ']';
|
||||
os << "{geometry}\n";
|
||||
// output this only if use_geometry is true
|
||||
if (use_geometry) {
|
||||
docstring g_options = trim(ods.str(), ",");
|
||||
// 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 (use_geometry || features.isProvided("geometry")
|
||||
|| features.isProvided("geometry-light")) {
|
||||
os << "\\geometry{verbose";
|
||||
if (!topmargin.empty())
|
||||
os << ",tmargin=" << from_ascii(Length(topmargin).asLatexString());
|
||||
if (!bottommargin.empty())
|
||||
os << ",bmargin=" << from_ascii(Length(bottommargin).asLatexString());
|
||||
if (!leftmargin.empty())
|
||||
os << ",lmargin=" << from_ascii(Length(leftmargin).asLatexString());
|
||||
if (!rightmargin.empty())
|
||||
os << ",rmargin=" << from_ascii(Length(rightmargin).asLatexString());
|
||||
if (!headheight.empty())
|
||||
os << ",headheight=" << from_ascii(Length(headheight).asLatexString());
|
||||
if (!headsep.empty())
|
||||
os << ",headsep=" << from_ascii(Length(headsep).asLatexString());
|
||||
if (!footskip.empty())
|
||||
os << ",footskip=" << from_ascii(Length(footskip).asLatexString());
|
||||
if (!columnsep.empty())
|
||||
os << ",columnsep=" << from_ascii(Length(columnsep).asLatexString());
|
||||
os << "}\n";
|
||||
if (!g_options.empty())
|
||||
// Output general options here with "geometry light".
|
||||
os << "," << g_options;
|
||||
// output this only if use_geometry is true
|
||||
if (use_geometry) {
|
||||
if (!topmargin.empty())
|
||||
os << ",tmargin=" << from_ascii(Length(topmargin).asLatexString());
|
||||
if (!bottommargin.empty())
|
||||
os << ",bmargin=" << from_ascii(Length(bottommargin).asLatexString());
|
||||
if (!leftmargin.empty())
|
||||
os << ",lmargin=" << from_ascii(Length(leftmargin).asLatexString());
|
||||
if (!rightmargin.empty())
|
||||
os << ",rmargin=" << from_ascii(Length(rightmargin).asLatexString());
|
||||
if (!headheight.empty())
|
||||
os << ",headheight=" << from_ascii(Length(headheight).asLatexString());
|
||||
if (!headsep.empty())
|
||||
os << ",headsep=" << from_ascii(Length(headsep).asLatexString());
|
||||
if (!footskip.empty())
|
||||
os << ",footskip=" << from_ascii(Length(footskip).asLatexString());
|
||||
if (!columnsep.empty())
|
||||
os << ",columnsep=" << from_ascii(Length(columnsep).asLatexString());
|
||||
}
|
||||
os << "}\n";
|
||||
}
|
||||
} else if (orientation == ORIENTATION_LANDSCAPE
|
||||
|| papersize != PAPER_DEFAULT) {
|
||||
|
@ -85,6 +85,8 @@ What's new
|
||||
|
||||
- Fix direction of references with XeTeX/bidi (bug 11626).
|
||||
|
||||
- Fix interplay of the memoir class and custom page size/geometry (bug 10970).
|
||||
|
||||
|
||||
* USER INTERFACE
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user