![Beramono 在 XeTeX 中?](https://linux22.com/image/290966/Beramono%20%E5%9C%A8%20XeTeX%20%E4%B8%AD%EF%BC%9F.png)
我喜欢 beramono 字体,我想用它制作代码清单(使用listings
包)。我想在正文中使用标准 CMR tt 字体作为打字机字体。
我可以使用 XeLaTeX 来做到这一点,通过导入 beramono fontspec
- 但我找不到字体的正确名称!我能找到的只有(对于 LaTeX):
\usepackage[T1]{fontenc}
\usepackage{beramono}
这一切都很好,但它会改变所有打字机字体,而不仅仅是列表中的字体。我想要的是使用 XeLaTeX 来处理类似
\usepackage{fontspec}
\newfontface\lstmono[scale=0.9]{The Proper Name for Beramono}
然后在我的列表序言中包括
basicstyle=\lstmono
但是,我不知道 beramono 的正确名称。该命令fc-list
没有太大帮助。beramono 可以与 XeLaTeX 一起使用吗?
答案1
下载 ttf 版本
http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/
并将文件保存到系统可以找到字体的目录中。然后定义一个字体
\newfontfamily\Bera{Bitstream Vera Sans Mono}[Scale=0.85]
或者使用文件名。
然后你可以使用列表
\lstset{basicstyle=\Bera\small,...}
一个例子:
\documentclass{article}
\usepackage{fontspec}
\usepackage{listings,xcolor}
\newfontfamily\Bera{Bitstream Vera Sans Mono}[Scale=0.85]
\lstset{basicstyle=\Bera\small,keywordstyle=\bfseries,commentstyle=\itshape}
\begin{document}
\begin{lstlisting}[language={[LaTeX]TeX}]
\documentclass{article}% standard class
\usepackage{pst-eps}
\usepackage{graphicx}
\begin{document}
\end{lstlisting}
\texttt{Default monotype}
\textbf{\texttt{Default bold monotype}}
\end{document}
答案2
这是基于 OP 解决问题的评论。在 下pdflatex
,xelatex
或者lualatex
您可以在任何时候使用以下方式明确选择字体
\fontencoding{T1}\fontfamily{fvm}\selectfont
请注意字体编码的具体声明,如果您尚未在文档中全局设置,则需要此声明。对于listings
,您可以设置basicstyle
为使用此字体。
\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\small\fontencoding{T1}\fontfamily{fvm}\selectfont}
\begin{document}
Demonstrating ordinary typerwriter font \texttt{ordinary typewriter
font} for comparison.
\begin{lstlisting}
Some = code + bera mono;
\end{lstlisting}
\end{document}
可以将类似的方法与xelatex
(或lualatex
) 结合使用fontspec
,但您需要一种开放类型的 bera 字体,而我不确定是否存在。以下是使用另一种固定宽度字体的相关代码。
\documentclass{article}
\usepackage{fontspec}
\usepackage{listings}
\newfontfamily\lstfont{almfixed.otf}
\lstset{basicstyle=\small\lstfont}
\begin{document}
Demonstrating ordinary typerwriter font \texttt{ordinary typewriter
font}.
\begin{lstlisting}
Some = code;
\end{lstlisting}
\end{document}