我想将文本的任意部分放入一种看起来像是 20 世纪 60 年代手动打字机的字体中。具体来说,每个字符必须占据一列,宽度与所有其他列相同。我所说的“任意”是指可以包含段落分隔符的部分,而不仅仅是像 一样的单个段落\texttt{something}
。
这引发了几个问题。
- xelatex 使用的默认字体是什么
\textttt{something}
? - 我怎样才能对包含段落分隔符的文本子集使用相同的字体?
- 在下面的代码中,
\texttt{iiiiiii}
和\texttt{mmmmmmm}
根据需要提供相同的宽度。但是这些字母的默认“等宽字体”给出了明显不同的宽度。为什么 xetex 中的默认“等宽字体”不是等宽字体? - 为什么下面的代码会引发以下警告?
LaTeX Font Warning: Font shape `TU/monofont/m/n' undefined
(Font) using `TU/lmr/m/n' instead on input line 15.
[1] (./b.aux)
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
这是我的 MWE:
\documentclass{article}
\usepackage{fontspec}
\setlength{\parskip}{0.1in}
\setlength{\parindent}{0.0in}
\setmainfont{Times New Roman}
\begin{document}
hello world
\texttt{iiiiiii}
~\\
\texttt{mmmmmmm}
{
\fontfamily{monofont}\selectfont
This is a separate multi-paragraph block ...
iiiiiii : 7 characters
~\\
mmmmmmm : 7 characters
... inside curly brackets. I want it to
look like it came out of
a 1960s manual typewriter.}
Now this should be back in main font.
\end{document}
我的 TeX 安装如下:
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019) (preloaded format=xelatex 2019.5.8)
我需要改变什么?
答案1
默认字体
\texttt
是 Computer Modern Typewriter。要使用该字体,您可以
\ttfamily
选择 Computer Modern Typewriter 系列(XeTeX 中的 Latin Modern Typewriter,以增强 Unicode 支持)。(和 4.)没有名为 的字体系列
monofont
。因此,您收到警告:LaTeX Font Warning: Font shape `TU/monofont/m/n' undefined (Font) using `TU/lmr/m/n' instead on input line 15.
这表明它正在取代拉丁现代罗马(LaTeX 缺少字体的默认后备)。