Como reproduzir a composição tipográfica da constante de acoplamento em chemmacros

Como reproduzir a composição tipográfica da constante de acoplamento em chemmacros

Estou usando as fontes libertinecom newtxmath e beramonojunto com o chammacrospacote para compor dados experimentais. Isso funciona muito bem e obtenho os resultados desejados. Este pacote consegue compor a constante de acoplamento de uma forma que seu prescrito fique muito próximo da letra J. Quando tento obter o mesmo texto de resultado, falho, embora esteja usando pacotes como mathtoolsof leftidxmas eles não atendem ao meu precisa de sua versão padrão.

Aqui está um 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}

Acredito chemmacrosque esteja usando mathtoolsinternamente pelo que me lembro da documentação, mas aparentemente de uma forma mais inteligente do que eu.

Responder1

chemmacros usa o modo matemático normal para isso: $^{1}J$. Você tem uma versão modificada que reduz um pouco o espaço: $^{1\!}J$.

insira a descrição da imagem aqui

Abaixo eu uso a versão 4.4 chemmacrosque também usa \!e adiciona a possibilidade de decidir como os diferentes números são compostos (veja as opções estendidas no exemplo abaixo) para que as redefinições não sejam mais necessárias.

\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}

informação relacionada