addtotoc 没有数字,也没有插入页面上的页眉

addtotoc 没有数字,也没有插入页面上的页眉

我想将包含在pdfpages包中的外部 PDF 的参考书目添加到我的目录中,但不为其提供编号。我发现此解决方案。我的问题是 选项<header>addtotoc出现在插入页面的顶部!。所以,我想摆脱它。

MWE:(不要忘记更改“ pages=34-37”和“ 1512.pdf”)

    \documentclass[10pt,a4paper]{book}
    \usepackage[utf8]{inputenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{fourier}
    \usepackage{lipsum}

    \usepackage{pdfpages}

    \makeatletter
    \let\l@chapternonum\l@section %chapter
    \newcounter{chapternonum}{}
    \renewcommand{\thechapternonum}{} %[1]{\chapter{#1}}
    \makeatother
    \begin{document}
    \setcounter{secnumdepth}{3} %level 3 for \subsubsection 

    \tableofcontents

    \chapter{Supersymmetry bla bla}
    \lipsum[1-5]
    \section{1st Section}
    \lipsum[1-3]
    \subsection{1st Subsection}
    \lipsum[3-5]
    \subsubsection{1st Subsubsection}
    \lipsum[3-5]
    \section{2nd Section}
    \lipsum[1-3]
    \subsection{2nd Subsection}
    \lipsum[3-5]

\includepdf[pages=34-37,addtotoc={34,chapternonum,3,Bibliographie,lab:refcont1}]{1512.pdf} 


\end{document}

答案1

该选项确实依赖于如果类型被命名(如 Werner 链接的解决方案中所示),则addtotoc存在命令 ,并且它尝试使用名为 的宏添加“部分”标题,当然该宏不存在。如果未定义此宏,它会使用\l@chapternonumsectionchapternonum\@chapternum

\expandafter\@sect\AM@temp
         \hskip\z@\par\vskip-\parskip\vskip-\baselineskip\hskip\z@

让标题停留在边缘处。

解决这个问题最简单的方法是

\newcommand{\@chapternonum}[2][]{\addcontentsline{toc}{section}{#1}}

因为其中的定义\AM@addtotoc似乎有点奇怪。

以下是相关代码pdfpages.sty

\newcommand{\AM@addtotoc}{}

\def\AM@addtotoc{%
  \begingroup
  \def\@seccntformat##1{}\def\@makechapterhead##1{}%
  \def\@endpart{}\def\partname{}%
  \def\autodot{}% KOMA classes
  \def\ch@pt@c{\the\AM@toc@title}% memoir classes
  \let\AM@addcontentsline\addcontentsline
  \def\addcontentsline##1##2##3{%
    \AM@addcontentsline{##1}{##2}{##3}%
    \def\thepart{}}%
  \AM@addtotoc@hook
  \edef\AM@temp{{\AM@toc@section}{\AM@toc@level}%
           {\z@}{\z@}{\z@}{}[\the\AM@toc@title]{}}%
  \edef\AM@tempi{\noexpand\csname @\AM@toc@section\noexpand\endcsname%
                 [\the\AM@toc@title]{}}%
  \@ifundefined{@\AM@toc@section}
    {\expandafter\@sect\AM@temp%%%%%% This is the culprit!!!!!
     \hskip\z@\par\vskip-\parskip\vskip-\baselineskip\hskip\z@}
    {\AM@tempi}%
  \xdef\@currentlabel{\@currentlabel}%
  \label{\AM@toc@label}%
  \endgroup
}

解决方案:

 \documentclass[10pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{fourier}
\usepackage{lipsum}

\usepackage{pdfpages}

\usepackage{hyperref}

\providecommand{\phantomsection}{}

\makeatletter

\let\l@chapternonum\l@section %chapter
\newcommand{\@chapternonum}[2][]{\phantomsection\addcontentsline{toc}{section}{#1}\edef\@currentlabel{#1}}%
\newcounter{chapternonum}
\renewcommand{\thechapternonum}{} %[1]{\chapter{#1}}
\makeatother

\begin{document}
\setcounter{secnumdepth}{3} %level 3 for \subsubsection 

See \ref{lab:refcont1}

\tableofcontents

\chapter{Supersymmetry bla bla}
\lipsum[1-5]
\section{1st Section}
\lipsum[1-3]
\subsection{1st Subsection}
\lipsum[3-5]
\subsubsection{1st Subsubsection}
\lipsum[3-5]
\section{2nd Section}
\lipsum[1-3]
\subsection{2nd Subsection}
\lipsum[3-5]

\includepdf[pages=1-3,addtotoc={1,chapternonum,0,Foo,lab:refcont1}]{7.pdf}

\end{document}

生成的代码7.pdf可以在我的回答中找到这里

相关内容