如何使用 chemformula 编写债券标签?

如何使用 chemformula 编写债券标签?

我想重现这个方案PJ Flory 的第一本书,第 319 页

在此处输入图片描述

为此,我需要在键下排版标签。我尝试让键像箭头一样接受标签,首先是使用下面 MWE 中相当幼稚的尝试,然后我深入研究了chemformula代码,试图粘贴解决方案,但 LaTeX3 对我来说看起来像是外星的。

\documentclass{article}
\usepackage{chemformula}

%% \ch{A --[a][b] B}, with --[a][b] defined as follows, puts too much space around the arrow-bond.
\NewChemArrow{--}{\draw[chemarrow] (cf_arrow_start) -- (cf_arrow_end) ; }

\begin{document}

\ch{A--[a][b]B}

\bigskip
\ch{A '$\underset{a}{\ch{--}}$' B} % This one ends in "TeX capacity exceeded, sorry [grouping levels=255]."

\end{document}

[编辑] 一种解决方案是使用\ch[bond-length=3em]{A '$\underset{x-1}{\bond{sb}}$' B},正如@Troy所建议的那样。

是否可以让标签容纳在文本下方?就目前情况而言,较大的标签会将原子推开:

\documentclass{article}
\usepackage{chemformula}

\begin{document}

\noindent
\ch{A-B}\\
\ch{A '$\underset{x - 1}{\bond{sb}}$' B}\\
\ch[bond-length=3em]{A '$\underset{x-1}{\bond{sb}}$' B}

\end{document}

印刷

在此处输入图片描述

答案1

我会chemformula

\ch{ !(<text>)(<formula>) }

语法和零宽度框:

\documentclass{article}

\usepackage{chemformula}

\begin{document}

\ch{
  H !(1)(\bond{sb}) ORCO !(2)(\bond{sb}) ORCO !(3)(\bond{sb})
  ...
  !(\makebox[0pt]{$x-1$})(\bond{sb}) ORCO !($x$)(\bond{sb}) OH
}

\end{document}

在此处输入图片描述

答案2

mathtools'\mathclap完成以下工作:

\documentclass{article}
\usepackage{chemformula}
\usepackage{mathtools}

\begin{document}

\noindent
\ch{A-B}\\
\ch{A '$\underset{\mathclap{x - 1}}{\bond{sb}}$' B}\\
\ch[bond-length=3em]{A '$\underset{x-1}{\bond{sb}}$' B}
\end{document}

在此处输入图片描述

您可以使用以下命令:

\newcommand*{\blb}[2][sb]{\ensuremath{\underset{\mathclap{#2}}{\bond{#1}}}}
...
\ch{A '\blb{x-1}' B} % same as the second line above
\ch{A '\blb[db]{x-1}' B} % this is an unsaturated AB

相关内容