以下代码生成形成特定产品的反应序列。
\begin{tikzpicture}[
start chain = going below,
block/.style = {text width=2em,
font=\linespread{1.5}\selectfont, align=center,
on chain, join=by line},
line/.style = {-Stealth, semithick}
]
\begin{scope}[every node/.style = {block}]
\node (start) {CaCl$_{2}$} ;
\node (c1) [below=of start, suspend join] {CaOHCl} ;
\node (c2) [left=of start, suspend join] {H$_{2}$O} ;
\node (c3) [below =of c2, suspend join] {CaO} ;
\node (c4) [right=of start, suspend join] {CaCl$_2$.2H$_2$O} ;
\node (c5) [below=of c4, suspend join] {Ca(OH)$_2$} ;
\node (c6) [below =of c5, suspend join] {HCl} ;
\end{scope}
\draw[line] (start) -- (c1) ;
\draw[line] (start) -- (c2) ;
\draw[line] (c2) -- (c3) ;
\draw[line] (c2) -- (c5) ;
\draw[line] (c5) -- (start) ;
\draw[line] (c5) -- (c4) ;
\draw[line] (c4) -- (c1) ;
\draw[line] (c5) -- (c6) ;
\draw[line] (c6) -- (c1) ;
\end{tikzpicture}
我想使用 tikzcd 包将序列重新绘制为交换图,使用弯曲箭头,如附图所示。我尝试修改以下代码:http://ctan.math.washington.edu/tex-archive/graphics/pgf/contrib/tikz-cd/tikz-cd-doc.pdf
我不确定该命令如何\arrow[bend left]
工作,以及如何根据图像要求对其进行修改。 有没有可能的解决方案?
答案1
你能在这里使用tikz-cd
。我不知道这是否值得,也不知道内容是否有意义。正如 daleif 所建议的,您可能需要使用一些允许您排版分子的工具。至于似乎是主要的问题,您可以使用bend left
和bend right
,并在需要的地方添加弯曲角度,例如bend left=20
。您还可以重新定义箭头。
\documentclass{article}
\usepackage{chemformula}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[/tikz/>=stealth,/tikz/column 1/.style={column sep=2em}]
& & & \ch{H2O} \arrow[dr,->,bend left] \arrow[dddr,->,bend left=20] & \\
& & & & \ch{CaO}\\
& & \ch{CaCl2} \arrow[uur,->,bend left] \arrow[dll,->,bend right] & & \\
\ch{CaOHCl} & & & & \ch{Ca(OH)2} \arrow[ddll,->,bend left] \arrow[dll,->]
\arrow[ull,->]\\
& & \ch{CaCl2. 2 H2O}\arrow[ull,->,bend right] & &\\
& & \ch{HCl} \arrow[uull,->,bend left] & &\\
\end{tikzcd}
\end{document}