我昨天遇到的问题与使用 chemfig 绘制纤维素分子有关。特别是我对 tikz 不熟悉,所以我在对齐单体时遇到了问题。
我以前用过 xymtec,但当我转到 debian wheezy 时,我很快发现它已经过时了。所以我现在又开始尝试重新学习了。
这是我尝试解决问题的一个例子。这是一个反复试验的过程。我相信有更优雅的解决方案。
我花了将近半天的时间才找到这个粗略的代码,所以我想知道它是否可以改进。
我在这里写这篇文章,因为这个网站非常有用,所以我想回馈一些东西。
\documentclass{minimal}
\usepackage{chemfig}
\definesubmol{glucoBeta}{
?(4-[:190,0.7])
-[:-50](-[:170]HO)
-[:10](-[:-55,0.7]OH)
-[:-10]1(-[6,0.7]H)(-[:10]O)
-[:130]{\color{red}{O}}
-[:190]?(-[:150,0.7]-[2,0.7]OH)
}
\begin{document}
FIRST EXAMPLE \\
\chemfig[][scale=0.85]{!{glucoBeta}}
\vflipnext
\chemfig[][scale=0.85]{!{glucoBeta}}
\chemfig[][scale=0.85]{!{glucoBeta}}
\vflipnext
\chemfig[][scale=0.85]{!{glucoBeta}}\\
\bigskip
SECOND EXAMPLE\\
\chemfig[][scale=0.85]{!{glucoBeta}}
\vflipnext
\chemfig[yshift=-7mm][scale=0.85]{!{glucoBeta}}
\chemfig[][scale=0.85]{!{glucoBeta}}
\vflipnext
\chemfig[yshift=-7mm][scale=0.85]{!{glucoBeta}}
\end{document}
输出
答案1
我认为更好的想法是定义两个子分子:
- 葡萄糖,即亚摩尔,以“4”开始,以“1”结束
- 第二个与第一个相同,但所有角度都是镜像的
然后,您只需将一个葡萄糖一个地放入\chemfig{}
即可获得纤维素结构。无需翻转和手动调整垂直移位。恕我直言,这在语义上也更好,因为您将拥有一代表纤维素的分子结构。
\documentclass[margin=5pt]{standalone}
\usepackage{chemfig}
% this submol starts at the left-most bond (to C4)
% and ends at the right-most bond (from C1);
% it does not use the ?-syntax to avoid unwanted
% connections between different instances of the
% glucose rings:
\definesubmol{glucoBeta}{
-[:10,.7]4
(
-[:-10](-[:150,0.7]-[2,0.7]OH)
-[:10]{\color{red}{O}}-[:-50,.75]
)
-[:-50](-[:170]HO)
-[:10](-[:-55,0.7]OH)
-[:-10]1(-[6,0.7]H)
-[:10,.7]O
}
% this submol is the same as the one before except
% that every bond has been changed to the opposite direction:
\definesubmol{turned-glucoBeta}{
-[:-10,.7]4
(
-[:10](-[:-150,0.7]-[6,0.7]OH)
-[:-10]{\color{red}{O}}-[:50,.75]
)
-[:50](-[:-170]HO)
-[:-10](-[:55,0.7]OH)
-[:10]1(-[2,0.7]H)
-[:-10,.7]O
}
\begin{document}
% both submols can now be used together in one call of
% \chemfig in order to draw the cellulose structure:
\chemfig{HO!{glucoBeta}!{turned-glucoBeta}!{glucoBeta}!{turned-glucoBeta}H}
\end{document}