使用 chemfig 包的分隔符问题

使用 chemfig 包的分隔符问题

这是我在这里的第一篇帖子,如果我做错了什么,请原谅。

\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}

结果如下:

MWE 的输出

我知道这是使用 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}

结果:

在此处输入图片描述

相关内容