我想看看使用euler
或eulervm
字体时各种化学方程式的样子,但我似乎不知道如何做到这一点(或者是否可能)。
chemformula 的文档表示我可以使用font-family
带有的参数 来设置字体\setchemformula
。
我已经在我的 tex 文件头中使用了这个代码
\usepackage{eulervm}
\setchemformula{font-family=eulervm}
这在文档正文中。
\begin{equation} \label{keqequation}
\dfrac{\ch{[B][K]}}{\ch{[A]}} = K_{eq}
\end{equation}
您可以看到 是K_{eq}
字体eulervm
,但[K]
不是。
我也尝试过:
\setchemformula{font-family=euler}
\setchemformula{font-family=euler-vm}
没有成功
但是我可以使用以下方法更改字体
\setchemformula{font-family=lmss}
这表明我没有做任何严重错误的事情。
对于如何实现这一目标,您有什么想法吗?
另外,我知道在这种情况下我可以通过不使用 chemformula 的\ch
命令来获得欧拉字体,但有时我想要使用该\ch
命令的功能,所以我想知道是否可以在其中使用欧拉\ch
。
感谢您的任何想法!
这是我上面描述的完整精简版本。
\documentclass[11pt,letterpaper]{article}
\usepackage{amsmath}
\usepackage{chemformula}
\usepackage{eulervm}
\setchemformula{font-family=eulervm}
\begin{document}
\begin{equation} \label{keqequation}
\dfrac{\ch{[B][K]}}{\ch{[A]}} = K_{eq}
\end{equation}
\结束{文档}
答案1
您可以这样做,但需要格外小心,因为可用的 Euler 字体具有相当非标准的布局。
\documentclass[11pt,letterpaper]{article}
\usepackage{amsmath}
\usepackage{eulervm}
\usepackage{chemformula}
\makeatletter
\@ifundefined{zeu@@Scale}{\let\zeu@@Scale\@empty}{}
\DeclareFontFamily{OT1}{zeur}{}
\DeclareFontShape{OT1}{zeur}{m}{n}{
<9-> \zeu@@Scale zeurm10
<6-9> \zeu@@Scale zeurm7
<-6> \zeu@@Scale zeurm5
}{}
\DeclareFontShape{OT1}{zeur}{b}{n}{
<9-> \zeu@@Scale zeurb10
<6-9> \zeu@@Scale zeurb7
<-6> \zeu@@Scale zeurb5
}{}
\DeclareFontShape{OT1}{zeur}{bx}{n}{<->ssub * zeur/b/n}{}
\makeatother
\setchemformula{font-family=zeur}
\begin{document}
\begin{equation} \label{keqequation}
\dfrac{[\ch{B}][\ch{K}]}{[\ch{A}]} = K_{eq}
\end{equation}
\end{document}
括号必须放在外面\ch
,因为 Euler 字体在标准插槽中没有它们。
如果你有 Neo Euler 字体(见https://github.com/khaledhosny/euler-otf),您可以将其与以下对象一起使用unicode-math
:
\documentclass[11pt,letterpaper]{article}
\usepackage{amsmath}
\usepackage[math-style=upright]{unicode-math}
\usepackage{chemformula}
\setmathfont{Neo Euler}
\setchemformula{font-spec={Neo Euler}}
\begin{document}
\begin{equation} \label{keqequation}
\dfrac{\ch{[B][K]}}{\ch{[A]}} = K_{eq}
\end{equation}
\end{document}