chemfig:如何表示摇摆和剪切

chemfig:如何表示摇摆和剪切

红外光谱的原理是波长在 2500 nm 至 20000 nm 之间的辐射会被分子吸收,从而改变其振动运动。有多种方法可以改变分子振动:例如,对于水,我们可以改变键长。

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[italian]{babel}
\usepackage[
  a4paper,
  margin=15mm,
  bindingoffset=2mm,
  heightrounded,
]{geometry}

\usepackage{amsmath}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
% motivated by section 15.6 of the pgfmanual, @percusses comment <!-- m --><a class="postlink" href="https://tex.stackexchange.com/questions/423941/making-the-determination-of-extrema-more-elegant-in-tikz-not-pgfplots#comment1060557_423941">https://tex.stackexchange.com/questions ... 557_423941</a><!-- m -->
% as well as Henri Menkes's answer <!-- m --><a class="postlink" href="https://tex.stackexchange.com/a/423952/121799">https://tex.stackexchange.com/a/423952/121799</a><!-- m -->
\tikzset{mark path bounding box/.style = {
    path picture={
      \coordinate (#1-bl) at (path picture bounding box.south west);
      \coordinate (#1-tr) at (path picture bounding box.north east);
      \coordinate (#1-br) at (path picture bounding box.south east);
      \coordinate (#1-tl) at (path picture bounding box.north west);
    }
  }
}

\begin{document}

\schemestart
\chemname{\chemfig{@{H1}H-[:30]@{O1}O-[:-30]@{H2}H}}{Stretching simmetrico}
\schemestop
\chemmove{\path[mark path bounding box=HO](H1)--(O1);
\draw[blue,-latex]([yshift=2mm,xshift=-1mm]HO-bl)--([yshift=2mm,xshift=-1mm]HO-tr);
\path[mark path bounding box=OH](H2)--(O1);
\draw[blue,-latex]([yshift=2mm,xshift=1mm]OH-br)--([yshift=2mm,xshift=1mm]OH-tl);
}
\hspace{64pt}
\schemestart
\chemname{\chemfig{@{H1}H-[:30]@{O1}O-[:-30]@{H2}H}}{Stretching asimmetrico}
\schemestop
\chemmove{\path[mark path bounding box=HO](H1)--(O1);
\draw[blue,-latex]([yshift=2mm,xshift=-1mm]HO-bl)--([yshift=2mm,xshift=-1mm]HO-tr);
\path[mark path bounding box=HO](O1)--(H2);
\draw[blue,-latex]([yshift=2mm,xshift=1mm]HO-tl)--([yshift=2mm,xshift=1mm]HO-br);
}
\end{document}

另一方面,摇摆和剪切会引起键角的变化:

在此处输入图片描述

在最后一张图中,我用 Inkscape 添加了蓝色箭头。是否可以使用 LaTeX 实现同样的效果?如果可以,您能告诉我怎么做吗?

答案1

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[italian]{babel}
\usepackage[
  a4paper,
  margin=15mm,
  bindingoffset=2mm,
  heightrounded,
]{geometry}

\usepackage{amsmath}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
% motivated by section 15.6 of the pgfmanual, @percusses comment <!-- m --><a class="postlink" href="https://tex.stackexchange.com/questions/423941/making-the-determination-of-extrema-more-elegant-in-tikz-not-pgfplots#comment1060557_423941">https://tex.stackexchange.com/questions ... 557_423941</a><!-- m -->
% as well as Henri Menkes's answer <!-- m --><a class="postlink" href="https://tex.stackexchange.com/a/423952/121799">https://tex.stackexchange.com/a/423952/121799</a><!-- m -->
\tikzset{mark path bounding box/.style = {
    path picture={
      \coordinate (#1-bl) at (path picture bounding box.south west);
      \coordinate (#1-tr) at (path picture bounding box.north east);
      \coordinate (#1-br) at (path picture bounding box.south east);
      \coordinate (#1-tl) at (path picture bounding box.north west);
    }
  }
}

\begin{document}

\schemestart
\chemname{\chemfig{@{H1-1}H-[:30]@{O1-1}O-[:-30]@{H2-1}H}}{Stretching simmetrico}
\schemestop
\chemmove{\path[mark path bounding box=HO](H1-1)--(O1-1);
\draw[blue,-latex]([yshift=2mm,xshift=-1mm]HO-bl)--([yshift=2mm,xshift=-1mm]HO-tr);
\path[mark path bounding box=OH](H2-1)--(O1-1);
\draw[blue,-latex]([yshift=2mm,xshift=1mm]OH-br)--([yshift=2mm,xshift=1mm]OH-tl);
}
\hspace{64pt}
\schemestart
\chemname{\chemfig{@{H1-2}H-[:30]@{O1-2}O-[:-30]@{H2-2}H}}{Stretching asimmetrico}
\schemestop
\chemmove{\path[mark path bounding box=HO](H1-2)--(O1-2);
\draw[blue,-latex]([yshift=2mm,xshift=-1mm]HO-bl)--([yshift=2mm,xshift=-1mm]HO-tr);
\path[mark path bounding box=HO](O1-2)--(H2-2);
\draw[blue,-latex]([yshift=2mm,xshift=1mm]HO-tl)--([yshift=2mm,xshift=1mm]HO-br);
}
\hspace{64pt}
\schemestart
\chemname{\chemfig{@{H1-3}H-[:30]@{O1-3}O-[:-30]@{H2-3}H}}{Scissoring}
\schemestop
\chemmove{
\draw[blue,-latex]([yshift=-1mm,xshift=-2mm]H1-3.south west)--([yshift=-1mm,xshift=2mm]H1-3.south east);
\draw[blue,-latex]([yshift=-1mm,xshift=-2mm]H2-3.south west)--([yshift=-1mm,xshift=2mm]H2-3.south east);}
\end{document}

请注意,我为节点赋予了不同的名称。在此示例中,这不是必需的,但可能被视为更好的做法。

相关内容