在 LuaLaTeX 中模仿 mathspec 实践

在 LuaLaTeX 中模仿 mathspec 实践

在发现 的神奇之处后microtype,我决定将 切换到LuaLaTeXXeLaTeX处理大型文档。不幸的是,我在模仿mathspec之前引擎的做法时遇到了一些困难;所需的字体是 Alegreya。以下是我正在尝试修复的问题:

  1. 音乐临时变音记号 ( $\flat \sharp \natural$) 应该全部是标准的 Computer Modern 字形。我澄清这一点是因为,如 MWE 中所示,我也在使用该lilyglyphs包。

  2. 所有上标和下标数字都应为 Alegreya(使用旧式数字)。使用数学模式中的amsmath's很容易做到这一点\text,但我经常使用它,所以我想将其设为默认设置。

  3. 数学模式中的字母($x$例如)应为 Alegreya 斜体。

我尝试了一些unicode-math修复方法,但似乎无法得到我想要的结果。

梅威瑟:

%LuaLaTeX
\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[osf]{Alegreya}
\usepackage{amsmath} %% \text in math mode

%\usepackage{unicode-math}
%\setmathfont[]{Alegreya} %% option range=0048-0057 ?

\let\origflat\flat %% this is included just in case; I use lilyglyphs but not its sharp, flat, or natural
\let\origsharp\sharp
\let\orignatural\natural
\usepackage{lilyglyphs}
\let\flat\origflat
\let\sharp\origsharp
\let\natural\orignatural

\begin{document}

$x$ and $y$ %% should be Alegreya italic

$\flat \sharp \natural$ % should all be standard CM

$^5_3$ %% should be Alegreya, old-style numbers

\end{document}

答案1

要使文本字体处于数学模式,您可能需要使用mathastext包。要将此包与 LuaLaTeX 一起使用,您还必须fontspec使用no-math选项加载。由于由我们fontspec内部加载Alegreya

\PassOptionsToPackage{no-math}{fontspec}
\usepackage[osf]{Alegreya}
\usepackage[italic]{mathastext}

我们无需保存和恢复\flat\natural和的定义\sharp,只需取消定义它们,然后使用其原始数学代码和 Computer Modern 系列重新声明它们。我们在加载后执行此操作lilyglyphs

\usepackage{lilyglyphs}
\let\flat\undefined \let\natural\undefined \let\sharp\undefined
\DeclareMathSymbol\flat   \mathord{letters}{"5B}
\DeclareMathSymbol\natural\mathord{letters}{"5C}
\DeclareMathSymbol\sharp  \mathord{letters}{"5D}

此外,\usepackage[T1]{fontenc}是多余的,因为fontspec包无论如何都会切换到TU编码。此外,\usepackage{amsmath}在本示例中是不需要的。

\documentclass{article}
\PassOptionsToPackage{no-math}{fontspec}
\usepackage[osf]{Alegreya}
\usepackage[italic]{mathastext}
\usepackage{lilyglyphs}
\let\flat\undefined \let\natural\undefined \let\sharp\undefined
\DeclareMathSymbol\flat   \mathord{letters}{"5B}
\DeclareMathSymbol\natural\mathord{letters}{"5C}
\DeclareMathSymbol\sharp  \mathord{letters}{"5D}
\begin{document}

$x$ and $y$ % should be Alegreya italic

$\flat \sharp \natural$ % should all be standard CM

$^5_3$ % should be Alegreya, old-style numbers

\end{document}

在此处输入图片描述

相关内容