Problema biblatex-apa con mhchem

Problema biblatex-apa con mhchem

Descubrí un problema al usar BibLaTeXel estilo de cita apajunto con mhchemcuando el archivo bib contiene fórmulas químicas con subíndices/superíndices. El MWE es

\documentclass{article}
\usepackage[version=4]{mhchem}
\usepackage[style=apa, backend=biber]{biblatex}
%\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{Bib.bib}

\begin{document}

This is a citation with only simple chemistry: \parencite{Cite1}.

This is a citation with superscript: \parencite{Cite2}.

\printbibliography
\end{document}

Cite1 contiene sólo una fórmula química simple y funciona perfectamente bien:

@Article{Cite1,
  author       = {Author, A.},
  date         = {2020},
  journaltitle = {A Journal},
  title        = {A title with just some \ce{Mg/Ca} chemistry},
  issue        = {2},
  pages        = {1--4},
  volume       = {1},
  timestamp    = {2020-03-27},
}

La cita 2 contiene un superíndice y conduce a 14 errores:

@Article{Cite2,
  author       = {Author, B.},
  date         = {2020},
  journaltitle = {Another Journal},
  title        = {A title with some more complicated \ce{\delta^{18}O} chemistry and a longer title},
  issue        = {1},
  pages        = {2--6},
  volume       = {8},
  timestamp    = {2020-03-27},
}

El problema parece ser que BibLaTeXcambia al modo Math, aunque \cedebería evitarlo:

ingrese la descripción de la imagen aquí

Un simple \protect, como en {\protect\ce{\delta^{18}O}}, resuelve ese problema, pero crea otro, porque ahora la "O" se pone en minúscula.

ingrese la descripción de la imagen aquí

Necesitaría la versión bastante complicada {\protect\ce{\delta^{18}\MakeUppercase{O}}}para finalmente obtener el resultado correcto:

ingrese la descripción de la imagen aquí

Dado que el archivo bib real contiene muchas entradas, es comprensible que no me gustaría cambiarlas todas manualmente. Curiosamente, funciona perfectamente bien con el authoryearestilo, el problema aparentemente es apaespecífico. Estaría muy agradecido por cualquier sugerencia sobre cómo abordar este problema.

Respuesta1

biblatex-apaaplica mayúsculas y minúsculas con \MakeSentenceCase*. Esa macro es bastante compleja y básicamente sólo puede manejar texto sin formato sin romperse.

Si tiene macros complejas en sus títulos, deberá ocultarlas/protegerlas con un par de llaves.

Las complejas reglas de protección de los aparatos ortopédicos significan que usted necesitadospares de llaves si el contenido entre llaves comienza con una macro y desea conservar la capitalización.

\documentclass{article}
\usepackage[version=4]{mhchem}
\usepackage[style=apa, backend=biber]{biblatex}


\begin{filecontents}{\jobname.bib}
@Article{Cite1,
  author       = {Author, A.},
  date         = {2020},
  journaltitle = {A Journal},
  title        = {A Title with Just Some {{\ce{Mg/Ca}}} Chemistry},
  issue        = {2},
  pages        = {1--4},
  volume       = {1},
}
@Article{Cite2,
  author       = {Author, B.},
  date         = {2020},
  journaltitle = {Another Journal},
  title        = {A Title with Some More Complicated {{\ce{\delta^{18}O}}}
                  Chemistry and a Longer Title},
  issue        = {1},
  pages        = {2--6},
  volume       = {8},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
This is a citation with only simple chemistry: \parencite{Cite1}.

This is a citation with superscript: \parencite{Cite2}.

\printbibliography
\end{document}

Autor, A. (2020). Un título con sólo algo de química de Mg/Ca. Una revista, 1, 1–4.//Autor, B. (2020). Un título con una química del δ 18 O más complicada y un título más largo. Otro diario, 8, 2–6.

información relacionada