答案1
这是设计使然。当 TeX 排版时(f)
,它会
....\OT1/cmr/m/n/10 (
....\OT1/cmr/m/n/10 f
....\kern0.77779
....\OT1/cmr/m/n/10 )
其中,字距是隐式的(符号输出后没有空格\kern
),并且是在字体度量中建立的。字距调整量与字体中“f”的斜体校正量相同,即 0.77779pt。
我没有看到特别令人讨厌的间距。\ref
但是,如果你对标记为 (f) 的项目进行操作,就会出现这种情况,这是由于其实现方式所致。
无论如何,您可以尝试添加两次斜体更正。
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=\arabic*.]
\item
\begin{enumerate}[label=(\alph*)]
\setcounter{enumii}{4}
\item
\item
\end{enumerate}
\item
\begin{enumerate}[label=(\alph*\kern2\fontcharic\font\numexpr`a-1+\arabic*\relax)]
\setcounter{enumii}{4}
\item
\item\label{x}
\end{enumerate}
\end{enumerate}
\ref{x}
\end{document}
说实话,我发现第二个例子比第一个例子更糟糕。
答案2
尝试:定义并使用enumitem
一个新的计数器表示命令,其工作原理与除计数器值为 6 时增加一些空间外相同。\xalph
\alph
\documentclass{article}
\usepackage{enumitem}
\makeatletter
\def\xalph#1{\expandafter\@xalph\csname c@#1\endcsname}
\def\@xalph#1{\ifnum#1=6\relax f\kern1pt\else\@alph{#1}\fi}
\AddEnumerateCounter\xalph\@xalph{m}
\setlist[enumerate, 2]{label=(\xalph*).}
\begin{document}
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item a 1pt kern is inserted between \verb|f| and \verb|)|
\item
\item
\end{enumerate}
\end{enumerate}
\end{document}