负空间等于字符串的长度?

负空间等于字符串的长度?

我正在尝试创建符号,例如问号(基本上是将 ? 和 ! 合并为一个标点符号),它们是两个重叠符号的结果。类似这样的符号可以用两个负空格产生,但远非完美。

我见过并尝试使用\mkern{}\kern{},但它们不适用于宽度的文本。

基本上,我需要一个可以像这样操作的命令:? \negspace{?} !。这将基本上输入一个?,返回一个?的宽度,然后输入一个!。(有点像打字机上的 ← 键。)这可能吗?

谢谢!

答案1

您要找的是重叠宏。要么使用\rlap(产生right over lap):

\rlap{?}!

\llap(产生一个l超过的 eft lap):

?\llap{!}

标点符号?和的顺序!其实并不重要,尽管它们的宽度不同(因此在切换时设置可能会略有不同)。LaTeX2e 等效项是\makebox[0pt][l]{?}!( ?\makebox[0pt][r]{!}),它设置?在一个零宽度框中,该框是l左对齐的,后跟现在覆盖的!adjustbox在大量用户友好的界面宏中提供了类似的功能。

不要使用“后退间距”技术来调整间距,而是使用 来覆盖符号\ooalign。但是,textcomp已经提供\textinterrobang

在此处输入图片描述

\documentclass{article}
\usepackage{textcomp}
\newcommand{\interrobang}{{\ooalign{?\cr\hss!\kern .025em\hss}}}
\begin{document}

I came! I saw? I conquered\textinterrobang{} And now I'm leaving.

I came! I saw? I conquered\interrobang{} And now I'm leaving.

\end{document}

\subseteq+\circ作为单个符号(“开子集”)为了快速课程\ooalign

相关内容