字母上方叠加垂直线

字母上方叠加垂直线

寻找一种将垂直线放在另一个字符上的方法。类似于 \cancel 功能,但使用垂直线而不是斜线。例如,在大写字母 S 上,垂直线会将其变成类似于美元符号的东西:$。(此文本框中的垂直性似乎取决于字体选择)即在 C 上叠加一个 |

答案1

以下解决方案使用 TikZ(更多配置选项,如圆角线帽等)。可选参数\vertchar允许水平微调:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand*{\vertchar}[2][0pt]{%
  \tikz[
    inner sep=0pt,
    shorten >=-.15ex,
    shorten <=-.15ex,
    line cap=round,
    baseline=(c.base),
  ]\draw
    (0,0) node (c) {#2}
    ($(c.south)+(#1,0)$) -- ($(c.north)+(#1,0)$);%
}
\begin{document}
  \vertchar{S} and \vertchar{C} or \vertchar[.08ex]{C}
\end{document}

结果

答案2

\stackinset允许你使用语法来做到这一点

\stackinset{H-anchor}{H-offset}{V-anchor}{V-offset}{inset}{base}

插入和基部可以是字形、短语、图像,任何可以放入 LaTeX 框中的东西。H 锚点是 l、c 或 r。V 锚点是 t、c 或 b。您可以通过发出 来默认堆叠数学\stackMath,这是针对 MWE 的第二个示例完成的,其中我@通过a在数学中插入数学来模拟符号O

\documentclass{article}
\usepackage{stackengine}
\begin{document}
\stackinset{c}{}{c}{}{\rule{.4pt}{2ex}}{C}
\stackMath
\stackinset{c}{}{b}{1pt}{a}{O}
\end{document}

在此处输入图片描述

插图可以嵌套,以在一个基础上插入多个内容,例如在此答案中:图表上的数学公式(不是由 TeX 制作的)

相关内容