有时,分子结构中有交叉键,我们想指出哪个键在前景中。在chemfig
下面的例子中,我通过首先绘制一个粗的白色键与一个空的假取代基相连来实现这一点;然后这个键作为真实键的背景。
\documentclass{minimal}
\usepackage{chemfig}
\setatomsep{6em}
\begin{document}
\chemfig{
A
-[:-45]B
-[:180,0.75]C
-[:45]D
}
%
\quad\quad
%
\chemfig{
A
-[:-45]B
-[:180,0.75]C
(-[:45,,,,white,line width=3pt]) % fake substituent
-[:45]D
}
\end{document}
这可行,但一定有更好的方法。chemfig
建立在 上tikz
,因此该tikz.decorations
库可用于创建始终带有白色背景的债券样式。有人知道怎么做吗?
答案1
我会这样写:
\chemfig{A
-[:-45]B
-[:180,0.75]C
-[:45,,,,preaction={draw=white, -,line width=6pt}]D
}
答案2
我之前从未用 chemfig 写过任何东西,所以只能猜测语法。这基本上是我上面的评论作为示例并进行了一点扩展。
有两种方法可以实现一条线越过另一条线的效果。一种方法是让下划线“知道”它是下划线,并在交叉点处断开(这是我在我的braids
包)。另一种方法是让上面的线,如你所说,带着它的白色背景。这样做的好处是,实际上没有人需要知道精确的交叉点(这是我在包中做的knots
……目前还未在 CTAN 上实现,但这里有一些示例)。但是,这样做的缺点是您必须知道背景颜色,并且背景颜色必须统一。此外,如果线条彼此接近但实际上没有交叉,则可能会产生“边缘”效果。
以下是这两种方法的示例。为了使下划线断开,我们使用decorations.markings
库将节点放入线中。您可能可以从代码中猜到,我不得不进行一些反复试验才能找到正确的断点。上划线方法不需要任何此类指导,也不需要任何特殊库。我还将这些方法打包为样式,以便于应用。
代码如下:
\documentclass{article}
%\url{http://tex.stackexchange.com/q/40153/86}
\usepackage{chemfig}
\usetikzlibrary{decorations.markings}
\setatomsep{6em}
\tikzset{
over line/.style={
white,
double=black,
double distance=\the\pgflinewidth,
line width=1.5pt,
},
under line/.style={
decoration={
markings,
mark connection node=mid node,
mark=at position #1 with {}
{\node[transform shape,minimum size=3pt] (mid node) {};}
},
decorate
}
}
\begin{document}
\chemfig{
A
-[:-45]B
-[:180,0.75]C
-[:45]D
}
%
\quad\quad
%
\chemfig{
A
-[:-45]B
-[:180,0.75]C
(-[:45,,,,white,line width=3pt]) % fake substituent
-[:45]D
}
%
\quad\quad
%
\chemfig{
A
-[:-45]B
-[:180,0.75]C
-[:45,,,,over line]D
}
%
\quad\quad
%
\chemfig{
A
-[:-45,,,,under line=.46]B
-[:180,0.75]C
-[:45]D
}
\end{document}
结果如下。你原来的方法是前两个,然后是“上线”方法,最后是“下线”。