
Estoy usando la clase jurabook
y quiero cambiar el comportamiento de la tabla de contenido. jurabook
ofrece la posibilidad de tener corredores que numeren los párrafos. Estos corredores ofrecen una referencia más específica que las páginas.
Me gustaría que el índice mostrara las referencias a los corredores en lugar de las páginas o incluso mejor además de la referencia a las páginas. ¿Es posible cambiar el comportamiento de la tabla de contenido en consecuencia?
A continuación se muestra un ejemplo mínimo de un documento que utiliza jurabook y corredores.
\documentclass[compact,a5paper,12pt]{jurabook}
\usepackage[a5paper, left=1.5cm, right=1.5cm, top=2cm, bottom=1.5cm]{geometry}
\newcommand{\lorem}{\rn{Lorem} ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
}
\begin{document}
\tableofcontents
\chapter{Chapter}
\section{Test}
\lorem
\lorem
\section{Test 2}
\lorem
\lorem
\lorem
\section{Test 3}
\lorem
\lorem
\section{Test 4}
\lorem
\lorem
\end{document}
Editar:
Muchas gracias por su respuesta. Funciona dentro del ejemplo mínimo. Pero tengo problemas para aplicarlo a una escala más amplia.
Si incluyo el paquete hyperref, la solución no funciona. Recibo errores al escribir.
Y si quiero alguna indicación de qué número es cuál, el texto se acaba en la página. Por ejemplo usando el código:
\def\addcontentsline#1#2#3{%
\addtocontents{#1}{%
\protect\contentsline{#2}{#3}{page \thepage\ (runner \the\numexpr\value{runner}+1\relax)}}}%
Respuesta1
Aquí hay una forma de hacerlo.
Precaución: una debilidad de la solución es que, incluso si una sección contiene no \rn
, seguirá asociada (en el toc) a un valor de corredor correspondiente al del anterior \rn
más 1.
\documentclass[compact,a5paper,12pt]{jurabook}
\usepackage[a5paper, left=1.5cm, right=1.5cm, top=2cm, bottom=1.5cm]{geometry}
\usepackage{titletoc}
\newcounter{runnerplusone}
\renewcommand\addcontentsline[3]{%
\setcounter{runnerplusone}{\value{runner}}%
\addtocounter{runnerplusone}{1}%
\addtocontents{#1}{%
\protect\contentsline{#2}{#3}{\thepage\ (\therunnerplusone)}}}
\newcommand{\lorem}{\rn{Lorem} ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.
}
\begin{document}
\tableofcontents
\chapter{Chapter}
\section{Test}
\lorem
\lorem
\section{Test 2}
\lorem
\lorem
\lorem
\section{Test 3}
\lorem
\lorem
\section{Test 4}
\lorem
\lorem
\end{document}
Una alternativa (propuesta por David Carlisle) que utiliza la aritmética etex para evitar la asignación de un nuevo contador es
\def\addcontentsline#1#2#3{%
\addtocontents{#1}{%
\protect\contentsline{#2}{#3}{\thepage\ (\the\numexpr\value{runner}+1\relax)}}}
EDITAR: las soluciones anteriores se rompen si hyperref
están cargadas. Para solucionar el problema, egreg propuso lo siguiente:
\documentclass[compact,a5paper,12pt]{jurabook}
\usepackage[a5paper, left=1.5cm, right=1.5cm, top=2cm, bottom=1.5cm]{geometry}
\usepackage{titletoc}
\usepackage{xpatch}
\usepackage{hyperref}
\xpatchcmd\addcontentsline{\thepage}{\thepage\ (\the\numexpr\value{runner}+1\relax)}{}{}
\newcommand{\lorem}{\rn{Lorem} ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.
}
\begin{document}
\tableofcontents
\chapter{Chapter}
\section{Test}
\lorem
\lorem
\section{Test 2}
\lorem
\lorem
\lorem
\section{Test 3}
\lorem
\lorem
\section{Test 4}
\lorem
\lorem
\end{document}