将部分添加到目录中并添加编号

将部分添加到目录中并添加编号

我有一些扫描的 PDF 文档,我想将它们放在一个 Latex 文件中,并用只出现在目录中的部分来构建它们。这样做的好处是,我可以使用 hyperref 跳转到页面。

但是,使用此代码只能将文本添加到目录中,但我希望对它们进行编号,就像我编写了普通的 \section 一样。

\phantomsection\addcontentsline{toc}{chapter}{SI-System}
\includepdf[pages=1-3,pagecommand={\thispagestyle{plain}}]{02-SI.pdf}

答案1

您可以使用命令addtotoc的选项\includepdf;此选项的语法

addtotoc={<page number>,<section>,<level>,<heading>,<label>}

其中<page number>是插入文档的页码(将从目录链接到该页码),<section>是 LaTeX 章节名称(例如,章节、小节,...),<level>表示章节的深度(例如,1 表示章节级别,2 表示小节级别,...),<heading>是插入目录中的标题,是可以用和 <label>引用的标签名称。\ref\pageref

使用当前方法,您可以使用\numberline将相应部分单元的编号添加到目录;例如,您可以这样说:

\phantomsection\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}SI-System}

以下是 addtotoc 选项的使用示例(由马可·丹尼尔):

\RequirePackage{filecontents}
\begin{filecontents}{\jobname-a5.tex}
\documentclass[english,paper=a5]{scrartcl}
\usepackage{geometry}
\usepackage{babel,blindtext}
\begin{document}
\Blinddocument
\end{document}
\end{filecontents}

\documentclass{scrartcl}
\immediate\write18{pdflatex \jobname-a5.tex}
\usepackage{pdfpages,lipsum}
\includepdfset{frame,noautoscale}
\setlength{\fboxrule}{5pt}

\begin{document}
\tableofcontents
\section{foo}
\lipsum[1]
\includepdf[pages=-,addtotoc={1,section,1,Eintrag im Inhaltsverzeichnis,mylabel}]{\jobname-a5}
\end{document}

例如将文件另存为,test.tex然后使用以下方式运行

pdflatex --shell-escape test

答案2

我现在通过自己定义编号来解决这个问题:

\renewcommand{\chapter}[1]{
  \setcounter{section}{0}
  \addtocounter{chapter}{1}
  \phantomsection\addcontentsline{toc}{chapter}
    {\protect\numberline{\thechapter}#1}
}

\renewcommand{\section}[1]{
  \addtocounter{section}{1}
  \phantomsection\addcontentsline{toc}{section}
    {\protect\numberline{\thesection}#1}
}

并使用这些重新定义的章节和部分命令。

相关内容