index.rst中标题在LaTeX构建PDF输出时未显示问题咨询
你遇到的是Sphinx LaTeX构建器的默认行为问题:默认会抽取index.rst的第一级标题作为PDF的封面主标题,不会将其渲染到正文内容中,HTML构建没有这个逻辑所以显示正常。
以下是不需要大幅修改原index.rst的可行解决方案:
方案1:修改conf.py的latex_documents配置(最稳妥)
直接在项目的Sphinx配置文件conf.py中添加/修改latex_documents项,手动指定PDF封面使用的总标题,避免占用index.rst的正文标题:
latex_documents = [ ( "index", # 源文档根文件 "output.pdf", # 输出PDF文件名 "自定义封面总标题", # 此处填写你要放在PDF封面的标题,会替代原本从index.rst抽取的标题 "文档作者", # 封面显示的作者信息 "howto" # 文档类型,可选howto/Manual,根据你的项目需求调整 ), ]
修改后重新构建PDF,index.rst里的原标题就会正常显示在正文开头。
方案2:注入LaTeX补丁(无需调整封面标题)
如果不想修改PDF封面原本的标题内容,可以在conf.py中添加LaTeX前置补丁,阻止构建时清空index.rst的标题定义:
latex_elements = { "preamble": r""" \usepackage{etoolbox} % 阻止maketitle清空正文标题定义 \patchcmd{\maketitle}{\let\title\relax}{}{}{} """ }
方案3:index.rst添加单行指令(仅允许极小修改的场景)
如果可以对原index.rst做不改动原有内容的极小修改,可以在文件最顶部加一行LaTeX专属标题指定指令:
.. latex:title:: 自定义封面总标题 ############ How to Build ############ ... 原有内容保持不变
这个指令仅对LaTeX构建生效,不会影响HTML输出效果。
内容的提问来源于stack exchange,提问作者Kedar
相关产品推荐
相关产品推荐

