Beramono 在 XeTeX 中?

Beramono 在 XeTeX 中?

我喜欢 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 解决问题的评论。在 下pdflatexxelatex或者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}

相关内容