(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
。