我想将省略号作为单个(宽度)字符\texttt
。默认情况下,它使用三个句点:
\documentclass{article}
\begin{document}
\centering
\begin{tabular}{rcc}
& ellipsis & three periods\\
plain & \textellipsis & ...\\
teletype & \texttt{\textellipsis} & \texttt{...}
\end{tabular}
\end{document}
我认为当前的行为意味着我不应该将电传打字机(\texttt
)视为等宽字体,而是将其视为在打字机上所做的那样?
答案1
您可以定义自己的单字符宽度省略号:
\documentclass{article}
\newcommand\monoellipsis{\hbox to.5em{\hss.\hss\hss.\hss\hss.\hss}}
\begin{document}
\centering
\begin{tabular}{rcc}
& ellipsis & three periods & monoellipsis\\
plain & \textellipsis & ... & \monoellipsis\\
teletype & \texttt{\textellipsis} & \texttt{...} & \texttt{\monoellipsis}
\end{tabular}
\end{document}
答案2
您可以添加一个等宽字体测试,通过比较当前字体的宽度i
和来判断m
。我使用 0.5em,因为这是等宽字体中字形的正常宽度。您可能想稳妥一点,使用
\fontcharwd\font`x
而不是0.5em
并且0.33333\fontcharwd\font`x
而不是0.16667em
。
\documentclass{article}
\let\kerneltextellipsis\textellipsis
\newcommand{\textmonoellipsis}{%
\makebox[0.5em]{%
\makebox[0.16667em]{.}\hfil
\makebox[0.16667em]{.}\hfil
\makebox[0.16667em]{.}%
}%
}
\DeclareRobustCommand\textellipsis{%
\ifdim\fontcharwd\font`i=\fontcharwd\font`m
% i and m have equal width: monospaced font
\textmonoellipsis
\else
\kerneltextellipsis
\fi
}
\begin{document}
Normal text\dots
\texttt{Mono text\dots xyz}
\texttt{Mono textXxyz}
\end{document}