【问题标题】:How to make 'appendix' appear in toc in Latex?如何使“附录”出现在 Latex 的目录中?
【发布时间】:2010-10-17 13:38:39
【问题描述】:

如何使“附录”一词出现在目录中?现在 toc 看起来像这样:

1 ......  
2 ......  
.  
.  
A .....  
B ..... 

我希望它是:

1 ......  
2 ......  
.  
.  
Appendix A .....  
Appendix B ..... 

我的latex源文件结构是这样的:

\begin{document}  
\tableofcontents  
\include{...}  
\include{...}  
\appendix  
\include{...}  
\include{...}  
\end{document}  

【问题讨论】:

  • 那么什么样的乳胶问题是有效的呢?
  • @Johannes:我不同意。 SO 一直将 LaTeX 问题视为与编程相关的问题。这是合适的,因为 TeX 和 LaTeX 是图灵完备的语言。
  • 同意,构建 LaTeX 宏就是编程。
  • 我们一直在这里回答 LaTeX 问题,我发现它是一个很好的资源。我们可以让更多人重新开业吗?
  • 我同意我们应该继续在这里允许 TeX/LaTeX 问题 :)

标签: latex tableofcontents


【解决方案1】:

有几种方法可以解决这个问题;不幸的是,在这个阶段我只为你准备了一个技巧。一个问题是,如果我们重新定义节号“A”以包含“附录”一词,它会打乱目录的格式。因此,我刚刚定义了一个新的分段命令,它打印没有数字的部分并手动插入“附录 X”。

有点难看,但至少它无需更改任何标记即可工作:)

\documentclass{文章} \makeatletter \newcommand\appendix@section[1]{% \refstepcounter{节}% \orig@section*{附录 \@Alph\c@section: #1}% \addcontentsline{toc}{section}{附录 \@Alph\c@section: #1}% } \let\orig@section\section \g@addto@macro\appendix{\let\section\appendix@section} \makeatother \开始{文档} \目录 \section{咕} \标签{一个} 这是秒~\ref{a} \section{har} \标签{b} 这是秒~\ref{b} \附录 \section{ji} \标签{c} 这是应用程序~\ref{c} \小节{我} 这看起来对吗? \结束{文档}

【讨论】:

  • 如何使用\asbukfontspec 使用该hack?我需要俄语附录编号。
  • Adobe,我无法在此处粘贴代码。我已经在单独的答案中发布了我的解决方案。希望这会对你有所帮助。
  • 威尔,这就像魔术一样!但是,我得到了一个奇怪的副作用:引用(如果添加它们)被转换为新的部分 Appndix B*。知道如何摆脱它吗?
  • 如果您的附录按章节排列,只需将所有 section 替换为 chapter
【解决方案2】:

这可能最容易通过使用appendix packagememoir class 来实现。

如果您不想使用预打包的解决方案,则必须 破解切片命令。当我需要为我的 论文,我克隆了report类,并编辑直到我完成 边际夫人高兴。您正在寻找的是 \addcontentsline 宏的定义。

【讨论】:

  • 使用 appendix 包,有没有办法不使用 appendices 环境的[page] 选项,或者不浪费整个页面只是“附录”标题?问题是当我跳过[page](或\appendixpage)时,我的目录搞砸了,即“附录”在“附录A”之后。我想这是相关的:stackoverflow.com/questions/2661774/…
  • @mlt 时间太久了,记不起来了。
【解决方案3】:

对于我的论文,我做了以下工作:

\appendix
\addcontentsline{toc}{section}{Appendix~\ref{app:scripts}: Training Scripts}
\section*{Sample Training Scripts}
\label{app:scripts}
Blah blah appendix content blah blah blah.

解释:我手动在目录中添加了一行,因此我的目录中会显示“附录 X:...”。然后我使用星号从 TOC 中排除了实际的部分命令。

【讨论】:

    【解决方案4】:

    附录包是非常好的和简单的解决方案。我的回答可能对想要更改章节编号样式的人有所帮助,例如,使用西里尔字母或罗马数字。附录编号样式在 \@resets@pp 命令中进行了硬编码(我在此处查看了源代码http://hal.in2p3.fr/docs/00/31/90/21/TEX/appendix.sty)。我通过简单地将这个命令重新定义为我自己的来解决它。只需将此代码添加到您的序言中:

    \makeatletter
    
        \renewcommand{\@resets@pp}{\par
            \@ppsavesec
            \stepcounter{@pps}
            \setcounter{section}{0}
    
            \if@chapter@pp
                \setcounter{chapter}{0}
                \renewcommand\@chapapp{\appendixname}
                \gdef\thechapter{\Asbuk{chapter}} % changed
            \else
                \setcounter{subsection}{0}
                \gdef\thechapter{\Asbuk{section}} % changed
            \fi
    
            \if@pphyper
                \if@chapter@pp
                    \renewcommand{\theHchapter}{\theH@pps.\Asbuk{chapter}} % changed
                \else
                    \renewcommand{\theHsection}{\theH@pps.\Asbuk{section}} % changed
                \fi
    
                \def\Hy@chapapp{\appendixname}%
            \fi
        \restoreapp
    }
    
    \makeatother
    

    因此,

    Appendix A
    Appendix B
    Appendix C
    ...
    

    会变成

    Appendix A
    Appendix Б
    Appendix В
    ... etc
    

    我不是乳胶专家,我不能保证这段代码不会破坏其他东西。

    【讨论】:

      【解决方案5】:

      根据@Will Robertson 的回答,下面的代码定义了相同的内容,但对于章节,并且还修复了chapter* 在使用fancyhdr 包时不会添加到标题中的事实。

      有了这个,所有的问题都解决了。

      \makeatletter
      \newcommand\appendix@chapter[1]{%
          \refstepcounter{chapter}%
          \def\app@ct{Appendix \@Alph\c@chapter: #1}
          \orig@chapter*{\app@ct}%
          \markboth{\MakeUppercase{\app@ct}}{\MakeUppercase{\app@ct}}
          \addcontentsline{toc}{chapter}{\app@ct}%
      }
      \let\orig@chapter\chapter
      \g@addto@macro\appendix{\let\chapter\appendix@chapter}
      \makeatother
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多