如何在 Verbatim 环境中更改字形?

如何在 Verbatim 环境中更改字形?

我有一个文档,其中包含Verbatim环境中的示例程序代码。打字产生的插入符号^对我来说太平了,所以我定义了一个宏来产生更清晰的版本。

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{fancyvrb}

%A more wedge-like caret for use in code. 
\newcommand\pow{\hspace{-1pt}\raisebox{-1pt}{\scalebox{1.2}{\textsf{\textasciicircum}}}\hspace{-1pt}}

%Set up code environment  
\DefineVerbatimEnvironment{code}{Verbatim}{xleftmargin=12pt,xrightmargin=12pt,commandchars=\\\{\}}

\begin{document}
\begin{code}
y = x^2  
y = x\pow2
\end{code}
\end{document}

插入符号

不幸的是,在代码示例中,我们很容易忘记使用\pow和 的必要性^。因此,我希望进行设置,以便^code环境中输入 会产生 的结果\pow。如何实现这一点?

答案1

我确信你会欣赏这个狡猾的技巧:

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{fancyvrb}

%A more wedge-like caret for use in code. 
\newcommand\pow{%
  \hspace{-1pt}%
  \raisebox{-1pt}{\scalebox{1.2}{\textsf{\textasciicircum}}}%
  \hspace{-1pt}%
}
\newcommand{\makehatpow}{%
  \begingroup\lccode`~=`^
  \lowercase{\endgroup\let~}\pow
  \catcode`^=\active
}

%Set up code environment  
\DefineVerbatimEnvironment{code}{Verbatim}{
  xleftmargin=12pt,
  xrightmargin=12pt,
  commandchars=\\\{\},
  codes={\makehatpow},
}

\begin{document}
\begin{code}
y = x^2
y = x\pow2
\end{code}
\end{document}

在此处输入图片描述

codes应包含在执行通常的逐字类别代码分配之前执行的代码。幸运的是,^在逐字环境(如>或)中并不特殊,因此我们可以将其设置为活动状态,但在使其活动之前,我们(本地)使用老办法`为活动状态定义一个含义。请参阅^\begingroup\lccode`~=...这个答案或者我的了解更多信息。

相关内容