2017-02-18 54 views
1

我正在将我的python包文档构建为HTML和乳胶PDF。生成的默认latex pdf(手动课程)在“CONTENTS”文本周围的目录顶部有大量空白空间。我不太熟悉乳胶,所以当我看着生成的.tex文件时,我没有看到任何告诉我如何去除空白的东西。删除sphinx顶部的空格pdflatex目录

我周围中搜索,但没有找到该工作乳胶液。我也尝试将toctree上的:caption:设置为空字符串,但实际上删除了整个TOC和我的所有内容。

任何人都可以帮助我吗?

whitespace example

+0

见http://tex.stackexchange.com/questions/62125/how-to-remove-top-margin-above-tableofcontents一个答案 –

+0

我发现,它不能得到工作。我会再试一次。 – daveydave400

+0

什么是您使用的狮身人面像的版本号? – jfbu

回答

1

狮身人面像对英语语言的默认行为是使用Bjarne的选项乳胶包fncychap的章节标题。但它也加载包titlesec一般来说标题标题。它并没有对titlesec做出特殊的章节定义,它只是简单地收集fncychap定义并将其定义在自己的钩子中。总之,使长话短说,我们发现

\[email protected]@mkschap #1->\vspace *{50\[email protected] }{\parindent \[email protected] \raggedright \normalfont \interlinepenalty \@M \DOTIS {#1} \vskip 40\[email protected] } 
在日志跟踪

,这是在其自己的宏\[email protected]@mkschap保留通过titlesec\@makeschapterheadfncychap定义。

fncychapsphinx.sty之前加载,没有挂钩,

编辑:其实'fncychap'键,其默认值为'\\usepackage[Bjarne]{fncychap}'可以起到添加一些代码来重新定义fncychap设置为未编号的章节标题。它与下面的'preamble'关键方法没有什么不同,除了人们不需要知道所有这些的titlesec干预。因为最近的狮身人面像1.5

,但你可以使用自己的神社模板乳胶内容。从你contents这是小的样子,我觉得你有狮身人面像的旧版本。因此,我会去的乳胶盗号变种是这样的:

latex_elements = { 
    # The paper size ('letterpaper' or 'a4paper'). 
    # 
    # 'papersize': 'letterpaper', 

    # The font size ('10pt', '11pt' or '12pt'). 
    # 
    # 'pointsize': '10pt', 

    # Additional stuff for the LaTeX preamble. 
    # 
    'preamble': r""" 
\makeatletter 
\def\[email protected]@mkschap #1{\vspace *{10\[email protected] }{\parindent \[email protected] \raggedright 
    \color{blue}% 
    \normalfont \interlinepenalty \@M \DOTIS {#1} \vskip 10\[email protected] }} 
\makeatother 
""", 

    # Latex figure (float) alignment 
    # 
    # 'figure_align': 'htbp', 
} 

我已经在那里加入了\color{blue}仅作示范,并修改了您需要的命令\vspace\vskip

但是,图像显示内容和TOC内容之间存在一些额外的垂直空间来源(它仍然与\vskip 0\[email protected]保持一致,但可以做\vskip -40\[email protected] ...),但我认为您在顶层空间之后并已经使用只有\vspace*{10pt}减少了很多(在下面的屏幕截图中不可见)。

enter image description here

+0

忘了说狮身人面像删除*编号*章节标题顶部的空格。但是TOC是用一个没有编号的章节标题完成的,因此Sphinx不会改变最初的垂直位移。 – jfbu

+0

非常感谢。这很好。我目前使用的是1.4.9,但是如果我使用1.5,我只需要添加您在jinja模板中输入的前导码部分?我很难找到有关狮身人面像中的jinja模板的文档。 – daveydave400

+0

很高兴它的工作... LaTeX的Jinja模板在[latex文档](http://www.sphinx-doc.org/en/stable/latex.html)的末尾简要地引起,并且使用的默认模板可以在[这里]找到(https://github.com/sphinx-doc/sphinx/blob/stable/sphinx/templates/latex/content.tex_t)。紧接在<%= fncychap%>之下,你可以定位'\ def \ @ makeschapterhead#1 {...与我在文章中相同的def ...}';顺便说一句,我已经确定了标题之后的额外空间的来源:它在'fncychap'的''\ DOTIS'',它是''\ renewcommand {\ DOTIS} [1] {\ CTV \ FmTi {#1} \ par \ nobreak \ vskip 40 \ p @}''in'fncychap.sty'为Bjarne。 – jfbu