在数学模式下禁用 shortvrb

在数学模式下禁用 shortvrb

我已启用此功能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,或者更好的是,求助于\lvertamsmath` 。\rvert| provided by

相关内容