如何在 xetex 中将文档的任意部分更改为等宽/打字机字体?

如何在 xetex 中将文档的任意部分更改为等宽/打字机字体?

我想将文本的任意部分放入一种看起来像是 20 世纪 60 年代手动打字机的字体中。具体来说,每个字符必须占据一列,宽度与所有其他列相同。我所说的“任意”是指可以包含段落分隔符的部分,而不仅仅是像 一样的单个段落\texttt{something}

这引发了几个问题。

  1. xelatex 使用的默认字体是什么\textttt{something}
  2. 我怎样才能对包含段落分隔符的文本子集使用相同的字体?
  3. 在下面的代码中,\texttt{iiiiiii}\texttt{mmmmmmm}根据需要提供相同的宽度。但是这些字母的默认“等宽字体”给出了明显不同的宽度。为什么 xetex 中的默认“等宽字体”不是等宽字体?
  4. 为什么下面的代码会引发以下警告?
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

  1. 默认字体\texttt是 Computer Modern Typewriter。

  2. 要使用该字体,您可以\ttfamily选择 Computer Modern Typewriter 系列(XeTeX 中的 Latin Modern Typewriter,以增强 Unicode 支持)。

  3. (和 4.)没有名为 的字体系列monofont。因此,您收到警告:

    LaTeX Font Warning: Font shape `TU/monofont/m/n' undefined
    (Font)              using `TU/lmr/m/n' instead on input line 15.
    

这表明它正在取代拉丁现代罗马(LaTeX 缺少字体的默认后备)。

相关内容