So reproduzieren Sie den Satz der Kopplungskonstante in Chemmacros

So reproduzieren Sie den Satz der Kopplungskonstante in Chemmacros

Ich verwende die Schriftarten libertinemit newtxmath und beramonozusammen mit dem chammacrosPaket, um experimentelle Daten zu setzen. Das funktioniert sehr gut und ich erhalte die gewünschten Ergebnisse. Dieses Paket schafft es, die Kopplungskonstante so zu setzen, dass ihre Vorschrift dem Buchstaben J sehr nahe kommt. Wenn ich versuche, denselben Ergebnistext zu erzielen, scheitere ich, obwohl ich Pakete wie mathtoolsvon verwende leftidx, die jedoch in ihrer Standardversion meinen Anforderungen nicht gerecht werden.

Hier ist ein MWE

\documentclass[a4paper,10pt,bibliography=totoc,listof=totoc]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage[scaled=.83]{beramono}
\usepackage[libertine]{newtxmath}

\usepackage{chemmacros}
\chemsetup[nmr]{
  delta = (ppm) ,
  pos-number = side ,
  use-equal,
  format = \bfseries,
  list=true
}
\usepackage{siunitx}
\sisetup{
  separate-uncertainty ,
  per-mode = symbol ,
  range-phrase = -- ,
  detect-mode = false ,
  detect-weight = true ,
  mode = text ,
  text-rm = \libertineLF % use libertine with lining figures
}

\ExplSyntaxOn
\cs_set_protected:Npn \__chemmacros_nmr_coupling:w (#1;#2)
  {
    \tl_set:Nn \l__chemmacros_nmr_coupling_bonds_tl { #1 \! }
    \tl_set:Nn \l__chemmacros_nmr_coupling_nuclei_tl
      {
        \c_math_subscript_token
          { \chemmacros_chemformula:n { #2 } }
      }
    \__chemmacros_nmr_coupling_aux_i:w
  }
\cs_set_protected:Npn \chemmacros_nmr_number:n #1
  {
    $ #1 $ \, % put the number in math-mode for lining figures
    \chemmacros_atom:V \g__chemmacros_nmr_element_tl
  }
\ExplSyntaxOff

\begin{document}
Good way:
\begin{experimental}
  \NMR(400)[C6D6] \val{2.01} (d, \J(1;CH)[Hz]{25.0}, \#{24}, \pos{5})
\end{experimental}
Not so good way:
$\prescript{1}{}{J}$ coupling

\end{document}

Soweit ich mich an die Dokumentation erinnere, wird es meiner Meinung nach intern chemmacrosverwendet mathtools, aber anscheinend auf intelligentere Weise als ich.

Antwort1

chemmacros verwendet hierfür den normalen Mathematikmodus: $^{1}J$. Sie haben eine modifizierte Version, die den Platzbedarf etwas reduziert: $^{1\!}J$.

Bildbeschreibung hier eingeben

Im Folgenden verwende ich Version 4.4, chemmacrosdie auch \!die Möglichkeit bietet, zu entscheiden, wie die verschiedenen Zahlen gesetzt werden (siehe die erweiterten Optionen im Beispiel unten), sodass die Neudefinitionen nicht mehr erforderlich sind.

\documentclass[a4paper,10pt,bibliography=totoc,listof=totoc]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage[scaled=.83]{beramono}
\usepackage[libertine]{newtxmath}

\usepackage{chemmacros}[2014/01/29] % use version 4
\chemsetup[nmr]{
  delta = (ppm) ,
  pos-number = side ,
  use-equal,
  format = \bfseries,
  list=true ,
  coupling-pos-cs = \ensuremath , % <<< added
  atom-number-cs = \ensuremath    % <<< added
}
\usepackage{siunitx}
\sisetup{
  separate-uncertainty ,
  per-mode = symbol ,
  range-phrase = -- ,
  detect-mode = false ,
  detect-weight = true ,
  mode = text ,
  text-rm = \libertineLF % use libertine with lining figures
}

\begin{document}

Good way:
\begin{experimental}
  \NMR(400)[C6D6] \val{2.01} (d, \J(1;CH)[Hz]{25.0}, \#{24}, \pos{5})
\end{experimental}
Same way:
$^{1\!}J$ coupling

\end{document}

verwandte Informationen