Re: [PATCH 2/5] Docs: Remove redundant geometry package inclusion

From: Mauro Carvalho Chehab
Date: Mon Jun 19 2017 - 06:49:22 EST


Em Mon, 19 Jun 2017 07:30:38 -0300
Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> escreveu:

> Em Sun, 18 Jun 2017 17:46:27 -0600
> Jonathan Corbet <corbet@xxxxxxx> escreveu:
>
> > Commit 85c21e5c3ee7 (docs-rst: better adjust margins and font size) added a
> > \usepackage{geometry} that conflicts with another inclusion deep within the
> > dependencies somewhere, causing the the PDF build to fail with a
> > "conflicting parameters" error. Just remove it for now until we can figure
> > out a better way.
> >
> > Fixes: 85c21e5c3ee74fb75d690c57f7066bae7e2dca55
> > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>
> > Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
> > ---
> > Documentation/conf.py | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/Documentation/conf.py b/Documentation/conf.py
> > index 93827bc1620f..3d4e89330044 100644
> > --- a/Documentation/conf.py
> > +++ b/Documentation/conf.py
> > @@ -271,8 +271,6 @@ latex_elements = {
> >
> > # Additional stuff for the LaTeX preamble.
> > 'preamble': '''
> > - % Adjust margins
> > - \\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}
> > \\usepackage{ifthen}
>
> This patch has a bad side effect: with it, the tables with this tag:
> .. tabularcolumns::
>
> become too big, violating the right margin. If Sphinx 1.5.x or
> 1.6.x replaced geometry package with something else, then I
> guess we'll need to add some hack at conf.py for it to adjust
> it based on the Sphinx version.
>
> Btw, in order to build latex output here with Sphinx 1.6.x,
> I had to install this package:
>
> texlive-fncychap.noarch
>
> Perhaps the change is somehow related to it.
>
> Btw, the current documentation at:
> http://www.sphinx-doc.org/en/stable/latex.html
>
> added a new option for version 1.5.3 and upper, to setup the
> geometry, using 'sphinxsetup'. As described there:
>
> 'sphinxsetup': 'hmargin={2in,1.5in}, vmargin={1.5in,2in}, marginpar=1in',
>
> I'll play with it and see if I can use it on such versions.

I guess the right fix would be do to something similar to what's in
the patch below.

There's a catch, though: as sphinxsetup hmargin/vmargin was added
only on Sphinx version 1.5.3, the enclosed patch won't adjust the
margins for versions 1.5.0 to 1.5.2. While I didn't test, I bet it
will just ignore the keys, showing some warning.


[PATCH] Docs: Fix breakage with Sphinx 1.5 and upper

Commit 85c21e5c3ee7 (docs-rst: better adjust margins and font size) added a
\usepackage{geometry} that conflicts with another inclusion deep within the
dependencies with newer versions of Sphinx, causing the the PDF build to fail
with a "conflicting parameters" error.

Detect the Sphinx version, using sphinxsetup for Sphinx versions 1.5 and
upper.

Fixes: 85c21e5c3ee74fb75d690c57f7066bae7e2dca55
Sighed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>

diff --git a/Documentation/conf.py b/Documentation/conf.py
index 9eff2c8f7f67..900b9cfea430 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -271,8 +271,6 @@ latex_elements = {

# Additional stuff for the LaTeX preamble.
'preamble': '''
- % Adjust margins
- \\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}
\\usepackage{ifthen}

% Allow generate some pages in landscape
@@ -343,6 +341,12 @@ latex_elements = {
if major == 1 and minor > 3:
latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n'

+if major == 1 and minor < 5:
+ latex_elements['preamble'] += '\\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}'
+else:
+ latex_elements['sphinxsetup'] = 'hmargin=0.5in, vmargin=0.5in'
+
+
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).