titulos - indice general en latex
¿Cómo hacer que aparezca ''apéndice'' en toc en látex? (5)
¿Cómo hacer que la palabra ''apéndice'' aparezca en la tabla de contenido? En este momento toc se parece a esto:
1 ......
2 ......
.
.
UNA .....
B .....
Me gustaría que fuera:
1 ......
2 ......
.
.
Apéndice A .....
Apéndice B .....
Mi estructura de archivo fuente de látex es así:
/ begin {document}
/Tabla de contenido
/incluir{...}
/incluir{...}
/apéndice
/incluir{...}
/incluir{...}
/ end {documento}
Basado en la respuesta de @Will Robertson, el siguiente código define lo mismo pero para el capítulo y también corrige el hecho de que el chapter*
no se agrega al encabezado cuando se usa el paquete fancyhdr
.
Con esto en la preable todos los problemas se resuelven.
/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
El paquete de apéndice es una solución realmente buena y simple. Mi respuesta puede ser útil para quien quiera cambiar el estilo de numeración de los 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. Solo agrega este código en tu preámbulo:
/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
Como resultado,
Appendix A
Appendix B
Appendix C
...
cambiará a
Appendix A
Appendix Б
Appendix В
... etc
No soy un experto en látex, y no puedo garantizar que este código no rompa otra cosa.
Hay un par de maneras 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", desordena el formato de la tabla de contenido. Así que en lugar de eso, 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.
Algo feo, pero al menos funciona sin tener que cambiar cualquier marca :)
/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}
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.
Explicación: manualmente agregué una línea a la tabla de contenido para que aparezca "Apéndice X: ..." en mi tabla de contenido. Luego excluí el comando de sección real de la tabla de contenido utilizando un asterisco.
Probablemente, esto se logra más fácilmente utilizando el paquete de apéndice o la clase de memoria .
Si no desea utilizar una solución preempaquetada, deberá piratear los comandos de sección. Cuando tuve que hacer esto para mi disertación, cloné la clase de report
y edité hasta que hice felices a los márgenes. Lo que estás buscando es la definición de la macro /addcontentsline
.