(toc)dynnumwidth 在 KOMA-Script 中无法可靠运行

(toc)dynnumwidth 在 KOMA-Script 中无法可靠运行

根据KOMA-Script 文档, -styledynnumwidth中的选项(这是目录中 KOMA-Script 分段命令使用的样式的模板)执行以下操作:tocbasictoclines

dynnumwidth=switch:如果开关与样式一起处于活动状态tocline,则忽略属性。取而代之的是,使用numwidth上次 LaTeX 运行中检测到的最大数字宽度加上的值。numsep

但是,最大数字宽度的检测似乎并不可靠。考虑以下两个 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}

输出:

第一个 MWE:<code>dynnumwidth</code> 损坏

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}

输出:

第二个 MWE:<code>dynnumwidth</code> 正在工作

因此,如果我有三个或更多数字宽度较短的条目,dynnumwidth则不会检测到较长的条目并选择numwidth太小的值(MWE 1)。另一方面,如果有两个较短的数字宽度条目和两个较长的数字宽度条目,numwidth则会确定正确的值(MWE 2)。这是错误还是我使用dynnumwidth不正确?

我正在使用 TeX Live 2016/KOMA-Script v3.21。

答案1

我向 KOMA-Script 作者 Markus Kohm 提交了一个错误报告,他确认这并没有按预期运行。

正如所提到的埃塞克斯,该错误已在预发布 v3.22.2559. 来自更新日志:

r2559 2016-12-02 09:03:11 +0100千欧:

  • scrkernel-tocstyle.dtx:缺少 \relax,以修复 dynnumwidth
    功能

因此它将在 KOMA-Script 版本 v3.22 中消失。

相关内容