这是我在这里的第一篇帖子,如果我做错了什么,请原谅。
\chemleft
我在使用和命令时遇到问题\chemright
。我使用 LuaLaTeX 进行编译。每当我尝试编译下面给出的 MWE 时,分隔符看起来都与我预期的不同。
\documentclass[11pt]{scrarticle}
\usepackage[no-math]{fontspec}
\setmainfont{Arial}
\usepackage[Arial]{mathfont}
\usepackage{chemfig}
\usepackage{siunitx}
\begin{document}
\chemleft[\chemfig{H-[1]O-[7]H}\chemright]
\qty{1}{\mole}
\end{document}
结果如下:
我知道这是使用 Arial 作为字体所导致的问题,但如果能提供任何建议以防止在仍然使用 Arial 作为主要字体的情况下发生这种情况,我将不胜感激。
我也想在我的大多数文档中使用 siunitx 包,因此我使用 mathfont 包以便在使用例如时实现 Arial 作为字体\qty{}{}
。
如果您能对我的问题提出任何想法或解决方案,我将不胜感激,提前谢谢您!
编辑:我想要的分隔符输出如下:
这是通过省略 mathfont 包实现的:
\documentclass[a4paper,11pt]{scrarticle}
\usepackage[]{fontspec}
\setmainfont{Arial}
% \usepackage[Arial]{mathfont}
\usepackage{chemfig}
\usepackage{siunitx}
\begin{document}
\chemleft[\chemfig{H-[1]O-[7]H}\chemright]
\qty{1}{\mole}
\end{document}
但这当然不是我希望的 siunitx 包的输出,因为它不再使用 Arial 作为字体。
答案1
一种方法是仅将分隔符定义为具有更好看的分隔符的不同字体。该mathfont
包中有用于此目的的命令,即\mathfont[delimiters]{Name Of Font}
。但是,如果您已经使用 设置了字体,则它不起作用,并且您会收到一条警告,提示分隔符的字体已设置。您可以在使用 之前将相应的布尔值(称为 )设置为 false,\usepackage[Name Of Different Font]{mathfont}
从而强制重新定义。\M@delimiters
\mathfont
MWE,使用 Nimbus Sans L(Arial 克隆版)作为主字体和数学字体,使用 STIXSizeOneSym 作为分隔符字体:
\documentclass[a4paper,11pt]{scrarticle}
\usepackage[no-math]{fontspec}
\setmainfont{Nimbus Sans L}
\usepackage[Nimbus Sans L]{mathfont}
\makeatletter
\M@delimitersfalse
\makeatother
\mathfont[delimiters]{STIXSizeOneSym}
\usepackage{chemfig}
\usepackage{siunitx}
\begin{document}
\chemleft[\chemfig{H-[1]O-[7]H}\chemright]
\qty{1}{\mole}
\end{document}
结果: