一般问题:如何使用包中的环境并修改一个或多个命令,但保留其他命令的所有功能?抱歉,我知道这是不可能的或不可行的,而且自己从头开始创建环境更容易(这超出了我的技能)。
具体问题:如何使用 chemmacros 中的实验环境,但修改例如\NMR
和\pos
可能的\J
命令?是否仍可以\\#{}
使用更新的\NMR
命令进行工作?
对于我们的报告,我们需要提供如图所示的 NMR 数据。
更新\NMR
命令对于在实验环境和外部使用都很有效。但更新其他命令不起作用。仅举个\newcommand
例子,\J{}{}{}
仅适用于环境之外。
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{textgreek}
\usepackage{siunitx}
\usepackage{chemmacros}
\chemsetup{modules={all},greek=textgreek}
\renewcommand{\NMR}[6]{\noindent\textbf{$\mathbf{^{#1}#2}$-NMR (#3)} (#4~MHz, #5~K, \ch{#6}, $\delta/\si{ppm}$):} %\nmr{MZ}{Kern}{Nummer}{Frequenz}{Temperatur}{Lsm}
\renewcommand{\J}[3]{$^{{\textsl{##1}}}J_{\mathrm{##2}} = ##3~\mathrm{Hz}$} %\J{Bindungen}{koppelnde Kerne}{Frequenz}
\renewcommand{\pos}[1]{\textbf{##1}} %Zuordnung
\begin{document}
\begin{experimental}
\NMR{1}{H}{prakt\_AC.999}{400}{298}{CDCl3} \val{1.11--2.22} (d, 4 H, \J{4}{HH}{6.66}, \pos{7})
\end{experimental}
\end{document}
并且更新环境会“删除”所有其他命令,例如命令\val{}
或\J
命令。
\renewenvironment{experimental}{
\renewcommand{\NMR}[6]{\noindent\textbf{$\mathbf{^{##1}##2}$-NMR (##3)} (##4~MHz, ##5~K, \ch{##6}, $\delta/\si{ppm}$):} %\nmr{MZ}{Kern}{Nummer}{Frequenz}{Temperatur}{Lsm}
\renewcommand{\pos}[1]{\textbf{##1}} %Zuordnung
\renewcommand{\#}[1]{\textbf{##1}} %Anzahl Kerne
}{}
答案1
宏\pos
、\J
和\#
是通过环境设置的experimental
。它们在外部没有任何意义 —— 至少在 中没有意义chemmacros
。对于它们中的每一个,都存在一个内部命令,在 的情况下,pos
可以轻松重新定义,如下例所示。
这是获取所需输出的一种方法(除了斜体原子核下标 - 我怀疑这个例子中的这个是偶然的而不是故意的......)
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{textgreek}
\usepackage{siunitx}
\usepackage{chemmacros}
\chemsetup{
modules = spectroscopy ,
greek = textgreek ,
}
\ExplSyntaxOn
\chemmacros_define_keys:nn {spectroscopy}
{ atom-number-space .skip_set:N = \l__chemmacros_nmr_space_skip }
\cs_set_protected:Npn \chemmacros_nmr_position:n #1
{ \textbf {#1} }
\ExplSyntaxOff
\chemsetup{
spectroscopy/format = \bfseries ,
spectroscopy/coupling-pos = sub ,
spectroscopy/atom-number-space = 0pt
}
\begin{document}
\begin{experimental}
\data{\NMR*{1,H} (ac\_prakt 12345)}
(\SI{250}{\mega\hertz}, \SI{298}{\kelvin}, \ch{CDCl3}, $\delta$/ppm):
\val{8.71} (d, \#{1}, \J(3;HH){4.4}, \pos{2})
\val{7.66} (d, \#{1}, \J(3;HH){7.7}, \pos{4})
\val{7.38} (dd, \#{1}, \J(3;HH){4.5}, \J(3;HH){7.8}, \pos{3})
\val{3.03} (t, \#{2}, \J(3;HH){5.99}, \pos{8})
\val{2.81} (t, \#{2}, \J(3;HH){5.98}, \pos{10})
\val{2.2} (p, \#{2}, \J(3;HH){6.11}, \pos{9})
\end{experimental}
\end{document}