(toc)dynnumwidth não funciona de forma confiável no KOMA-Script

(toc)dynnumwidth não funciona de forma confiável no KOMA-Script

De acordo comDocumentação do script KOMA, a opção dynnumwidthno tocbasic-style toclines(que é o modelo para os estilos usados ​​pelos comandos de seccionamento do KOMA-Script no índice) faz o seguinte:

dynnumwidth=switch: Se a opção estiver ativa com style tocline, o atributo numwidthserá ignorado. Em vez disso, numsepé usada a largura máxima do número detectada na execução anterior do LaTeX aumentada pelo valor de .

No entanto, a detecção da largura máxima do número não parece funcionar de forma confiável. Considere os dois seguintes 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}

Saída:

Primeiro MWE: <code>dynnumwidth</code> quebrado

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}

Saída:

Segundo MWE: <code>dynnumwidth</code> funcionando

Portanto, se eu tiver três ou mais entradas com larguras numéricas curtas, dynnumwidthnão detecta a entrada mais longa e escolhe um numwidthvalor muito pequeno (MWE 1). Por outro lado, com duas entradas de largura numérica curta e duas longas, o correto numwidthé determinado (MWE 2). Isso é um bug ou estou usando dynnumwidthincorretamente?

Estou usando o TeX Live 2016/KOMA-Script v3.21.

Responder1

Fiz um relatório de bug para o autor do KOMA-Script, Markus Kohm, que confirmou que isso não está funcionando conforme o esperado.

Como mencionado poresdd, o bug foi corrigido empré-lançamento v3.22.2559. Do registro de alterações:

r2559 02/12/2016 09:03:11 +0100 kohm:

  • scrkernel-tocstyle.dtx: faltando \relax adicionado para corrigir
    o recurso dynnumwidth

portanto, ele desaparecerá na versão 3.22 do KOMA-Script.

informação relacionada