(toc)dynnumwidth funktioniert in KOMA-Script nicht zuverlässig

(toc)dynnumwidth funktioniert in KOMA-Script nicht zuverlässig

Entsprechend derKOMA-Script Dokumentationbewirkt die Option dynnumwidthim tocbasic-style toclines(das ist die Vorlage für die Stile, die von den Abschnittsbefehlen von KOMA-Script im Inhaltsverzeichnis verwendet werden) Folgendes:

dynnumwidth=switch: Wenn der Schalter mit style aktiv ist tocline, numwidthwird das Attribut ignoriert. Stattdessen wird die beim letzten LaTeX-Lauf ermittelte maximale Zahlenbreite erhöht um den Wert von numsepverwendet.

Allerdings scheint die Erkennung der maximalen Zahlenbreite nicht zuverlässig zu funktionieren. Betrachten wir die beiden folgenden MWE:

test_1.tex:

\documentclass[american]{scrartcl}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\RedeclareSectionCommands[tocdynnumwidth]{section,subsection,subsubsection}

\begin{document}
    \tableofcontents

    \addsectiontocentry{Nr.~1}{Test1}
    \addsectiontocentry{Nr.~2}{Test2}
    \addsectiontocentry{Nr.~3}{Test3}
    \addsectiontocentry{Number~4}{Test4 (long)}
\end{document}

Ausgabe:

Erstes MWE: <code>dynnumwidth</code> defekt

test_2.tex:

\documentclass[american]{scrartcl}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\RedeclareSectionCommands[tocdynnumwidth]{section,subsection,subsubsection}

\begin{document}
    \tableofcontents

    \addsectiontocentry{Nr.~1}{Test1}
    \addsectiontocentry{Nr.~2}{Test2}
    \addsectiontocentry{Number~3}{Test3 (long)}
    \addsectiontocentry{Number~4}{Test4 (long)}
\end{document}

Ausgabe:

Zweites MWE: <code>dynnumwidth</code> funktioniert

Wenn ich also drei oder mehr Einträge mit kurzen Zahlenbreiten habe, dynnumwidtherkennt es den längeren Eintrag nicht und wählt einen numwidthzu kleinen Wert (MWE 1). Bei zwei kurzen und zwei langen Zahlenbreiten hingegen numwidthwird der richtige ermittelt (MWE 2). Ist das ein Bug oder verwende ich dynnumwidthdas falsch?

Ich verwende TeX Live 2016/KOMA-Script v3.21.

Antwort1

Ich habe dem KOMA-Script-Autor Markus Kohm einen Fehlerbericht geschickt, der bestätigt hat, dass dies nicht wie vorgesehen funktioniert.

Wie erwähnt vonesdd, der Fehler wurde behoben inVorabversion v3.22.2559. Aus dem Änderungsprotokoll:

r2559 02.12.2016 09:03:11 +0100 kOhm:

  • scrkernel-tocstyle.dtx: fehlendes \relax hinzugefügt, um die Dynnumwidth-
    Funktion zu beheben

Daher wird es in der KOMA-Script-Version v3.22 nicht mehr vorhanden sein.

verwandte Informationen