我该如何使其\dots
更紧凑?我更喜欢将点靠得更近一些,以节省长方程式中的水平空间。
或者,是否存在另一个比 更紧凑的宏\dots
?这将是更好的选择,因为正则\dots
仍可在其他情况下使用。
答案1
这个怎么样?
\documentclass{article}
\newcommand\mydots{\hbox to 1em{.\hss.\hss.}}
\begin{document}
Hello\dots
Hello again\mydots
\end{document}
或者,如果您希望保留所有“干净”的 LaTeX 命令:
\newcommand\mydots{\makebox[1em][c]{.\hfil.\hfil.}}
进一步考虑的是你是否关心数学模式。标准\dots
命令会仔细检查我们是否处于数学模式并执行正确的操作。如果你想担心这个,那么你需要这个:
\newcommand\mydots{\ifmmode\ldots\else\makebox[1em][c]{.\hfil.\hfil.}\fi}
为了使用此解决方案更改点的间距,您需要更改省略号的整体宽度。在上面的示例中,我将其1em
加宽,然后\hss
或\hfil
命令根据需要扩展以使点均匀分布。
如果您的省略号后面有更多文本,则还有另一个考虑因素:您是否希望在省略号后留有内置空格(如评论中指出的那样)。原始\dots
命令后面有少量空格,但我上面建议的替换没有。例如
要解决此问题,您可以手动在其后添加一个细空格,或者将定义修改为:
\newcommand\mydots{\ifmmode\ldots\else\makebox[1em][c]{.\hfil.\hfil.}\thinspace\fi}
答案2
这里还有另一种选择:扩展ellipsis
包以在数学模式下工作,除了添加两个维度(\ellipsisbeforegap
和\ellipsisaftergap
,如果设置为零,它具有与ellipsis
包中相同的行为)。
\documentclass{scrartcl}
\usepackage{mathtools}
\usepackage{ellipsis}
\makeatletter
\renewcommand*{\mathellipsis}{%
\mathinner{%
\kern\ellipsisbeforegap%
{\ldotp}\kern\ellipsisgap%
{\ldotp}\kern\ellipsisgap%
{\ldotp}\kern\ellipsisaftergap%
}%
}
\renewcommand*{\dotsb@}{%
\mathinner{%
\kern\ellipsisbeforegap%
{\cdotp}\kern\ellipsisgap%
{\cdotp}\kern\ellipsisgap%
{\cdotp}\kern\ellipsisaftergap%
}%
}
\renewcommand*{\@cdots}{%
\mathinner{%
\kern\ellipsisbeforegap%
{\cdotp}\kern\ellipsisgap%
{\cdotp}\kern\ellipsisgap%
{\cdotp}\kern\ellipsisaftergap%
}%
}
\renewcommand*{\ellipsis@default}{%
\ellipsis@before
\kern\ellipsisbeforegap
.\kern\ellipsisgap
.\kern\ellipsisgap
.\kern\ellipsisgap
\ellipsis@after\relax}
\renewcommand*{\ellipsis@centered}{%
\ellipsis@before
\kern\ellipsisbeforegap
.\kern\ellipsisgap
.\kern\ellipsisgap
.\kern\ellipsisaftergap
\ellipsis@after\relax}
\AtBeginDocument{%
\DeclareRobustCommand*{\dots}{%
\ifmmode\@xp\mdots@\else\@xp\textellipsis\fi}}
\def\ellipsisgap{.1em}
\def\ellipsisbeforegap{.05em}
\def\ellipsisaftergap{.05em}
\makeatother
\begin{document}
a \dots\ b
a\dots b
\[ a + \dots + b \]
\end{document}
还,我的这个问题如果您想为不同的字形(例如,,,,,!
等)配置点后的间距,?
这可能会很有趣。,
;
答案3
或者使用字距调整:
% arara: pdflatex
\documentclass{article}
\newcommand*{\myDots}{\ifmmode\mathellipsis\else.\kern-0.13em.\kern-0.13em.\fi} % touching at \kern-0.1725em
\begin{document}
\myDots
\dots
$\myDots$
$\dots$
\end{document}
如果您希望数学版本采用不同的字距,您只需\mathellipsis
用其他内容替换即可。
更新:为了完全控制数学和文本模式,您可以使用以下命令:\newcommand{\myDots}{\ifmmode\mathinner{\ldotp\kern-0.2em\ldotp\kern-0.2em\ldotp}\else.\kern-0.13em.\kern-0.13em.\fi}
第二种可能性(仅适用于文本模式)是包ellipsis
:
% arara: pdflatex
\documentclass{article}
\usepackage{ellipsis}
\renewcommand{\ellipsisgap}{0.01em}
\begin{document}
\dots $\dots$
\end{document}