我对 LaTeX 还不太熟悉。我正在写一篇论文,想编辑目录。我使用罗马数字来编号各个部分。
不幸的是,在目录中,罗马数字 IV 后的句号前的间距太大(“IV”和“.”后的间距比“I”和“.”后的间距大)。有人知道如何缩小它而不使其他罗马数字(I、II 和 III)前的间距也变小吗?
\documentclass[11pt]{book}
\usepackage[]{titletoc}
\usepackage[newparttoc]{titlesec}
\titleformat{\part}[display]{}{\partname\nobreakspace\thepart}{0mm}{}
\titlecontents{part}
[0cm]
{}
{\hfil\normalfont\large\bfseries
\thecontentslabel\mdseries .\bfseries ~\hfil
\normalfont\large\bfseries}
{}
{\normalsize\dotfill\scriptsize\bfseries\thecontentspage}
[]
\begin{document}
\tableofcontents
\part{Part}
\part{Part}
\part{Part}
\part{Part}
\end{document}
答案1
\thecontentslabel
问题在于和之间的字体变化,.
这意味着不会应用字距调整。
您可以做一些事情,测量包含和的盒子的宽度\bfseries\thecontentslabel.
,\bfseries\thecontentslabel\kern0pt.
然后使用宽度差异来手动调整零件编号和句点之间的字距。
答案2
我找到了一个解决方案。虽然不太完美,但确实有效。
\documentclass[11pt]{book}
\usepackage[]{titletoc}
\usepackage[newparttoc]{titlesec}
\titleformat{\part}[display]{}{\partname\nobreakspace\thepart}{0mm}{}
\titlecontents{part}
[0cm]
{}
{\hfil\normalfont\large\bfseries
\thecontentslabel\mdseries .\bfseries ~\hfil
\normalfont\large\bfseries}
{}
{\normalsize\dotfill\scriptsize\bfseries\thecontentspage}
[]
\begin{document}
\tableofcontents
\part{Part}
\part{Part}
\part{Part}
\titlecontents{part}
[0cm]
{}
{\hfil\normalfont\large\bfseries
\thecontentslabel\mdseries $\!$.\bfseries ~\hfil
\normalfont\large\bfseries}
{}
{\normalsize\dotfill\scriptsize\bfseries\thecontentspage}
[]
\part{Part}
\part{Part}
\titlecontents{part}
[0cm]
{}
{\hfil\normalfont\large\bfseries
\thecontentslabel\mdseries .\bfseries ~\hfil
\normalfont\large\bfseries}
{}
{\normalsize\dotfill\scriptsize\bfseries\thecontentspage}
[]
\part{Part}
\end{document}