生成的pdf有问题,可以不要系统自动生成的那个标题么?
Opened this issue · 15 comments
可以不要系统自动生成的那个标题么?生成pdf的程序有没有可选项可以去掉?要不跟原来的标题冲突了,而且copyright和前言都识别为章节了。
找了好久没找到这个选项,真是郁闷。
提供一种思路:
- 把自己写的标题去掉,把copyright和前言去掉,然后生成pdf(生成pdf的那里,系统默认标题,就能对的上了)
- 把copyright和前言单独生成一个pdf
- 把两个pdf拼接起来。
可选操作(加一个封面)
我解决了这个问题,现把解决方法共享给大家。
在 latex 文件导言区加入以下代码:
% 隐藏原目录名
\renewcommand{\contentsname}{}
% 在 section 前插入分页
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}
% 章节编号只编号到 subsection
\newcommand\normalsecnumdepth{\setcounter{secnumdepth}{2}}
% 所有层次章节都不编号
\newcommand\specialsecnumdepth{\setcounter{secnumdepth}{-2}}
% toc 到 subsection
\newcommand\normaltocdepth{
\setcounter{tocdepth}{2}
\addtocontents{toc}{\setcounter{tocdepth}{2}}
}
% toc 到 section
\newcommand\specialtocdepth{
\setcounter{tocdepth}{1}
\addtocontents{toc}{\setcounter{tocdepth}{1}}
}
在 \sphinxtableofcontents
前插入
\specialsecnumdepth
\specialtocdepth
\section{目录}
\vspace{-36pt}
在 \section{第一章:数据结构和算法}
前插入
\normaltocdepth
在 \section{附录A}
前插入
\specialtocdepth
之后编译后的 pdf 文件, 无论正文中目录页还是书签栏显示都是正常的. 如下图:
谢谢 CarlKing5019 童鞋
@CarlKing5019 可以共享出来
你好,请问这个文档下下来之后如何生成pdf版本的呢,是用make pdf命令吗,我试了下但是并没有生成啊,谢谢.
@McooLewis , 请使用 make help
命令查看帮助, 或者直接打开 Makefile 文件查看可选命令.
好的,十分感谢.
pdf 的档案需要更新下了, 4.1 之后提交了不少修正
to all:
最新版3.0.0的PDF已发布,根据最新源码生成,并且去掉了多余标题。另外这个步骤并没有CarlKing5019的那么复杂。只需要一步即可:
编辑文件build/latex/python3-cookbook.tex
,
在\setcounter{tocdepth}{2}
下增加一行\setcounter{secnumdepth}{-2}
再执行:
xelatex scrapy-cookbook.tex
我之前的解决方案中, 核心代码也是 \setcounter{secnumdepth}{-2}
用于去除所有章节的编号. 其余的代码是用于优化排版的. 下图是使用默认设置生成的目录和正文, 可以看到存在几个问题, 1. 前言里的 subsection 出现在目录中了; 2. 目录名是英文; 3. 各个 section 之间没有分页.
优化排版的代码具体来说如下:
-
命令
\normaltocdepth
\specialtocdepth
用于调整 tocdepth, 前言和附录使用\specialtocdepth
, 正文使用\ normaltocdepth
. -
以下代码用于修改目录名字, 并且把目录加入到目录中.
% 隐藏原目录名
\renewcommand{\contentsname}{}
\section{目录}
\vspace{-36pt}
- 以下代码用于在每一个 section 前插入分页.
% 在 section 前插入分页
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}
赞一个, @CarlKing5019
已经参考 @CarlKing5019 的方法重新生成了最新的PDF文件
赞, @yidao620c