是否有与 Unicode 'SYMBOL FOR NULL' 等效的 LaTeX 符号

是否有与 Unicode 'SYMBOL FOR NULL' 等效的 LaTeX 符号

我正在寻找一个包含单个字符宽度的字母“NUL”的 LaTeX 符号。它很好地表示了\0在 C 派生编程语言中经常输入的字符串终止字符。在 Unicode 中,它表示为代码点 U+2400

要明确的是,我不是在寻找:

  • \varnothing
  • \emptyset
  • 当然不 \phi

我也应该清楚,我正在寻找一个表示控制字符,打印或显示它,而不是让它执行其预期的功能作为一个控制字符。

作为一个密切相关的附带问题,假设我知道 Unicode 字形的代码点。有没有办法确定该字形在 LaTeX 中的等效项?我对 LaTeX 排版还比较陌生,所以我还没有找到这样的参考资料。

答案1

如果您使用pdflatex,则可以使用该ascii包:

\documentclass{article}
\usepackage{ascii}

\begin{document}

Is this it? \NUL

\end{document}

在此处输入图片描述

您还可以直接将符号输入为 Unicode,因此代码可以移植到 XeLaTeX 或 LuaLaTeX。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{ascii}
\usepackage{newunicodechar}

\newunicodechar{␀}{\NUL}

\begin{document}

Is this it? ␀

\end{document}

使用 XeLaTeX 或 LuaLaTeX fontspec,找到带有该字符的字体,然后执行以下操作

\documentclass{article}
\usepackage{fontspec}
\usepackage{newunicodechar}

\newfontface{\ASCIICONTROLS}{FreeMono} % <--- or another font
\newunicodechar{␀}{{\ASCIICONTROLS ␀}}

\begin{document}

Is this it? ␀

\end{document}

在此处输入图片描述

答案2

如果使用支持 Unicode/OpenType 字体的 TeX 引擎,那么只需找到包含 Unicode 代码点 U+2400 的字体即可,例如:

% lualatex or xelatex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\def\test#1{#1:&\fontspec{#1}\symbol{"2400}\\}
\begin{tabular}{l@{ }l}
  \test{FreeMono}
  \test{FreeSans}
  \test{FreeSerif}
  \test{Quivira}% http://www.quivira-font.com/
\end{tabular}
\end{document}

结果

答案3

如果您希望它符合当前字体的大小和样式,您可以构建自己的字体:

\documentclass[a2]{article}
\usepackage{stackengine,scalerel}
\newcommand\NUL{\scalerel*{$\Shortstack[l]{N \phantom{N}U \phantom{NU}L}$}{X}}
\begin{document}
\LARGE
This is \NUL

\normalsize
This is \NUL

\itshape
This is \NUL

\upshape\ttfamily
This is \NUL

\end{document}

在此处输入图片描述

如果为了清楚起见,希望符号总是加粗,那么

\newcommand\NUL{\scalerel*{$\bfseries\Shortstack[l]{N \phantom{N}U \phantom{NU}L}$}{X}}

可以解决此问题:

在此处输入图片描述

相关内容