我想使用 chemmacros 或更具体地说是 chemformula 在 pgfplots 标题中排版一个根。但是,chemformula 使用 tikz 排版根,而 pgfplot 会干扰坐标,因此根会出现在错误的位置。这是我的 MWE。
\documentclass{article}
\usepackage{pgfplots}
\usepackage{chemformula}
\begin{document}
\begin{tikzpicture}
\begin{axis}[title=\ch{H^{.}}]
\end{axis}
\end{tikzpicture}
\end{document}
这产生了下面的图片。
部首符号放错了位置,正确的位置如下(裁剪得有点太多,但你明白我的意思)。
这是chemformula 源代码摘录它排版了根号。我猜它需要一些关键字来在某种意义上重置坐标系……
\cs_new_protected:Npn \chemformula_radical:
{
\hbox_overlap_right:n
{
\chemformula_tikz:xn
{
\l__chemformula_radical_style_tl ,
baseline ,
minimum~ height = 0pt ,
minimum~ width = 0pt ,
inner~ sep = 0pt ,
outer~ sep = 0pt ,
overlay
}
{
\fill (0,0)
++(
\l__chemformula_radical_hshift_dim ,
\l__chemformula_radical_vshift_dim
)
circle (\l__chemformula_radical_radius_dim) ;
}
}
\chemformula_skip_nobreak:N \l__chemformula_radical_space_dim
}
如何通过修改化学公式源或修补宏来获得正确定位?
答案1
您不应该嵌套tikzpicture
s。而应使用 a \savebox
。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}%<- recommended
\usepackage{chemmacros}
\newsavebox\mytitle
\begin{document}
\savebox\mytitle{\ch{H^{.}}}
\begin{tikzpicture}
\begin{axis}[title=\usebox\mytitle]
\end{axis}
\end{tikzpicture}
\end{document}