Как сделать "приложение" появляться в toc в Latex?
Как записать слово "приложение" в оглавлении? Прямо сейчас toc выглядит так:
1......
2......
.
.
A.....
B.....
Я бы хотел:
1......
2......
.
.
Приложение A.....
Приложение B.....
Моя исходная файловая структура латекса выглядит следующим образом:
\ BEGIN {документ}
\ Tableofcontents
\ Включают {...}
\ Включают {...}
\ Приложение
\ Включают {...}
\ Включают {...}
\ end {document}
Ответы
Ответ 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