单色字体错位和字间距

单色字体错位和字间距

我正在用 XeLaTeX 制作一份文档,我想对我的段落使用单声道 TTF 字体(Liberation Mono)和特殊(反向)缩进。

我不太理解单词间距和缩进的一些内容。我编写了以下 LaTeX 代码进行测试:

\documentclass[a4paper,13pt]{book}
\usepackage{fontspec}
\setmainfont{Liberation Mono}
\begin{document}
\raggedright
\textbf{Lorem ipsum dolor sit amet}: consectetur adipiscing elit. 
Cras sit amet est sit amet urna tincidunt consectetur 
eget ut felis. Vestibulum ante ipsum primis in faucibus 
orci luctus et ultrices posuere cubilia Curae; Nam dapibus, 

\setlength{\parindent}{-5ex}
\setlength{\leftskip}{5ex}%

\textbf{Lorem ipsum dolor sit amet}: consectetur adipiscing elit. 
Cras sit amet est sit amet urna tincidunt consectetur 
eget ut felis. Vestibulum ante ipsum primis in faucibus 
orci luctus et ultrices posuere cubilia Curae; Nam dapibus,

\setlength{\parindent}{-5em}
\setlength{\leftskip}{5em}%

\textbf{Lorem ipsum dolor sit amet}: consectetur adipiscing elit. 
Cras sit amet est sit amet urna tincidunt consectetur 
eget ut felis. Vestibulum ante ipsum primis in faucibus 
orci luctus et ultrices posuere cubilia Curae; Nam dapibus,

\end{document}

我得到了以下结果:

enter image description here

我注意到以下几点:

  1. 在第一段中:字符没有垂直对齐的原因是什么?单词 interspace 应该是恒定的(使用单色字体),但事实并非如此。
  2. 在第二段中:字符缩进不正确。通常,5ex 的缩进应为 5 个字符的长度。但是存在差异,缩进的行与第一行不对齐。
  3. 在第三段中:5em 的缩进长度比 5ex 的缩进更大。但是对于单色字体,ex(“x”的宽度)和 em(“m”的宽度)的长度应该相同。

您是否知道如何将单词间距固定为常数,为什么我的测试段落会出现这些错位,以及我的观察结果出了什么问题(如果有问题)?

答案1

首先你忘了\frenchspacing

其次,1ex 不必与 1em 相同。

第三,1ex和1em不是字符宽度的倍数。

\documentclass[a4paper,12pt]{book}
\usepackage{fontspec}
\setmainfont{LiberationMono}[
  Extension=.ttf,
  UprightFont=*-Regular,
  ItalicFont=*-Italic,
  BoldFont=*-Bold,
  BoldItalicFont=*-BoldItalic,
]

\frenchspacing

\begin{document}

\raggedright
\textbf{Lorem ipsum dolor sit amet}: consectetur adipiscing elit. 
Cras sit amet est sit amet urna tincidunt consectetur 
eget ut felis. Vestibulum ante ipsum primis in faucibus 
orci luctus et ultrices posuere cubilia Curae; Nam dapibus, 

\setlength{\parindent}{-5\fontcharwd\font`A}
\setlength{\leftskip}{5\fontcharwd\font`A}

\textbf{Lorem ipsum dolor sit amet}: consectetur adipiscing elit. 
Cras sit amet est sit amet urna tincidunt consectetur 
eget ut felis. Vestibulum ante ipsum primis in faucibus 
orci luctus et ultrices posuere cubilia Curae; Nam dapibus,

\end{document}

enter image description here

字体设置是因为我没有在系统范围内安装 Liberation Mono。

仅供参考,以下是

1ex = \the\dimexpr1ex

1em = \the\dimexpr1em

A = \the\fontcharwd\font`A

enter image description here

还请注意,该选项13pt根本没有任何作用,字体将为 10pt。我将其更改为12pt

相关内容