如何在 fancyvrb Verbatim 中指定非标准字体?

如何在 fancyvrb Verbatim 中指定非标准字体?

我在段落中使用 Inconsolata 编写代码,也想在 verbatim 环境中使用它编写代码。我曾尝试使用 fancyvrb 的 Verbatim 环境来执行此操作,但无法获得除 Courier 之外的任何字体。我的文档开头如下:

\documentclass{book}

\usepackage{fancyvrb}
\usepackage{inconsolata}

\DefineVerbatimEnvironment{VerbOut}{Verbatim}{fontfamily=courier}

\begin{document}

Normal paragraph with \texttt{code using texttt}.

\begin{VerbOut}
VerbOut environment.
\end{VerbOut}

\end{document}
  1. 如果我将fontfamily定义中的更改VerbOutinconsolata,则逐字块将显示正常(Times Roman)字体。
  2. 如果我将其更改为\sffamily,则会收到错误:! Missing \endcsname inserted.
  3. {\sffamily}使用、\protect\sffamily和其他变体时,我遇到了同样的错误。

问题:

  1. 将字体更改为 Inconsolata 的正确方法是什么?
  2. 将其更改为正在使用的内容的正确方法是什么\texttt(以防我们再次改变对字体的看法)?

答案1

字体系列inconsolata实际上是zi4

在此处输入图片描述

\documentclass{book}

\usepackage{fancyvrb}
\usepackage{inconsolata}

\DefineVerbatimEnvironment{VerbOutA}{Verbatim}{fontfamily=courier}% Courier
\DefineVerbatimEnvironment{VerbOutB}{Verbatim}{fontfamily=cmtt}% Computer Modern Typewriter
\DefineVerbatimEnvironment{VerbOutC}{Verbatim}{fontfamily=zi4}% Inconsolata

\begin{document}

Normal paragraph with \texttt{code using texttt}.

\begin{VerbOutA}
VerbOut environment.
\end{VerbOutA}

\begin{VerbOutB}
VerbOut environment.
\end{VerbOutB}

\begin{VerbOutC}
VerbOut environment.
\end{VerbOutC}

\end{document}

这是我的\listfiles

 *File List*
    book.cls    2007/10/19 v1.4h Standard LaTeX document class
    bk10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
fancyvrb.sty    2008/02/07
  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
inconsolata.sty    2013/06/09 zi4a
textcomp.sty    2005/09/27 v1.99g Standard LaTeX package
  ts1enc.def    2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
  ts1cmr.fd    1999/05/25 v2.5h Standard LaTeX font definitions
 upquote.sty    2012/04/19 v1.3 upright-quote and grave-accent glyphs in verbat
im
  ot1zi4.fd    2013/06/09 OT1/zi4 (Inconsolata)
  ot1pcr.fd    2001/06/04 font definitions for OT1/pcr.
 ***********

答案2

跑步

\listfiles
\documentclass{book}
\usepackage[T1]{fontenc}% always a good idea
\usepackage{inconsolata}
\usepackage{fancyvrb}
\DefineVerbatimEnvironment{VerbOut}{Verbatim}{fontfamily=courier}
\begin{document}

Normal paragraph with \texttt{code using texttt}.

\begin{VerbOut}
VerbOut environment.
\end{VerbOut}

\end{document}

并查看文件列表(在日志文件的末尾。它在末尾显示了 Inconsolata 的内部系列名称:

*File List*
book.cls 2007/10/19 v1.4h Standard LaTeX document class
bk10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
fancyvrb.sty 2011/04/06
keyval.sty 2014/05/08 v1.15 key=value parser (DPC)
fontenc.sty
t1enc.def 2005/09/27 v1.99g Standard LaTeX file
inconsolata.sty 2013/06/09 zi4a
textcomp.sty 2005/09/27 v1.99g Standard LaTeX package
ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
upquote.sty 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verbat
im
t1zi4.fd 2013/06/09 T1/zi4 (Inconsolata)
t1pcr.fd 2001/06/04 font definitions for T1/pcr.
***********

t1zi4.fd是Inconsolata的字体定义文件。t1是字体编码和zi4系列名称。

\DefineVerbatimEnvironment{VerbOut}{Verbatim}{fontfamily=zi4}

如果您安装了 Inconsolata,则应该注意。

相关内容