我正在使用LuaLaTeX
Open-Type 版本的 Lucida 字体(来自 tug.com)以及\chemmacros
最新版本的 TeXLive 2017。我认为我已经正确设置了所有内容,但\chemgreek
几乎缺少所有小直立希腊字符。据我所知,Lucida 字体具有所需的所有字符。这是错误还是我做错了什么?
\documentclass[12pt,
]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage{chemmacros}
\usechemmodule{all}
\chemsetup{greek = {fontspec}}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{LucidaBrightOT.otf}
\setmathfont{LucidaBrightMathOT.otf}
\begin{document}
\printchemgreekalphabet $\upalpha$ $\alpha$ \chemalpha
\end{document}
答案1
您可以\chemgreek_text:n
通过选择数学字体(在正确的位置有希腊字形)来修改工作方式。
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage{chemmacros}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\usechemmodule{all}
\chemsetup{greek = {fontspec}}
\setmainfont{LucidaBrightOT.otf}
\setmathfont{LucidaBrightMathOT.otf}[NFSSFamily=lbm]
\ExplSyntaxOn
\cs_set_protected:Nn \chemgreek_text:n
{ \ensuremath { \text {\fontfamily{lbm}\selectfont #1} } }
\ExplSyntaxOff
\begin{document}
\printchemgreekalphabet $\upalpha$ $\alpha$ \chemalpha
\end{document}
答案2
映射使用文本字体中的希腊字符,而不是数学字体中chemgreek
的fontspec
希腊字符。如您所见,LucidaBrightOT.otf
不包含大量小写希腊字符。
要使用数学字体,您需要一个新的映射。您可以从头开始创建它,但也可以重复使用映射newtx
。您不想newtxmath
通过加载,因此您必须操作一个内部变量:
\documentclass[12pt]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{LucidaBrightOT.otf}
\setmathfont{LucidaBrightMathOT.otf}
\usepackage{chemmacros}
\usechemmodule{all}
\declarechemgreekmappingalias {unicode-math} {newtx}
\ExplSyntaxOn
\prop_put:Nnn \l__chemgreek_packages_prop {unicode-math} {unicode-math}
\ExplSyntaxOff
\chemsetup{greek = {unicode-math}}
\begin{document}
\printchemgreekalphabet $\upalpha$ $\alpha$ \chemalpha
\end{document}