Knuth 的精美 CMU 字体有很多变体,包括可以通过 LaTeX 访问:
\textrm
,\mathrm
- 罗马字母(默认)\textit
,\mathit
- 斜体\textbf
,\mathbf
- 大胆的\textsc
- 小帽子\textsl
- 倾斜(罗马)
然而,一些附加变体像“直立斜体”似乎没有调用命令。这是真的吗?是否有使它们可访问的软件包?
谢谢。
答案1
CMU 不是 Knuth 原始的 Computer Modern 字体,而是使用 OpenType 字体格式的较新的扩展 Unicode 集。
LaTeX 仅为最有可能使用的组合提供简单命名的宏,但可以通过指定适当的字体系列或形状来访问所有原始的 Computer Modern 集合,例如:
\documentclass{article}
\begin{document}
{\fontshape{ui}\selectfont abcdefg upright italic}
{\bfseries abcdefg bold extended}
{\fontseries{b}\selectfont abcdefg bold non-extended}
{\fontfamily{cmfib}\selectfont abcdefg fibonacci}
{\fontfamily{cmdh}\selectfont abcdefg dunhill}
{\ttfamily abcdefg non-variable typewriter}
{\fontfamily{cmvtt}\selectfont abcdefg variable typewriter}
{\fontfamily{cmvtt}\itshape abcdefg variable typewriter italic}
\end{document}
答案2
是否有可以使 [直立斜体] 可访问的软件包?
您可以加载流明包,它提供了\uishape
开关和\textui
宏。(ui
是“upright italic”的缩写。)
\documentclass{article}
\usepackage{cfr-lm}
\begin{document}
$aaa,\ \mathit{aaa},\ \textit{aaa},\ \textui{aaa}$
$fff,\ \mathit{f{}f{}f},\ \textit{f{}f{}f},\ \textui{f{}f{}f}$
\end{document}
答案3
这加拿大运输安全局/TeX Live/MiKTeX 包cm-unicode
还包含可与 LuaLaTeX 或 XeLaTeX 一起使用的 OpenType 字体,例如:
\documentclass{article}
\usepackage{lipsum}
\usepackage{fontspec}
\newfontface\cmunui{CMU Serif Upright Italic}
\begin{document}
\cmunui
\lipsum[1]
\end{document}
答案4
由于您专门询问在数学模式下使用它们,因此一种方法unicode-math
是:
\documentclass[varwidth, preview]{standalone}
\usepackage{amsmath}
\usepackage[math-style=ISO]{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range=up/{Latin,latin,Greek,greek}]{CMU Serif Upright Italic}
\begin{document}
\begin{align*}
\symup{e}^{\symup{i} x} &= \cos{x} + \symup{i} \sin{x} \\
\symup{e}^{\symup{i \pi}} + 1 &= 0
\end{align*}
\end{document}
以上是按 ISO 样式设置的,其中常数 e、i 和 π 竖直放置,变量X斜体显示,数字 1 和 0 保持不变(因此仍然与默认文本字体匹配,因此10
看起来与 相同$10$
),运算符名称 cos 和 sin 设置为文本字体。该unicode-math
包非常智能,可以区分直立的数学符号、\symup
和文本片段,例如\operatorname
、\text
或\mathrm
。
如果您想默认使用直立斜体字母,但仍使用通常的倾斜斜体\symit{x}
,请将选项传递[math-style=upright]
给\usepackage{unicode-math}
。如果您想替换斜体而不是直立数学后者,请更改range=up
为range=it
。
没有相应的粗体直立斜体字体,但如果您希望使用一种(例如用于矢量),您可以使用选项range=bfup/{latin,Latin,greek,Greek}
fromunicode-math
和FakeBold=
选项 from重新加载常规粗细字体fontspec
。
Donald Knuth 参与设计的最著名的直立斜体数学字体是 Hermann Zapf 设计的 AMS Euler。OpenType 中提供该字体,名为 Neo Euler。
要使用 TrueType 或 OpenType 直立斜体字体作为文本字体,请使用 fontspec
(参见 Heiko Oberdiek 的回答)。您还可以使用命令上的选项,例如\setmainfont
仅替换字体系列的斜体样式。只有在被迫的情况下,您才应该使用旧版 NFSS 工具链,以便与旧文档或旧软件兼容。