我正在尝试以编程方式根据“实时”输入数据绘制单个 chemfig 图表,并将其嵌入到交互式仪表板中。因此,我并不打算生成科学文章。因此,我正在使用\documentclass{standalone}
。不幸的是,这似乎破坏了中子箭头的绘制chemfig 1.33
。可以通过将答案中的代码片段与chemfig 中的介观效应问题独立文档和文章文档类。独立文档中的箭头要么没有绘制,要么绘制在完全错误的位置。参见下图。
是否有其他方法可以通过欺骗文章类别表现得像独立文章类别一样来生成具有中观效果的单个图形?
PS 以下是正在运行的确切代码:
\documentclass[border=5pt]{standalone}
\usepackage{chemfig}
\usepackage{mhchem}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.pathmorphing}
\pgfdeclaredecoration{ddbond}{initial}
{
\state{initial}[width=4pt]
{
\pgfpathlineto{\pgfpoint{4pt}{0pt}}
\pgfpathmoveto{\pgfpoint{2pt}{2pt}}
\pgfpathlineto{\pgfpoint{4pt}{2pt}}
\pgfpathmoveto{\pgfpoint{4pt}{0pt}}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\tikzset{lddbond/.style={decorate,decoration=ddbond}}
\tikzset{rddbond/.style={decorate,decoration={ddbond,mirror}}}
\begin{document}
\chemfig{*6((-[@{a1}]H_2@{a2}\Lewis{26,N})=[@{r1}]-[@{r2}]=(-N=N-*6(=-=(-OH)-=-))-=-=)}
\chemmove[-stealth,shorten <=1pt, shorten >=1pt]{%
\draw(a2)..controls +(90:5mm) and +(135:5mm)..(a1);% first arrow
\draw(r1)..controls +(225:12mm) and +(300:12mm)..(r2);% ring arrow
}
\end{document}
更新:
在配置空间徘徊了一段时间后,我发现使用documentclass{article}
并不能解决这个问题 - 我敢发誓它以前是有效的。即使使用 article,输出看起来也一样:
这次我使用的代码是:
\documentclass[border=5pt]{article}
\usepackage{chemfig}
\usepackage{mhchem}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.pathmorphing}
\pgfdeclaredecoration{ddbond}{initial}
{
\state{initial}[width=4pt]
{
\pgfpathlineto{\pgfpoint{4pt}{0pt}}
\pgfpathmoveto{\pgfpoint{2pt}{2pt}}
\pgfpathlineto{\pgfpoint{4pt}{2pt}}
\pgfpathmoveto{\pgfpoint{4pt}{0pt}}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\tikzset{lddbond/.style={decorate,decoration=ddbond}}
\tikzset{rddbond/.style={decorate,decoration={ddbond,mirror}}}
\begin{document}
\chemfig{*6((-[@{a1}]H_2@{a2}\Lewis{26,N})=[@{r1}]-[@{r2}]=(-N=N-*6(=-=(-OH)-=-))-=-=)}
\chemmove[-stealth,shorten <=1pt, shorten >=1pt]{%
\draw(a2)..controls +(90:5mm) and +(135:5mm)..(a1);% first arrow
\draw(r1)..controls +(225:12mm) and +(300:12mm)..(r2);% ring arrow
}
\end{document}
\pagestyle{empty}
按照评论中的建议添加到上述模板确实会在文章类中产生一个工作图形。