如何在乳胶中用 | 覆盖 0 来创建一个由 0 和内部垂直线组成的新符号?
我看了以下帖子用另一个符号覆盖符号并尝试调整其中一个答案中提供的代码,因为我不理解接受的答案,但这并没有输出我想要的符号。
\newcommand\cz{\mathrel{\ooalign{$|$\cr\hidewidth$0$\hidewidth\cr}}}
垂直划线会超出零,当我在这个符号旁边写另一个字母时,间距会不正确。为了尝试理解可接受的答案,我尝试在网络上和 texmaker 提供的 latex 参考中(帮助选项卡下)查找那里使用的命令,如 \rlap、\setbox 等,但我发现的网页对这些命令的解释非常糟糕,latex 参考甚至没有这些命令。我在哪里可以找到这些命令的官方文档或任何其他学习它们的好资源?
答案1
适用于所有数学风格。我将拉伸覆盖\vert
在里面0
。
\documentclass{article}
\usepackage{stackengine,scalerel}
\newcommand\vertzero{\ThisStyle{\ensurestackMath{\stackengine
{0pt}{\SavedStyle0}{\SavedStyle\stretchrel*{\vert}{0}}%
{O}{c}{F}{F}{L}}}}
\begin{document}
$\vertzero\scriptstyle\vertzero\scriptscriptstyle\vertzero$
\end{document}
如果不喜欢在高倍放大下看到 的圆形极值\vert
,可以将其调整为
\documentclass{article}
\usepackage{stackengine,scalerel}
\newcommand\vertzero{\ThisStyle{\ensurestackMath{\stackengine
{0pt}{\SavedStyle0}%
{\SavedStyle\stretchrel*{\vert}{\addstackgap[.1\LMpt]{\SavedStyle0}}}%
{O}{c}{F}{F}{L}}}}
\begin{document}
$\vertzero\scriptstyle\vertzero\scriptscriptstyle\vertzero$
\end{document}
如果想要更好地控制条形的宽度,\vert
用\rule
指定宽度的替换可以提供这种灵活性。在这里,我使宽度为.6\LMpt
,其中\LMpt
是 pt 的度量,在较小的数学样式中按比例缩放。
\documentclass{article}
\usepackage{stackengine,scalerel}
\newcommand\vertzero{\ThisStyle{\ensurestackMath{\stackengine
{0pt}{\SavedStyle0}{\SavedStyle\stretchrel*{\rule{.6\LMpt}{1ex}}{0}}%
{O}{c}{F}{F}{L}}}}
\begin{document}
$\vertzero\scriptstyle\vertzero\scriptscriptstyle\vertzero$
\end{document}
答案2
使用\ooalign
,但调整栏的大小以适应。我使用一个简单的\vrule
且高度适当且宽度与当前数学样式中的分数线一样宽的条形图。
请注意,\hidewidth
必须使用较窄的符号。
\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}
\makeatletter
\newcommand{\cz}{}% for safety
\DeclareRobustCommand{\cz}{\mathord{\mathpalette\cz@\relax}}
\newcommand{\cz@}[2]{%
\begingroup
\sbox\z@{$\m@th#10$}%
\ooalign{%
\hidewidth\vrule height \ht\z@ width \cz@wd{#1}\hidewidth\cr
\box\z@\cr
}%
\endgroup
}
\newcommand{\cz@wd}[1]{%
\fontdimen8
\ifx#1\displaystyle\textfont\else
\ifx#1\textstyle\textfont\else
\ifx#1\scriptstyle\scriptfont\else
\scriptscriptfont\fi\fi\fi 3
}
\makeatother
\begin{document}
$0+\cz$
$\scriptstyle 0+\cz$
$\scriptscriptstyle 0+\cz$
\end{document}
答案3
这里我使用 TikZ 来画线:
\documentclass{article}
\usepackage{tikz}
\newcommand{\zerobar}{
\begin{tikzpicture}[baseline, overlay]
\node[anchor=base] {$0$};
\draw (0,0) -- (0,1.5ex);
\end{tikzpicture}
}
\begin{document}
Test \zerobar{} test $0$ test
\end{document}
编辑: 更好的间距:
\documentclass{article}
\usepackage{tikz}
\newcommand{\zerobar}{%
\begin{tikzpicture}[baseline]
\node[anchor=base, inner sep=0] {$0$};
\draw (0,0) -- (0,1.5ex);
\end{tikzpicture}}
\begin{document}
Test in text \zerobar{} test $0$ test\\
Test in math $\zerobar{}+2=0+2$
\end{document}