我已启用此功能shortvrb
,以便我可以将文本括在管道中以编写小段代码。不幸的是,当我编写$|A|$
以指示集合的基数时,这与数学模式相冲突。如何shortvrb
在数学模式下禁用此功能?
答案1
\documentclass{article}
\usepackage{fancyvrb}
\DefineShortVerb{\|}
\everymath{\UndefineShortVerb{\|}\vert}
\begin{document}
$|A|$
\end{document}
但是,脚注存在问题。以下更有意义的原因是:
\documentclass{article}
\usepackage{fancyvrb}
\DefineShortVerb{\|}
\begin{document}
$\vert A\vert$
\end{document}
答案2
以下似乎有效:
\usepackage{fancyvrb}
\DefineShortVerb{\|}
\makeatletter
\edef|{\unexpanded{%
\ifmmode
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi{\vert}}{\unexpanded\expandafter{|}}}
\makeatother
但当然你将不能\UndefineShortVerb
再次使用\DefineShortVerb
。
当需要数学模式中的条形图时,最好求助于\vert
,或者更好的是,求助于\lvert
amsmath` 。\rvert| provided by