我正在使用chemmacros
包来排版我的研究报告的实验数据。但是,作为输出设置提供的选项不符合我的需求。我希望将原子核的原子序数作为上标,而不是使用破折号或下标。但是,在文档中,我只能找到选项 side 和 sub。有没有办法设置上标位置?
目前我正在使用以下设置:
\documentclass[a4paper,10pt,bibliography=totoc,listof=totoc]{scrreprt}
\usepackage{chemmacros}
\usepackage{siunitx}
\chemsetup[nmr]{delta=(ppm),pos-number=side,use-equal,format = \bfseries,list=true}
\sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
\begin{document}
\begin{experimental}
\NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},\pos{6})\\
\data{IR} ...
\end{experimental}
\end{document}
非常感谢任何帮助或建议。
nmr
PS选项组设置实验部分的整体外观有什么原因吗?我浏览了文档以寻找更通用的选项,但后来发现这个可以做到。
答案1
自 2014/01/24 (v4.3) 起chemmacros
有以下选项pos-number=super
:
\documentclass[a4paper,10pt,bibliography=totoc,listof=totoc]{scrreprt}
\usepackage[compatibility=newest]{chemmacros}
\usepackage{siunitx}
\chemsetup{
modules = spectroscopy ,
spectroscopy/delta=(ppm),
spectroscopy/pos-number=super,% <<<<<<<<<
spectroscopy/use-equal,
spectroscopy/format = \bfseries,
spectroscopy/list=true
}
\sisetup{
separate-uncertainty,
per-mode=symbol,
detect-all,
range-phrase=--
}
\begin{document}
\begin{experimental}
\NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},\pos{6})
\data{IR} ...
\end{experimental}
\end{document}
原始答案:
正如您所注意到的,没有此选项。您需要重新定义\chemmacros_nmr_position:n
。这应该可以满足您的要求:
\documentclass[a4paper,10pt,bibliography=totoc,listof=totoc]{scrreprt}
\usepackage{chemmacros}
\usepackage{siunitx}
\chemsetup[nmr]{delta=(ppm),pos-number=side,use-equal,format = \bfseries,list=true}
\sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
\ExplSyntaxOn
\cs_set_protected:Npn \chemmacros_nmr_position:n #1
{
\chemmacros_chemformula:x
{
\exp_not:V \g__chemmacros_nmr_element_tl
\exp_not:n { ^{#1} }
}
}
\ExplSyntaxOff
\begin{document}
\begin{experimental}
\NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},\pos{6})\\
\data{IR} ...
\end{experimental}
\end{document}
附言:这有历史原因。该\NMR
命令(和一些选项)在experimental
环境之前就存在了。当我添加它时,它的所有选项也都分组在nmr
选项组中。