Подтвердить что ты не робот

Как сделать "приложение" появляться в toc в Latex?

Как записать слово "приложение" в оглавлении? Прямо сейчас toc выглядит так:

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

Я бы хотел:

1......
2......
.
.
Приложение A.....
Приложение B.....

Моя исходная файловая структура латекса выглядит следующим образом:

\ BEGIN {документ}
\ Tableofcontents
\ Включают {...}
\ Включают {...}
\ Приложение
\ Включают {...}
\ Включают {...}
\ end {document}

4b9b3361

Ответ 1

Это, вероятно, наиболее легко достигается с помощью приложения пакет или memoir class.

Если вы не хотите использовать готовое решение, вам придется взломать команды секционирования. Когда мне нужно было сделать это для моего диссертация, я клонировал класс report и редактировал, пока не сделал леди поля счастливы. То, что вы ищете, это определение макроса \addcontentsline.

Ответ 2

Есть несколько способов решить эту проблему; к сожалению, на этом этапе у меня есть только хак. Одна из проблем заключается в том, что если мы переопределим номер раздела "А", чтобы включить слово "Приложение", это испортит форматирование оглавления. Поэтому вместо этого я только что определил новую команду секционирования, которая печатает секцию без номера и вручную вставляет "Приложение X".

Вид уродливый, но по крайней мере он работает без необходимости менять разметку :)

\documentclass{article}

\makeatletter
\newcommand\[email protected][1]{%
  \refstepcounter{section}%
  \[email protected]*{Appendix \@Alph\[email protected]: #1}%
  \addcontentsline{toc}{section}{Appendix \@Alph\[email protected]: #1}%
}
\let\[email protected]\section
\[email protected]@macro\appendix{\let\section\[email protected]}
\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}

Ответ 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.

Я вручную добавил строку в TOC, поэтому я бы добавил "Приложение X:..." в мой TOC. Затем я исключил действительную команду раздела из TOC, используя звездочку.

Ответ 4

Пакет приложений - это действительно хорошее и простое решение. Мой ответ может быть полезен тем, кто хочет изменить стиль нумерации глав, например, используя кириллический алфавит или римские цифры. Стиль нумерации приложений жестко закодирован в команде\@сбрасывает @pp (я посмотрел в источниках здесь http://hal.in2p3.fr/docs/00/31/90/21/TEX/appendix.sty). Я решил это, просто переименовав эту команду в свою. Просто добавьте этот код в свою преамбулу:

\makeatletter

    \renewcommand{\@[email protected]}{\par
        \@ppsavesec
        \stepcounter{@pps}
        \setcounter{section}{0}

        \[email protected]@pp
            \setcounter{chapter}{0}
            \renewcommand\@chapapp{\appendixname}
            \gdef\thechapter{\Asbuk{chapter}} % changed
        \else
            \setcounter{subsection}{0}
            \gdef\thechapter{\Asbuk{section}} % changed
        \fi

        \[email protected]
            \[email protected]@pp
                \renewcommand{\theHchapter}{\[email protected]\Asbuk{chapter}} % changed
            \else
                \renewcommand{\theHsection}{\[email protected]\Asbuk{section}} % changed
            \fi

            \def\[email protected]{\appendixname}%
        \fi
    \restoreapp
}

\makeatother

В результате

Appendix A
Appendix B
Appendix C
...

изменится на

Appendix A
Appendix Б
Appendix В
... etc

Я не эксперт по латексу, и я не могу гарантировать, что этот код не сломает что-то еще.

Ответ 5

На основе ответа @Will Robertson приведенный ниже код определяет то же самое, но для главы, а также фиксирует тот факт, что chapter* не добавляет заголовок при использовании пакета fancyhdr.

При этом в преамбуле все проблемы разрешаются.

\makeatletter
\newcommand\[email protected][1]{%
    \refstepcounter{chapter}%
    \def\[email protected]{Appendix \@Alph\[email protected]: #1}
    \[email protected]*{\[email protected]}%
    \markboth{\MakeUppercase{\[email protected]}}{\MakeUppercase{\[email protected]}}
    \addcontentsline{toc}{chapter}{\[email protected]}%
}
\let\[email protected]\chapter
\[email protected]@macro\appendix{\let\chapter\[email protected]}
\makeatother