2009-04-04 42 views
17

¿Cómo hacer que la palabra 'apéndice' aparezca en la tabla de contenido? En este momento toc se ve así:¿Cómo hacer que 'appendix' aparezca en toc en Latex?

1 ...... 2 ......

.
. Un
..... .....
B

me gustaría que fuera:

1 ......
2 .....
.
.
Apéndice A .....
Apéndice B .....

Mi estructura de archivos fuente de látex es la siguiente:

\ begin {document}
\ tableofcontents
\ include {...}
\ include {...}
\ apéndice
\ include {...}
\ {...} incluyen
\ end {document}

+0

eso realmente no está relacionado con la programación, lo siento! –

+2

entonces, ¿qué tipo de preguntas sobre el látex son válidas? – chriss

+7

@Johannes: No estoy de acuerdo. SO ha tratado consistentemente los problemas de LaTeX como relacionados con la programación. Esto es apropiado, porque TeX y LaTeX son lenguajes completos de Turing. – dmckee

Respuesta

11

Esto es probablemente más fácil de lograr mediante el uso de la appendix package, o la memoir class.

Si no desea utilizar una solución preempaquetada, tendrá que piratear los comandos de sección. Cuando necesité hacer esto para mi disertación , cloné la clase report, y edité hasta que hice los márgenes de la dama feliz. Lo que estás buscando es la definición de la macro \addcontentsline.

+0

Con el paquete * appendix *, ¿hay alguna manera de no utilizar la opción '[page]' para * appendices * environment, o no desperdiciar una página entera solo por el título "Appendices"? El problema es que cuando omito '[page]' (o '\ appendixpage'), tengo TOC en mal estado, es decir," Apéndices "viene después del" Apéndice A ". Supongo que esto es relevante: http://stackoverflow.com/questions/2661774/problem-with-adding-appendix-in-latex – mlt

+0

@mlt Ha pasado tanto tiempo que no recuerdo. – dmckee

10

Hay un par de formas de resolver este problema; desafortunadamente, solo tengo un truco para ti en esta etapa. Un problema es que si redefinimos el número de sección "A" para incluir la palabra "Apéndice", se daña el formato de la tabla de contenido. Entonces, en cambio, acabo de definir un nuevo comando de sección que imprime la sección sin un número e inserta el "Apéndice X" manualmente.

un poco feo, pero al menos funciona sin tener que cambiar ningún marcado :)

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

¿Cómo uso ese truco con '\ asbuk' usando' fontspec'? Necesito numeraciones rusas del apéndice. – Adobe

+0

Adobe, no puedo pegar el código aquí. He publicado mi solución en la respuesta por separado. Espero que esto te ayudará. –

+0

Will, esto funciona como magia! Sin embargo, tengo un extraño efecto secundario: las referencias (si las agregas) se transforman en una nueva sección Appndix B *. ¿Alguna idea de cómo deshacerse de ella? – Ufos

5

Para mi tesis, hice lo siguiente:

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

he añadido manualmente una línea a la TOC para que aparezca el "Apéndice X: ..." en mi TOC. Luego excluí el comando de sección real del TOC usando un asterisco.

1

El paquete de apéndice es una solución realmente buena y simple. Mi respuesta puede ser útil para quién quiere cambiar el estilo de numeración de capítulos, por ejemplo, con el uso de alfabeto cirílico o dígitos romanos.El estilo de numeración de los apéndices está codificado en el comando \ @ resets @ pp (busqué en las fuentes aquí http://hal.in2p3.fr/docs/00/31/90/21/TEX/appendix.sty). Lo resolví simplemente redefiniendo este comando al mío. Sólo tiene que añadir este código en su preámbulo:

\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 

Como resultado,

Appendix A 
Appendix B 
Appendix C 
... 

cambiará a

Appendix A 
Appendix Б 
Appendix В 
... etc 

No soy un experto en látex, y no puede garantizar este código no romperá algo más.

0

Según la respuesta de @Will Robertson, el código siguiente define lo mismo pero para el capítulo y también corrige el hecho de que chapter* no se agrega al encabezado cuando se utiliza el paquete fancyhdr.

Con esto en la lista de todos los problemas se resuelven.

\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]apter\chapter 
\[email protected]@macro\appendix{\let\chapter\[email protected]} 
\makeatother 
Cuestiones relacionadas