排版感叹号+疑问号+省略号(!.. ?.. ?!. !?)

排版感叹号+疑问号+省略号(!.. ?.. ?!. !?)

我们都知道我们应该使用\dots...三个单点)。

但是,如何正确排版感叹号和省略号 ( !..) 的组合、问号和省略号 ( ?..) 的组合,或者两个标记都带点 ( ?!., !?.) 的组合呢?

我想要有等距离的点 — — 与 中相同\dots

当然,我可以猜测字距,但这个解决方案将依赖于字体:-(

答案1

我不确定这些字符组合应该代表什么。无论如何,它们在这里;恐怕仍然依赖于字体,因为的形状?会造成阻碍,所以我为它提供了一个“参数”。取消注释其中一个字体包以查看使用不同字体的效果;对于这两个,更改\centqmkern似乎没有必要。

\documentclass{article}
%\usepackage{erewhon}
%\usepackage{newtxtext}

\newcommand{\centqm}{\makebox[\fontcharwd\font`.]{?}}
\newcommand{\centqmkern}{\kern.2\fontcharwd\font`?}

\DeclareRobustCommand{\edots}{%
  !\kern\fontdimen3\font
  .\kern\fontdimen3\font
  .\kern\fontdimen3\font
}
\DeclareRobustCommand{\qdots}{%
  \centqmkern
  \centqm\kern\fontdimen3\font
  .\kern\fontdimen3\font
  .\kern\fontdimen3\font
}

\DeclareRobustCommand{\qedots}{%
  \centqmkern
  \centqm\kern\fontdimen3\font
  !\kern\fontdimen3\font
  .\kern\fontdimen3\font
}

\DeclareRobustCommand{\eqdots}{%
  !\kern\fontdimen3\font
  \centqm\kern\fontdimen3\font
  .\kern\fontdimen3\font
}

\begin{document}

Text\dots

Text\edots

Text\eqdots

Text\qdots

Text\qedots

Text?

\end{document}

在此处输入图片描述

答案2

您可以使用宏\eli后跟三个符号。例如Text\eli?..优点是您不需要在此之后指定显式空格。名称\eli表示省略号。

\def\eli#1#2#3{%
   \setbox0=\hbox{#1}%
   \setbox2=\hbox{.}%
   \kern.5\wd0
   \cbox{#1}\kern1.6\wd2\cbox{#2}\kern1.6\wd2\cbox{#3}%
   \kern\wd2
}
\def\cbox#1{\hbox to0pt{\hss#1\hss}}

Text\eli... Text\eli?.. Text\eli!.. Text\eli?!.

\bye 

结果:

伊莱

答案3

我不确定你提到的符号是否有命令,但有一种方法可以让它看起来像你想要的那样\rlap(见这里了解更多详情)。代码如下:

\documentclass{ltxdoc}
\begin{document}

\noindent
Hello\rlap{\dots}!\\
Yes\rlap{\dots}?\\
May I come in\rlap{\hspace{1pt}\dots}?\\
Why\rlap{\dots}?!\\
Why not\rlap{\hspace{1pt}\dots}?\hspace{1pt}!\\
Because\rlap{\dots}!?\\
Never\rlap{\dots}!\hspace{1pt}?

\end{document}

最终结果图像如下:

在此处输入图片描述

如您所见,存在一些问题,因为问号与感叹号的间距不完全相同,但稍加调整就可以正常工作。

相关内容