当我添加目录并在开头使用罗马页码时,罗马页码没有右对齐。
梅威瑟:
\documentclass[twoside, openright]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{lipsum}
\usepackage{hyperref}
\newcommand{\uchapter}[1]{% add unnumbered chapter
\phantomsection
\chapter*{#1}
\addcontentsline{toc}{chapter}{#1}}
\begin{document}
\pagenumbering{Roman}
\setcounter{page}{3}
\uchapter{Abstract}
\lipsum[1-2]
\tableofcontents
\uchapter{Abbildungsverzeichnis}
\uchapter{Tabellenverzeichnis}
\uchapter{Formelverzeichnis}
\uchapter{Symbolverzeichnis}
\uchapter{Abkürzungsverzeichnis}
\uchapter{Sperrvermerk}
\end{document}
我在网上找到的解决此问题的明显方法要么是使用与 KOMA 不兼容的软件包(tocloft
),要么是使用过时的软件包(tocstyle
)。我是否缺少解决此问题的选项或参数?
答案1
有不同方法可以扩大页码的可用空间。
如果只有罗马页码的章节条目,则可以使用以下方法仅扩大章节的空间
\DeclareTOCStyleEntry[
pagenumberwidth=2.55em,% default is \@pnumwidth (default is 1.55em)
rightindent=3.55em% default is \@tocrmarg (default is 2.55em)
]{tocline}{chapter}
例子:
\documentclass[twoside, open=right]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{blindtext}% only for dummy text
\usepackage{hyperref}
\DeclareTOCStyleEntry[
%pagenumberbox=\mbox
pagenumberwidth=2.55em,
rightindent=3.55em
]{tocline}{chapter}
\begin{document}
\cleardoubleoddpage
\pagenumbering{Roman}
\setcounter{page}{3}
\addchap{Abstract}
\Blindtext[2]
\tableofcontents
\addchap{Abbildungsverzeichnis}
\addchap{Tabellenverzeichnis}
\addchap{Formelverzeichnis}
\addchap{Symbolverzeichnis}
\addchap{Abkürzungsverzeichnis}
\addchap{Sperrvermerk}
\cleardoubleoddpage
\pagenumbering{arabic}
\Blinddocument
\Blinddocument
\end{document}
您可以扩大各层的空间:
\makeatletter
\renewcommand{\@pnumwidth}{2.55em}% default is 1.55em
\renewcommand{\@tocrmarg}{3.55em}% default is 2.55em
\makeatother
例子:
\documentclass[twoside, open=right]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{blindtext}% only for dummy text
\usepackage{hyperref}
\makeatletter
\renewcommand{\@pnumwidth}{2.55em}% default is 1.55em
\renewcommand{\@tocrmarg}{3.55em}% default is 2.55em
\makeatother
\begin{document}
\cleardoubleoddpage
\pagenumbering{Roman}
\setcounter{page}{3}
\addchap{Abstract}
\Blindtext[2]
\tableofcontents
\addchap{Abbildungsverzeichnis}
\addchap{Tabellenverzeichnis}
\addchap{Formelverzeichnis}
\addchap{Symbolverzeichnis}
\addchap{Abkürzungsverzeichnis}
\addchap{Sperrvermerk}
\cleardoubleoddpage
\pagenumbering{arabic}
\Blinddocument
\Blinddocument
\end{document}
当然你也可以在 TOC 中本地pagenumberwidth
更改:rightindent
\documentclass[twoside, open=right]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{blindtext}% only for dummy text
\usepackage{hyperref}
\newcommand*\settocpagenumberwidth[2]{%
\DeclareTOCStyleEntries[pagenumberwidth=#1,rightindent=#2]{tocline}{chapter,section}%
}
\makeatletter
\newcommand*\resettocpagenumberwidth{%
\DeclareTOCStyleEntries[pagenumberwidth=\@pnumwidth,rightindent=\@tocrmarg]{tocline}{chapter,section}%
}
\makeatother
\begin{document}
\cleardoubleoddpage
\pagenumbering{Roman}
\setcounter{page}{3}
\addtocontents{toc}{\settocpagenumberwidth{2.55em}{3.55em}}
\addchap{Abstract}
\Blindtext[2]
\tableofcontents
\addchap{Abbildungsverzeichnis}
\addchap{Tabellenverzeichnis}
\addchap{Formelverzeichnis}
\addchap{Symbolverzeichnis}
\addsec{Foo}
\addsec{Bar}
\addchap{Abkürzungsverzeichnis}
\addchap{Sperrvermerk}
\addsec{Abschnitt 1}
\addsec{Abschnitt 2}
\cleardoubleoddpage
\pagenumbering{arabic}
\addtocontents{toc}{\resettocpagenumberwidth}
\Blinddocument
\Blinddocument
\end{document}
如果章节条目没有虚线,您可以将页码框更改为\mbox
:
\DeclareTOCStyleEntry[pagenumberbox=\mbox]{tocline}{chapter}
补充说明:如果您需要带有目录条目的未编号章节,请使用 KOMA-Script 命令\addchap
。对于没有目录条目的未编号章节,请使用\addchap*
。您也可以切换到scrbook
。此类提供\frontmatter
和\mainmatter
。然后您可以\chapter
在前言中使用 来获取带有目录条目的未编号章节。