Overleaf,如何在父结构中多次插入带有钩子“?”的 \definesubmol?

Overleaf,如何在父结构中多次插入带有钩子“?”的 \definesubmol?

我已经为 TEDA 定义了一个子分子,以便可以通过 !{TEDA} 将其插入到母结构(六甲基苯)中。

\definesubmol{TEDA}{-[::60]*6(\chemabove{\textcolor{blue}{N}}{\scriptstyle{+}}?---\textcolor{blue}{N}(-[::150,.7]-[::-30,.7]?)--?)

只要我做一次,它就能完美地工作,但是当我插入多个顶点时,就会导致与顶点形成不良的结合。

  1. 泰达:\chemfig[][scale=.5]{!{TEDA}}
  2. TEDA+家长:\chemfig[][scale=.5]{*6((-!{TEDA})-(-)=(-)-(-)=(-)-(-)=)}
  3. 2*泰达+家长:\chemfig[][scale=.5]{*6((-!{TEDA})-(-)=(-!{TEDA})-(-)=(-)-(-)=)}

我已经知道这一定是由我的 TEDA 定义引起的,它包含钩子“?”,如果我添加多个 TEDA 单元,它们最终会相互连接。

有没有办法为单个 !{TEDA} 实例指定唯一的钩子?我是否需要以完全不同的方式解决这个问题?

1.、2.和3的各种结果。

答案1

从 v1.33 开始,你可以使用参数定义 submols:

\documentclass{article}
\usepackage{chemfig}
\begin{document}
\definesubmol{TEDA}1{-[::60]\chemabove{\textcolor{blue}{N}}{\rlap{\kern0.2em$\scriptstyle{+}$}}?[#1]*6(---\textcolor{blue}{N}(-[::150,.7]-[::-30,.7]?[#1])--?[#1])}
\chemfig{*6((-!{TEDA}{a})-(-)=(-!{TEDA}{b})-(-)=(-)-(-)=)}
\end{document}

在此处输入图片描述

相关内容