
수업을 사용하고 있는데 jurabook
목차의 동작을 변경하고 싶습니다. jurabook
단락에 번호를 매기는 주자를 가질 가능성을 제공합니다. 이 러너는 페이지보다 더 구체적인 참조를 제공합니다.
목차에 페이지 대신에 러너에 대한 참조를 표시하거나 페이지에 대한 참조 외에 더 나은 내용을 표시하고 싶습니다. 이에 따라 목차의 동작을 변경할 수 있습니까?
다음은 jurabook과 러너를 사용한 문서의 최소한의 예입니다.
\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}
편집하다:
대답 해 주셔서 감사합니다. 최소한의 예제 내에서 작동합니다. 하지만 이를 더 넓은 규모로 적용하는 데에는 문제가 있습니다.
hyperref 패키지를 포함하면 솔루션이 작동하지 않습니다. 조판 중에 오류가 발생합니다.
그리고 어느 숫자가 어느 숫자인지 표시하고 싶다면 텍스트가 페이지 밖으로 나옵니다. 예를 들어 다음 코드를 사용합니다.
\def\addcontentsline#1#2#3{%
\addtocontents{#1}{%
\protect\contentsline{#2}{#3}{page \thepage\ (runner \the\numexpr\value{runner}+1\relax)}}}%
답변1
이를 수행하는 한 가지 방법이 있습니다.
주의: 이 솔루션의 한 가지 약점은 섹션에 no 가 포함되어 있어도 \rn
이전 항목에 1을 더한 값에 해당하는 러너 값(toc에서)과 여전히 연결된다는 것입니다 \rn
.
\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}
새로운 카운터 할당을 피하기 위해 etex 산술을 사용하는 대안(David Carlisle이 제안)은 다음과 같습니다.
\def\addcontentsline#1#2#3{%
\addtocontents{#1}{%
\protect\contentsline{#2}{#3}{\thepage\ (\the\numexpr\value{runner}+1\relax)}}}
편집: 위의 솔루션이 hyperref
로드되면 중단됩니다. 문제를 회피하기 위해 egreg는 다음을 제안했습니다.
\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}