Courier 字体无法使用

Courier 字体无法使用

(Latex、Mac OS X)

假设我们想使用 courier 字体。从这里开始:

\texttt{Wanna nice monospace font here}
{\ttfamily TeleType And here}
\begin{Verbatim}[fontfamily=courier]
    And here please too!
\end{Verbatim}

这不起作用。前两个部分(texttt 和 ttfamily)有等宽字体,但来自石器时代。在 2015 年,这很糟糕。最后一部分(begin/end Verbatim)不能完全工作 - 它打印完全非等宽字体,看起来像 times-new-roman,与等宽字体相差甚远(尤其是 courier)。

我试过了

\usepackage{courier}

乃至

\usepackage[T1]{fontenc} % Why user should care about it in 2015 btw?
                         % T2A not working too.

因此,此包会生成“times-new-roman-like”字体,而不是任何等宽字体。好吧,也许是无用的包?

据我所知,许多 latex 软件包彼此不兼容。我曾尝试调查此事,但没有成功。

这是 Latex 文档的标题:

\documentclass[10pt]{book}
\usepackage[a5paper,left=3cm,right=2cm,top=1.5cm,bottom=1.5cm]{geometry}
\usepackage[russian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{import}
\usepackage{listings}
\usepackage{fancyvrb}
\usepackage{color}
\usepackage{hyperref}
\usepackage{setspace}
\usepackage{courier}
\usepackage[T1]{fontenc}

** 所以主要问题是:如何在乳胶中获得漂亮的等宽字体 Courier?**

** 编辑:当然我需要在逐字环境中使用 Courier 并处理俄文字母。据我所知,Latex 处理这个问题相当古老。还有其他解决方案吗?例如:1) 另一种不错的等宽字体,如 Courier,但比标准的石器时代字体更好。2) 另一个 Latex 引擎?xetex、xelatex?它们能处理吗?**

谢谢。

答案1

如果您的逐字文本不包含西里尔字母,您可以修改设置宏以fancyvrb使用 T1 编码。问题是 TeX 发行版不具备西里尔 Courier 兼容字体。

类似地,您可以对 使用类似的声明listings

\documentclass[10pt]{book}
\usepackage[a5paper,left=3cm,right=2cm,top=1.5cm,bottom=1.5cm]{geometry}

\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\usepackage{courier}

\usepackage{listings}
\usepackage{fancyvrb}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\FV@SetupFont}
  {\FV@BaseLineStretch}
  {\fontencoding{T1}\FV@BaseLineStretch}
  {}{}
\makeatother

\lstset{
  basicstyle=\fontencoding{T1}\ttfamily,
  columns=fullflexible
}

\begin{document}

Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.

\begin{Verbatim}
some verbatim text in Courier
\end{Verbatim}

Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.

\begin{lstlisting}
some verbatim text in Courier
\end{lstlisting}

\end{document}

在此处输入图片描述

涵盖西里尔字母的等宽字体是 PTMono;不幸的是,listings它不能很好地处理 UTF-8 字符(listings-utf8但需要使用 进行检查\lstinputlisting)。

\documentclass[10pt]{book}
\usepackage[a5paper,left=3cm,right=2cm,top=1.5cm,bottom=1.5cm]{geometry}

\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\usepackage[scaled=0.9]{PTMono}

\usepackage{fancyvrb}

\begin{document}

Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.

\begin{Verbatim}
some дословно text in PTMono
\end{Verbatim}

Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.

\end{document}

在此处输入图片描述

如果您热衷于切换到 XeLaTeX/LuaLaTeX,那么没有什么大问题,只要您的系统上有支持西里尔文的 Courier 的 OpenType/TrueType 版本即可;在我的情况下,它被称为 Courier New。

\documentclass[10pt]{book}
\usepackage[a5paper,left=3cm,right=2cm,top=1.5cm,bottom=1.5cm]{geometry}

\usepackage{fontspec}
\usepackage[russian]{babel}

\usepackage{fancyvrb}

\setmainfont{Linux Libertine O} % or whatever
\setmonofont[Scale=MatchLowercase]{Courier New}

\begin{document}

Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.

\begin{Verbatim}
some дословно text in Courier
\end{Verbatim}

Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.
Этот текст на русском языке.

\end{document}

在此处输入图片描述

关于 ,也可以说与上述相同的内容lstlisting。您可能还想看看minted

相关内容