我有一份很长很复杂的文档,我想将其渲染为最小轮廓,而不显示正文。最好的方法是什么?
到目前为止,我尝试过的方法是保存一个只有标题而没有其他文本的版本。但这行不通。大纲被卡住了。
为了尝试解决这个问题,我制作了一个如下的测试文件:
\documentclass{article}
\begin{document}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
[... eight more sections ... ]
\end{document}
输出结果为两页文档,第一页为空白。第二页上出现了轮廓,但轮廓一直延伸到页边距,直到被截断。
在每个部分添加一些填充文本可以解决问题。但如果不这样做,我如何才能获得我期望的输出?
编辑:我对此进行了编辑,以强调我试图实现的具体实际目标,而不是所涵盖的空白部分的技术问题另一个问题。
答案1
编辑答案
如果您想导出文档的骨架,而不必提取所有分段命令,请尝试这种方法。
加载该tocloft
包并在文档末尾添加以下行:
\tocloftpagestyle{empty}
\pagestyle{empty}
\renewcommand{\contentsname}{Skeleton}
\renewcommand{\cfttoctitlefont}{\huge\bfseries}
\renewcommand{\cftaftertoctitle}{\vspace*{\baselineskip}}
\setlength{\cftparskip}{\baselineskip}
\cftpagenumbersoff{section}
\cftpagenumbersoff{subsection}
\cftpagenumbersoff{subsubsection}
\renewcommand{\cftsubsecdotsep}{\cftnodots}
\renewcommand{\cftsubsubsecdotsep}{\cftnodots}
\renewcommand{\cftsubsecindent}{0pt}
\renewcommand{\cftsubsubsecindent}{0pt}
\renewcommand{\cftsecfont}{\Large\bfseries}
\renewcommand{\cftsubsecfont}{\large\bfseries}
\renewcommand{\cftsubsubsecfont}{\normalsize\bfseries}
\tableofcontents
通过这种方式,我们创建了一个具有与文档中的章节标题相同的结构,但没有文本的目录。
如果您还需要文档中适当的目录,请加载shorttoc
包并在文档中需要目录的位置添加以下行:
\shorttoc{Contents}{3}
梅威瑟:
\documentclass{article}
\usepackage{tocloft}
\usepackage{shorttoc}
\usepackage{blindtext}
\begin{document}
\shorttoc{Contents}{3}
\clearpage
\blinddocument
\blinddocument
\blinddocument
\clearpage
\tocloftpagestyle{empty}
\pagestyle{empty}
\renewcommand{\contentsname}{Skeleton}
\renewcommand{\cfttoctitlefont}{\huge\bfseries}
\renewcommand{\cftaftertoctitle}{\vspace*{\baselineskip}}
\setlength{\cftparskip}{\baselineskip}
\cftpagenumbersoff{section}
\cftpagenumbersoff{subsection}
\cftpagenumbersoff{subsubsection}
\renewcommand{\cftsubsecdotsep}{\cftnodots}
\renewcommand{\cftsubsubsecdotsep}{\cftnodots}
\renewcommand{\cftsubsecindent}{0pt}
\renewcommand{\cftsubsubsecindent}{0pt}
\renewcommand{\cftsecfont}{\Large\bfseries}
\renewcommand{\cftsubsecfont}{\large\bfseries}
\renewcommand{\cftsubsubsecfont}{\normalsize\bfseries}
\tableofcontents
\end{document}
输出(正确的 ToC):
输出(骨架 ToC):
此时,假设您的文档名为mydoc.tex
,提取骨架 ToC,在单独的pdf file
新文档中创建一个名为skeleton.tex
内容如下:
skeleton.tex
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=11-12]{mydoc.pdf}
\end{document}
结果pdf
正是您想要的。当然,您必须更改pages=11-12
为文档中包含骨架目录的正确页面范围。
原始答案
\section
s 和类似的元素不允许在其后添加分页符。因此,如果其后没有任何文本,则它们将全部位于一页中,并且框会溢出。
如果您只想查看文档的结构,请使用目录或在序言中添加以下几行:
\usepackage{etoolbox}
\preto{\section}{\leavevmode}
平均能量损失
\documentclass{article}
\usepackage{etoolbox}
\preto{\section}{\leavevmode}
\begin{document}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\end{document}
输出
答案2
这大纲最有可能的是ToC
(目录),可以插入
\tableofcontents
一定要编译两次才能看到效果。
的精细控制ToC
可以通过诸如tocloft
或etoc
之类的软件包或使用诸如tocdepth
\documentclass{article}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\clearpage
\section{Foo}
\subsection{bar}
\blindtext[5]
\subsection{bar}
\subsection{bar}
\section{Foo}
\subsection{bar}
\subsection{bar}
\subsection{bar}
\end{document}