如何使'appendix'出现在Latex的toc中?

时间:2009-04-04 16:06:02

标签: latex

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

  

1 ......
  2 ......
  。
  。
  答.....
  B .....

我希望它是:

  

1 ......
  2 ......
  。
  。
  附录A .....
  附录B .....

我的乳胶源文件结构如下:

  

\开始{文档}
  \ tableofcontents
  \包括{...}
  \包括{...}
  \附件
  \包括{...}
  \包括{...}
  \ end {document}

5 个答案:

答案 0 :(得分:11)

使用appendix packagememoir class可能最容易实现这一点。

如果您不想使用预先打包的解决方案,则必须这样做 破解切片命令。当我需要为我做这个 论文,我克隆了report课程,并编辑,直到我做 边缘女士高兴。你要找的是什么 \addcontentsline宏的定义。

答案 1 :(得分:11)

有几种方法可以解决这个问题;不幸的是,在这个阶段我只是为你而攻击。一个问题是,如果我们重新定义节号“A”以包含单词“附录”,则会弄乱目录的格式。所以相反,我刚刚定义了一个新的切片命令,用于打印没有数字的部分,并手动插入“附录X”。

有点难看,但至少它可以在不必更改任何标记:)

的情况下工作
\documentclass{article}

\makeatletter
\newcommand\appendix@section[1]{%
  \refstepcounter{section}%
  \orig@section*{Appendix \@Alph\c@section: #1}%
  \addcontentsline{toc}{section}{Appendix \@Alph\c@section: #1}%
}
\let\orig@section\section
\g@addto@macro\appendix{\let\section\appendix@section}
\makeatother

\begin{document}

\tableofcontents

\section{goo}
\label{a} 
This is sec~\ref{a}

\section{har}
\label{b}
This is sec~\ref{b}

\appendix
\section{ji}
\label{c} 
This is app~\ref{c}
\subsection{me}
does this look right?

\end{document}

答案 2 :(得分:7)

对于我的论文,我做了以下几点:

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

说明:我手动向TOC添加了一行,所以我会在我的TOC中显示“附录X:...”。然后我使用星号从TOC中排除了实际的部分命令。

答案 3 :(得分:1)

附录包是非常好的简单解决方案。我的回答对于谁想要更改章节编号样式很有帮助,例如,使用西里尔字母或罗马数字。附录编号样式在\ @ 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

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

答案 4 :(得分:0)

基于@Will Robertson的回答,下面的代码定义了相同的内容,但是对于章节,还修复了使用<?php echo form_open('v_controller/index'); ?> 包时chapter*未添加到标题的事实。

在可预见的情况下,所有问题都得到解决。

fancyhdr