如何在 Xelatex 中设置拉丁现代单比例

如何在 Xelatex 中设置拉丁现代单比例

我正在使用xelatexfontspec

我尝试过类似的事情:

\setmonofont[Mapping=tex-text, CharacterWidth=Proportional]{Latin Modern Mono}

但这不存在(?)。

如何将单声道字体设置为 Latin Modern Mono Proportional(拉丁现代字体中存在的字体)?

答案1

只需通过名称调用字体即可:

\documentclass{article}
\usepackage{fontspec}
\setmonofont{Latin Modern Mono Prop}

\newfontfamily{\monott}{Latin Modern Mono} % for testing

\begin{document}

abcim \texttt{abcim} abcim

abcim {\monott abcim} abcim

\end{document}

在此处输入图片描述

如您所见,该\texttt线打印比例打字机类型。

答案2

免责声明:我是下面讨论的包的作者。

这并没有回答这个问题。相反,它回答了一个相关的问题,即如何使用 pdfLaTeX 或 LaTeX 完成同样的事情。

我认为这是合理的,因为当人们询问如何使用字体时,即使他们明确表示不能使用 Xe/LuaTeX,爱好者也会经常回答使用这些引擎,以显示另一边的草有多么绿。

尽管如此,如果David Moles 尚未跟进 我发表的评论如何使用 pdfTeX 轻松实现这一点在这种情况下,我并不是说别人家的草更绿,而只是说别人家的草同样绿,或者绿到人们合理想要的程度,额外的绿化对于要求来说是完全多余的。


核心案例有两种:

  1. 您希望将可变宽度设置为文档的默认打字机系列,并在需要时选择切换到等宽;

  2. 您希望将等宽作为默认设置,并可选择切换到可变宽度。

为了第一,

\usepackage{cfr-lm}

将会执行此操作。然后打字机文本将默认使用可变宽度。

{\tmstyle
  ...
}

将切换到等宽,而

\texttm{...}

将以等宽排版其参数。

对于第二种情况,使用

\usepackage[tt=monowidth]{cfr-lm}

进而

{\tvstyle
  ...
}

\texttv{...}

宽度可变。

例如,

\documentclass{article}
% \usepackage[tt=monowidth]{cfr-lm}% monowidth as default
\usepackage{cfr-lm}
\begin{document}
\texttt{This typewriter text is variable width by default.}

{\tmstyle
This typewriter text is now monowidth.
This could also be set as the document's default using the relevant package option.
Then you'd use \verb|\tvstyle| to switch to variable width.}

\texttm{This typewriter text is also monowidth.}

\texttt{If the default was monowidth \textbackslash texttv\{\dots\} would produce variable width text like this.}
\end{document}

生产

同样绿的草


cfr-lm旨在提供

  • 拉丁现代字体系列中的所有字体,只要这些字体本身属于 type1 格式的字体;

  • 这些字体支持的所有字体功能,只要这些功能是可行的并且对 pdfTeX 有意义;

  • 通过包选项和/或扩展的字体开关和字体文本命令方便地访问各种字体和功能;

  • 支持在同一文档中使用多种不同的字体和功能。

请注意,最后一点并不意味着过度使用此功能是印刷方面的明智之举。它只是意味着,如果你想无视印刷圣人的古老智慧,使用 4 种不同的数字样式、2 种不同的打字机样式、2 种不同的斜体、2 种不同的无衬线字体样式、斜体小写字母、多种粗细/宽度、Dunhill 等,那么从技术上讲,没有什么可以阻止你这样做。

斜体 sc + 直立斜体

悬挂的数字

衬线数字

登喜路

可变权重

可变的重量和宽度

相关内容