Durch das Korrigieren einer überfüllten Hbox im Inhaltsverzeichnis werden zu viele Punkte entfernt

Durch das Korrigieren einer überfüllten Hbox im Inhaltsverzeichnis werden zu viele Punkte entfernt

Diese Frage zumMemoiren Inhaltsverzeichnishat eine Antwort, die gut funktioniert, die Punkte enden jedoch (meiner Meinung nach) zu früh.

Gibt es eine Möglichkeit, die Punkte mehr wie die Standardeinstellung zu gestalten, ohne die überfüllten Hboxen auszulösen? (Das WME ist direkt der obigen Frage entnommen):

\documentclass[oneside, draft]{memoir}

\usepackage[showframe]{geometry}
\usepackage{lipsum}

\newcommand{\repeattext}[1]{#1 #1 #1 #1 #1 #1}

\makeatletter
\renewcommand{\@pnumwidth}{3em} %even adjusting this down doesn't really help
\renewcommand{\@tocrmarg}{4em}
\makeatother

\begin{document}

\tableofcontents

\chapter{Chapter 1}         \lipsum
    \section{Section 1.1}   \repeattext{\repeattext{\lipsum[1-150]}}

\chapter{Chapter 2}         \lipsum[2]
    \section{Section 2.1}   \repeattext{\repeattext{\lipsum[1-150]}}

\chapter{Chapter 3}         \lipsum[2]
    \section{Section 3.1}   \lipsum[2]

\end{document}

Hier sind einige Beispielbilder (das erste hat die Punkte, die mir gefallen, aber eine überfüllte Hbox, das zweite entfernt die Hbox, hat aber nicht genug Punkte):

Bild einer überfüllten Hbox Bild von nicht genügend Punkten

Ich fand dies intexdoc memman

\newcommand*{\l@section}{\@dottedtocline{1}{1.5em}{2.3em}}

Möglicherweise sind diese Größen für den Abstand relevant.

Antwort1

Dermemoir DokumentationErwähnungen (Abschnitt9.1 Allgemeine ToC-Methoden, S. 142):

Die Seitenzahl wird rechtsbündig in einem Feld mit der Breite gesetzt \@pnumwidthund das Feld befindet sich am rechten Rand. Wenn die Seitenzahl zu lang ist, um in das Feld zu passen, ragt sie in den rechten Rand hinein.

Der Standardwert für \@pnumwidthist auf eingestellt 1.55emund kann mit angepasst werden \setpnumwidth{<len>}.


Hier ist ein anderer Ansatz: Geben Sie die Seitenzahl in ein Feld mit weißer Hintergrundfüllung ein:

Bildbeschreibung hier eingeben

\documentclass[oneside, draft]{memoir}

\usepackage{geometry}
\usepackage{lipsum,xcolor}

\newcommand{\repeattext}[1]{#1 #1 #1 #1 #1 #1}

\makeatletter

\newcommand{\pnumformat}[1]{{\setlength{\fboxsep}{0pt}\llap{\colorbox{white}{#1}}}}
\setpnumwidth{.5em}% Just a small enough length
\renewcommand{\cftchapterformatpnum}[1]{%
  \cftchapterformatpnumhook{#1}%
  \hb@xt@\@pnumwidth{\hfil\pnumformat{\cftchapterpagefont #1}}}
\renewcommand{\cftsectionformatpnum}[1]{%
  \cftsectionformatpnumhook{#1}%
  \hb@xt@\@pnumwidth{\hfil\pnumformat{\cftsectionpagefont #1}}}

\renewcommand{\@tocrmarg}{4em}
\makeatother

\begin{document}

\tableofcontents

\chapter{Chapter 1}         \lipsum
    \section{Section 1.1}   \repeattext{\repeattext{\lipsum[1-150]}}

\chapter{Chapter 2}         \lipsum[2]
    \section{Section 2.1}   \repeattext{\repeattext{\lipsum[1-150]}}

\chapter{Chapter 3}         \lipsum[2]
    \section{Section 3.1}   \lipsum[2]

\end{document}

Antwort2

3emist zu viel für pnumwidth. Es reicht, es bei2.5em

\makeatletter
\renewcommand{\@pnumwidth}{2.5em} %even adjusting this down doesn't really help
\renewcommand{\@tocrmarg}{4em}
\makeatother

Bildbeschreibung hier eingeben

Wenn Sie Seitenzahlen über 1000 haben, müssen Sie damit leben. Wenn Sie mehr Bilder haben möchten, können Sie den Abstand zwischen den Punkten anpassen, indem Sie

\renewcommand*{\cftdotsep}{2}

Bildbeschreibung hier eingeben

pnumwidthFür Memoiren können Sie die und tocmargdurch die Befehle ändern

\setpnumwidth{2.5em}
\setrmarg{4em}

verwandte Informationen