使用 CMU Serif Upright Italic 而不是 chemgreek?

使用 CMU Serif Upright Italic 而不是 chemgreek?

我最近搬到luaLaTeXpdfLaTeX这意味着我不再那么受字体的限制。我发现这个答案它显示了如何加载这个直立希腊字母表而不是数学字母表。我想要加载它们来代替数学字母表,我希望它保持斜体。我想用它们来\chemalpha代替chemgreek包中的命令。或者,使用chemgreek这个字母表也可以,尽管如果需要我可以手动编写每个命令。

我做了这个例子,但它实际上不起作用,它替换了错误的字母表,并且\newcommand{\chemalpha}{α}实际上没有做任何事情,因为它不知道 α 是什么。

\documentclass{article}

\usepackage[math-style=upright]{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range=up/{Latin,latin,Greek,greek}]{CMU Serif Upright Italic}
\usepackage{cfr-lm}

\newcommand{\chemalpha}{α}
\newcommand{\chembeta}{β}
\newcommand{\chemeta}{η}
\newcommand{\chemkappa}{κ}

\begin{document}
\( \alpha + \beta = \pi \)

\([^{\text{n}}\text{Bu}_4 \text{N}]_2 [(\text{UO}_2 )_2 (µη^{2}:η^{2}O_2 )(NO_3 )_2 (µ\text{Au(CN)}_2 )_2 ]\) 

\chemalpha
\chembeta
\chemeta
\chemkappa

\end{document}

答案1

很高兴您发现我之前的回答很有帮助。首先,MWE:

\documentclass{article}
\tracinglostchars=2

\usepackage{newcomputermodern}
% Alternatively, \setmathrm{CMU Serif} to load an upright font that contains Greek.

\newcommand\chem[1]{\mathrm{#1}}
\newcommand\chemalpha{\chem\mupalpha} % `\chem α` would work too.
\newcommand\chembeta{\chem\mupbeta}
\newcommand\chemeta{\chem\mupeta}
\newcommand\chemkappa{\chem\mupkappa}

\begin{document}
\( \alpha + \beta = \pi \)

\([^{\chem{n}}\chem{Bu}_4 \chem{N}]_2 \bigl[(\chem{UO}_2 )_2
   (\chem{µη}^{2}:\chem{η}^{2}\chem{O}_2 )(\chem{NO}_3 )_2
   \bigl( \chem{µ}\chem{Au}(\chem{CN})_2 \bigr)_2 \bigr]\) 

\( \chemalpha
   \chembeta
   \chemeta
   \chemkappa
\)
αβηκ
\mupalpha\mupbeta\mupeta\mupkappa

\end{document}

新计算机现代样本

传统上,化学家不会使用直立斜体样式来书写化学式,但如果您确实想这样做,您可以\symup{\alpha}在数学模式下书写以使用 设置的字母\setmathfont[range=up]。要在文本模式下使用直立斜体样式,您可能需要设置{ui}与 界面类似的形状cfr-lm

您可能想要在此处将\mathrm字体设置为包含希腊字母的字体,例如 New Computer Modern 或 CMU Serif。默认字体 Latin Modern 不包含希腊字母,这就是它无法正常工作的原因。我引入了一个命令,\chem以便您可以通过更改该行来调整它或切换到另一种字体(使用类似 的命令\textnormal{\chemfont #1},或通过声明新的数学字体)。

我对源代码做了一些改动。你不想使用\text在这里使用,因为它会使周围文本的格式渗透出来,因此可能会给你中国。如果您需要使用不包含希腊语的主字体,您可以\setmathrm{NewComputerModern}

我稍微改变了格式,使嵌套的外括号比内括号稍大,并且周围的括号大小相同。

cfr-lm如果您正在使用 PDFTeX 进行编译,您也只需要加载。

但是,您确实需要设置\tracinglostchars=2。如果您尝试使用当前字体没有的字符(这是您在使用时遇到的错误),这将向您发出警告。\chemalpha默认情况下,警告将默默地埋在 .log 文件的中间。

答案2

根据cgnieder 的评论

\usepackage{newcomputermodern}\usepackage{chemgreek}\selectchemgreekmapping{fontspec}

非常简单,并且几乎完美地与我现有的设置配合使用。

相关内容