明确的空格字符?

明确的空格字符?

我想知道制作显式空格字符(我甚至不知道它应该叫什么)的最佳方法,就像您在环境中得到的那些一样\begin{verbatim*}。我发现最接近的方法是

\sqcup

在数学模式中,但对我来说这似乎有点不妥。是否有我要查找的文本符号?

答案1

这里不需要任何特殊的东西;标准 LaTeX 提供\textvisiblespace

\documentclass{article}

\begin{document}

An explicit space: a\textvisiblespace b

\end{document}

在此处输入图片描述

原始定义的一个简单变体:

\DeclareTextCommandDefault{\textvisiblespace}{%
  \mbox{\kern.06em\vrule \@height.3ex}%
  \vbox{\hrule \@width.3em}%
  \hbox{\vrule \@height.3ex}}

允许使用可选参数控制宽度:

\documentclass{article}

\newcommand\Vtextvisiblespace[1][.3em]{%
  \mbox{\kern.06em\vrule height.3ex}%
  \vbox{\hrule width#1}%
  \hbox{\vrule height.3ex}}

\begin{document}

An explicit space: a\textvisiblespace b

An explicit space: a\Vtextvisiblespace b

An explicit 1em space: a\Vtextvisiblespace[1em]b

An explicit 1cm space: a\Vtextvisiblespace[1cm]b

\end{document}

在此处输入图片描述

答案2

最简单的获取方法是用打字机字体打印字符 32:

 \texttt{\char32}

答案3

你可以将该字符(一个 squat-u)存储在一个框中并在必要时使用它:

在此处输入图片描述

\documentclass{article}
\newsavebox{\spacebox}
\begin{lrbox}{\spacebox}
\verb*! !
\end{lrbox}
\newcommand{\aspace}{\usebox{\spacebox}}%
\begin{document}
Hi\aspace there!
\end{document}

你不能直接将它存储在宏中,因为逐字内容不能作为参数传递。但是,通过lrbox环境对其进行装箱是可行的。使用 squat-u via \aspace

另一种选择是使用fancyvrb

\documentclass{article}
\usepackage{fancyvrb}
\fvset{showspaces=true}
\SaveVerb{verbspace}! !
\newcommand{\aspace}{\UseVerb{verbspace}}%
\begin{document}
Hi\aspace there!
\end{document}

答案4

Unicode 字符 uni2423 存在于多种 TeX 字体中(Stix、Latin Modern Roman 等)。如果您使用的是 LuaLaTeX 或 XeTeX,您可以直接调用该字符,也可以从字符映射中粘贴。

这不一定比其他回复中讨论的方法更好。这只是另一种方法。让我们看看它在这里是否有效。如果您看到下面 A 和 B 之间的字符(从字符映射中粘贴),则意味着您的浏览器的字体有它(我的有):

A␣B

\verb|A␣B|只要字体有符号,此方法也适用于 LuaLaTeX 和 XeTeX 。

相关内容