为什么 \textvisiblespace 用矩形表示?

为什么 \textvisiblespace 用矩形表示?

我使用 xelatex,带有 Ubuntu 字体,但出于某种原因,我无法将 插入\textvisiblespace到我的文档中 - 我得到的结果只是一个框:“”。有什么方法可以解决这个问题吗?

例子:

\documentclass[a4paper]{article}
\usepackage{xltxtra}
\setmainfont[Mapping=tex-text]{Ubuntu}
\begin{document}
\textvisiblespace
\end{document}

答案1

该字体Ubuntu不支持 Unicode 字符 2423。使用

\setmainfont[Mapping=tex-text]{DejaVu Serif}

例如。另一种选择可能是:

\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Ubuntu}
\newfontface\TVSp{DejaVu Serif}
\def\textvisiblespace{{\TVSp\char"2423}}

\begin{document}
\textvisiblespace
\end{document}

答案2

我没有安装字体,所以我不确定这是否是你想要的:

  1. 加载 Ubuntu 字体后重新定义\textvisiblespace。以下定义取自latex.ltx

    \def\textvisiblespace{%
       \mbox{\kern.06em\vrule height.3ex}%
       \vbox{\hrule width.3em}%
       \hbox{\vrule height.3ex}}
    
  2. \textvisiblespace捕获盒子里的内容加载新字体然后恢复:

    % Document preamble
    \newsavebox{\textvisiblespacebox}
    \begin{lrbox}{\textvisiblespacebox}\textvisiblespace\end{lrbox}
    % Insert font-related changes here
    \def\textvisiblespace{\usebox{\textvisiblespacebox}}
    

    \textvisiblespace请注意,这将修复的设置\normalfont,因此它不会随着尺寸变化而改变\small(例如)。

相关内容