24 Stimmen

Wie kann man in Latex den "Anhang" in der Inhaltsangabe erscheinen lassen?

Wie kann das Wort "Anhang" im Inhaltsverzeichnis erscheinen? Im Moment sieht das Inhaltsverzeichnis so aus:

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

Ich möchte, dass es so ist:

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

Die Struktur meiner Latex-Quelldatei sieht folgendermaßen aus:

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

14voto

Will Robertson Punkte 58838

Es gibt mehrere Möglichkeiten, dieses Problem zu lösen; leider habe ich in diesem Stadium nur einen Hack für Sie. Ein Problem besteht darin, dass die Formatierung des Inhaltsverzeichnisses durcheinander gerät, wenn wir die Abschnittsnummer "A" so umdefinieren, dass sie das Wort "Appendix" enthält. Deshalb habe ich einen neuen Befehl zur Abschnittsbildung definiert, der den Abschnitt ohne Nummer ausgibt und "Anhang X" manuell einfügt.

Ziemlich hässlich, aber wenigstens funktioniert es, ohne dass man irgendeinen Markup ändern muss :)

\\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}

12voto

Dies lässt sich wahrscheinlich am einfachsten erreichen, indem man die anhang Paket oder die Erinnerungskurs .

Wenn Sie keine vorgefertigte Lösung verwenden möchten, müssen Sie die Befehle zur Aufteilung hacken. Als ich dies für meine Dissertation tun musste Dissertation brauchte, klonte ich die report Klasse, und bearbeitete sie, bis ich die Dame an den Rändern glücklich gemacht habe. Was Sie suchen, ist die Definition der \addcontentsline Makro.

12voto

Andrew Punkte 121

Für meine Diplomarbeit habe ich Folgendes getan:

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

Erläuterung: Ich habe dem Inhaltsverzeichnis manuell eine Zeile hinzugefügt, damit "Anhang X:..." in meinem Inhaltsverzeichnis erscheint. Dann habe ich den eigentlichen Abschnittsbefehl aus dem Inhaltsverzeichnis ausgeschlossen, indem ich ein Sternchen verwendet habe.

2voto

Stanislav Mamontov Punkte 1674

Das Appendix-Paket ist eine wirklich gute und einfache Lösung. Meine Antwort kann für diejenigen hilfreich sein, die den Stil der Kapitelnummerierung ändern wollen, z.B. durch Verwendung des kyrillischen Alphabets oder römischer Ziffern. Die Nummerierung der Anhänge ist im Befehl \@resets@pp fest einprogrammiert (ich habe hier in den Quellen nachgesehen http://hal.in2p3.fr/docs/00/31/90/21/TEX/appendix.sty ). Ich habe das Problem gelöst, indem ich diesen Befehl einfach in meinen eigenen umdefiniert habe. Fügen Sie einfach diesen Code in Ihre Präambel ein:

\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

Das Ergebnis ist,

Appendix A
Appendix B
Appendix C
...

wird zu

Appendix A
Appendix 
Appendix 
... etc

Ich bin kein Latex-Experte, und ich kann nicht garantieren, dass dieser Code nicht etwas anderes kaputt macht.

0voto

Miguel Punkte 1203

Basierend auf der Antwort von @Will Robertson definiert der folgende Code das Gleiche, aber für Kapitel, und behebt auch die Tatsache, dass chapter* wird nicht zur Kopfzeile hinzugefügt, wenn man die fancyhdr Paket.

Damit sind alle Probleme beseitigt.

\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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X