
Mientras escribo mi tesis utilizo los paquetes hyperref
and appendix
como en el pequeño ejemplo a continuación.
prueba.tex
\documentclass{book}
\usepackage{hyperref}
\usepackage[titletoc]{appendix}
\begin{document}
\tableofcontents
\chapter{First chapter}
\section{Chapter section}
\chapter{Second chapter}
\begin{appendices}
\input{extra}
\end{appendices}
\end{document}
extra.tex
\chapter{First appendix}
\section{Appendix section}
Este ejemplo no produce errores. El resultado final es una tabla de contenido con enlaces en los que se puede hacer clic a todos los capítulos (incluidos los de los apéndices) y con el formato que quiero.
Mientras se compila (pdfLaTeX), se produce el siguiente archivo:
Pruébalo
\BOOKMARK [0][-]{chapter.1}{First chapter}{}% 1
\BOOKMARK [1][-]{section.1.1}{Chapter section}{chapter.1}% 2
\BOOKMARK [0][-]{chapter.2}{Second chapter}{}% 3
\BOOKMARK [0][-]{Appendix.1.A}{Appendix First appendix}{}% 4
\BOOKMARK [1][-]{section.1.A.1}{Appendix section}{Appendix.1.A}% 5
Mi tesis es, por supuesto, mucho más amplia (más capítulos y más apéndices). Aunque la estructura es similar, al compilar mi tesis se producen numerosos errores crípticos (lo que significa que no los entiendo). He enumerado algunos a continuación. Comentar el hyperref
paquete me permite compilar, pero también desactiva los enlaces y los marcadores en el documento PDF.
! Missing \endcsname inserted.
<to be read again>
\penalty
l.46 ...@skip {}lage.1.D}{B\377lage Afkortingen}{}
% 46
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.
! Missing number, treated as zero.
<to be read again>
{
l.46 ...@skip {}lage.1.D}{B\377lage Afkortingen}{}
% 46
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)
! Extra \endcsname.
\check@bm@number ...0\else \csname B_#1\endcsname
\fi
l.46 ...@skip {}lage.1.D}{B\377lage Afkortingen}{}
% 46
I'm ignoring this, since I wasn't doing a \csname.
)
! Missing $ inserted.
<inserted text>
$
l.154 \begin{document}
El archivo .out de mi tesis se ve bien hasta que llegas a los marcadores del apéndice.
...
\BOOKMARK [1][-]{section.5.4}{Optimalisatie}{chapter.5}% 32
\BOOKMARK [0][-]{chapter.6}{Conclusie}{}% 33
\BOOKMARK [0][-]{chapter*.28}{Bibliografie}{}% 34
\BOOKMARK [0][-]{B\penalty \@M \hskip \z@skip i\kern -0.02em j\penalty \@M \hskip \z@skip {}lage.1.A}{B\377lage Stopwoordlijsten}{}% 35
\BOOKMARK [1][-]{section.1.A.1}{Nederlandse stopwoorden}{B\penalty \@M \hskip \z@skip i\kern -0.02em j\penalty \@M \hskip \z@skip {}lage.1.A}% 36
\BOOKMARK [1][-]{section.1.A.2}{Engelse stopwoorden}{B\penalty \@M \hskip \z@skip i\kern -0.02em j\penalty \@M \hskip \z@skip {}lage.1.A}% 37
...
Yo creoesta publicaciónestá relacionado con mi problema, pero no puedo entenderlo (todavía soy relativamente nuevo en LaTeX). ¿Alguien puede ayudarme a habilitar los enlaces y marcadores en mi tesis?
Saludos,
lijadora
EDITAR
Agregar el babel
paquete al ejemplo reproduce el problema.
\usepackage[dutch]{babel}
Respuesta1
Informe de error
Es un error en el apéndice del paquete. El error se activa si babel
está cargado con la opción de idioma dutch
. De mi informe de error al mantenedor del paquete:
El siguiente documento se rompe en la segunda ejecución:
\documentclass{book}
\usepackage[dutch]{babel}
\usepackage{hyperref}
\usepackage[titletoc]{appendix}
\begin{document}
\tableofcontents
\chapter{First chapter}
\section{Chapter section}
\chapter{Second chapter}
\begin{appendices}
\chapter{First appendix}
\section{Appendix section}
\end{appendices}
\end{document}
El archivo .out contiene:
\BOOKMARK [0][-]{B\penalty \@M \hskip \z@skip i\kern -0.02em j\penalty \@M
\hskip \z@skip {}lage.1.A}{B\377lage First appendix}{}% 4
El nombre del contador que se utiliza para el nombre de destino está roto debido a la cadena que depende del idioma: B"ylage
. La razón es:
\newcommand{\@resets@pp}{\par
\@ppsavesec
\stepcounter{@pps}
\setcounter{section}{0}%
\if@chapter@pp
\setcounter{chapter}{0}%
\renewcommand\@chapapp{\appendixname}%
\renewcommand\thechapter{\@Alph\c@chapter}%
\else
\setcounter{subsection}{0}%
\renewcommand\thesection{\@Alph\c@section}%
\fi
\if@pphyper
\if@chapter@pp
\renewcommand{\theHchapter}{\theH@pps.\Alph{chapter}}%
\else
\renewcommand{\theHsection}{\theH@pps.\Alph{section}}%
\fi
\def\Hy@chapapp{\appendixname}%
\fi
\restoreapp
}
\Hy@chapapp
se redefine como \appendixname
y esto depende del idioma y se rompe en el caso del holandés debido a la expansión de la taquigrafía. Pero \Hy@chapapp
se usa en los nombres de destino, generalmente es "capítulo" (del capítulo contrario), solo después de que se cambia \appendix
el nombre para obtener mejores nombres de destino únicos. No es necesario hacer que este idioma sea dependiente. Solo usa:chapter
appendix
\def\Hy@chapapp{appendix}
o
\def\Hy@chapapp{\Hy@appendixstring}
También es \@resets@ppsub
necesario solucionar el otro incidente.
Solución alternativa
También existe una solución independiente de la corrección de errores en el paquete appendix
. Simplemente cargue el paquete bookmark
después hyperref
. Tiene un algoritmo mucho más robusto para los marcadores y se ocupa de los B"ylage
archivos rotos .aux
mediante
hex
codificación ( base16
). Además, los marcadores se actualizan antes.
\documentclass{book}
\usepackage[dutch]{babel}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage[titletoc]{appendix}
Además, hyperref
v6.83b desactivará las abreviaturas en los nombres de destino (\hypercurrent y nombre de destino en \contentsline).
"IJ" y "ij" en marcadores
Estos caracteres, ligaduras de i y j mayúsculas/minúsculas, no están disponibles en PDFDocEncoding. Pero son accesibles mediante marcadores Unicode, es decir,
hyperref
opción pdfencoding=auto
o unicode
.
El reemplazo con "ÿ" en hyperref
la PD1
codificación es un error y se solucionará en v6.83b.
Por cierto, las redefiniciones de macros para los marcadores se pueden limitar a marcadores (cadenas de pdf) colocándolas en \pdfstringdefDisableCommands
:
\pdfstringdefDisableCommands{%
\renewcommand*{\appendixname}{Bookmark-Appendix}%
}
Respuesta2
Una solución completa recopilada a partir de todos los comentarios.
\documentclass{book}
\usepackage[dutch]{babel}
\usepackage[titletoc]{appendix}
\usepackage{hyperref}
\usepackage{bookmark} % handles the encoding in the .out file
\addto\captionsdutch{\renewcommand{\appendixname}{Bijlage}} % changes 'Bÿlage' to 'Bijlage' for the bookmarks
\begin{document}
\tableofcontents
\chapter{First chapter}
\section{Chapter section}
\chapter{Second chapter}
\begin{appendices}
\input{extra}
\end{appendices}
\end{document}
Saludos,
lijadora