fancyvrb
将 get的 verbatim 环境(或任何其他变体)用作\textsf
字体的正确方法是什么?
我可以用以下方法做:
\begin{Verbatim}[commandchars=\\\{\}]
\textsf{Here’s some textsf.}
\end{Verbatim}
我原本期望类似下面的操作能够起作用:
\begin{Verbatim}[fontfamily=helvetica]
Here’s some Helvetica.
\end{Verbatim}
但我尝试过的所有变体([fontfamily=sf]
、、和其他[fontfamily=textsf]
六种[fontshape=sf]
)似乎都不起作用。
答案1
与字体系列的定义类似tt
,您可以构建一个sf
系列来使用\sffamily
:
\documentclass{article}
\usepackage{fancyvrb}
\makeatletter
\begingroup
\catcode`\`=\active
\gdef\FV@fontfamily@sf{%
\def\FV@FontScanPrep{\FV@MakeActive\`}%
\def\FV@FontFamily{\sffamily\edef`{{\string`}}}}
\endgroup
\makeatother
\begin{document}
\noindent Text before
\begin{Verbatim}[fontfamily=sf]
Here's some Sans Serif font.
\end{Verbatim}
Text after
\end{document}
因为您在问题中说“或任何其他变体”,这里有一个使用包lstlisting
中的环境的示例listings
:
\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\sffamily,columns=flexible}
\begin{document}
\noindent Text before
\begin{lstlisting}
Here's some Sans Serif font.
\end{lstlisting}
Text after
\end{document}
现在还有另一种选择,这次使用界面listings
来fancyvrb
:
\documentclass{article}
\usepackage{fancyvrb}
\usepackage{listings}
\lstset{fancyvrb=true,basicstyle=\sffamily,columns=flexible}
\begin{document}
\noindent Text before
\begin{Verbatim}
Here's some Sans Serif font.
\end{Verbatim}
Text after
\end{document}
答案2
也许只是:
\documentclass{article}
\begin{document}
\makeatletter
%\def\verbatim@font{\normalfont\ttfamily} % original one
\def\verbatim@font{\normalfont\sffamily}
\makeatother
\begin{verbatim}
Sans serif,
indeed.
\end{verbatim}
\end{document}
答案3
如图所示带有保留 LaTeX 符号的特殊文本命令,
\documentclass{article}
\usepackage{verbatim}
\renewcommand\encodingdefault{T1}
\newenvironment{venv}{\verbatim\venvinner}{\endverbatim}
\makeatletter
\newcommand\venvinner[1][]{{\nfss@catcodes\scantokens{\gdef\tmp{#1}}}\tmp}
\makeatother
\begin{document}
\begin{venv}[\sffamily]
This should be \verbatim in sans serif
\end{venv}
\end{document}