Caracteres no ASCII en Biblatex

Caracteres no ASCII en Biblatex

Estoy usando biblatexcon backend=bibery el siguiente .bibarchivo:

@article{concellon_synthesis_2006,
    title = {Synthesis of Enantiopure ({αS,βS)-} or ({αR,βS)-β-Amino} Alcohols by Complete Regioselective Opening of Aminoepoxides by Organolithium Reagents {LiAlH4} or {LiAlD4}},
    volume = {71},
    number = {17},
    journal = {J. Org. Chem.},
    author = {Concellón, José M. and Bernad, Pablo L. and del Solar, Virginia and Suárez, José Ramón and García-Granda, Santiago and Díaz, M. Rosario},
    month = aug,
    year = {2006},
    pages = {6420--6426},
}

Puedo compilar esto exitosamente con biber, pero luego el pdflatexcomando falla debido a αy βen el .bblarchivo. Me sorprende el hecho de que no parezca haber una solución elegante para este problema, aunque parezca un escenario cotidiano, al menos en la literatura científica.

¿Qué opciones tengo para solucionar este problema?

Respuesta1

Tienes que asignar un significado a los caracteres Unicode que estás usando y que no están configurados de forma predeterminada. He aquí una manera.

\begin{filecontents*}{\jobname.bib}
@article{concellon_synthesis_2006,
    title = {Synthesis of Enantiopure ({αS,βS)-} or ({αR,βS)-β-Amino} Alcohols by Complete Regioselective Opening of Aminoepoxides by Organolithium Reagents {LiAlH4} or {LiAlD4}},
    volume = {71},
    number = {17},
    journal = {J. Org. Chem.},
    author = {Concellón, José M. and Bernad, Pablo L. and del Solar, Virginia and Suárez, José Ramón and García-Granda, Santiago and Díaz, M. Rosario},
    month = aug,
    year = {2006},
    pages = {6420--6426},
}
\end{filecontents*}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{newunicodechar}
\newunicodechar{α}{\ensuremath{\alpha}}
\newunicodechar{β}{\ensuremath{\beta}}

\usepackage{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\cite{concellon_synthesis_2006}
\printbibliography
\end{document}

ingrese la descripción de la imagen aquí

El uso de filecontentses sólo para obtener un MWE autónomo.


Una solución diferente es utilizar el \textgreekpaquete, que también ahorra newunicodecharporque define el significado de las letras griegas Unicode como equivalentes a su \text...contraparte. Así αse convierte \textalpha.

\begin{filecontents*}{\jobname.bib}
@article{concellon_synthesis_2006,
    title = {Synthesis of Enantiopure ({αS,βS)-} or ({αR,βS)-β-Amino} Alcohols by Complete Regioselective Opening of Aminoepoxides by Organolithium Reagents {LiAlH4} or {LiAlD4}},
    volume = {71},
    number = {17},
    journal = {J. Org. Chem.},
    author = {Concellón, José M. and Bernad, Pablo L. and del Solar, Virginia and Suárez, José Ramón and García-Granda, Santiago and Díaz, M. Rosario},
    month = aug,
    year = {2006},
    pages = {6420--6426},
}
\end{filecontents*}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{textgreek}

\usepackage{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\cite{concellon_synthesis_2006}
\printbibliography
\end{document}

El resultado es

ingrese la descripción de la imagen aquí

Respuesta2

biber está diseñado para poder recodificar macros TeX automáticamente exactamente en esta situación. Esto se explica en el manual de Biber: el problema al que se enfrenta es una limitación de inputencPDFLaTeX que no comprende todo UTF-8. Cargue biblatex con la safeinputencopción y luego llame a biber con la --output_safecharsset=fullopción. Esto lo hará todo automáticamente por usted.

Para cambiar a las variantes textgreek, es bastante fácil, debe tener un archivo de datos de conversión XML macro UTF-8<->TeX personalizado (biber viene con un valor predeterminado que está bien para la mayoría de los usos). Para utilizar las variantes textgreek, obtenga este archivo:

https://www.dropbox.com/s/ln3ht1xd9mmgu9w/recode.xml

Entonces llama a Biber así:

biber --recodedata=<path to file downloaded above>

Luego solo asegúrese de tener \usepackage{textgreek}en su documento LaTeX y de estar usando la safeinputencopción de biblatex.

Una forma mucho más fácil de lidiar con esto es simplemente cambiar a LuaLaTeX ya que biber maneja UTF-8 sin problemas. Entonces no es necesaria la opción biber especial ni la safeintputencopción biblatex.

Respuesta3

Si lo que desea es usar Unicode, debería considerar usarespecificación de fuentejunto con una fuente Unicode con letras griegas (que prácticamente todas las fuentes Unicode tienen). Aquí he usado Linux Libertine.

\documentclass{article}
\usepackage{filecontents,fontspec,biblatex}
\setmainfont[Ligatures=TeX]{Linux Libertine O}

\begin{filecontents}{\jobname.bib}
@article{concellon_synthesis_2006,
    title = {Synthesis of Enantiopure ({αS,βS)-} or ({αR,βS)-β-Amino} Alcohols by Complete Regioselective Opening of Aminoepoxides by Organolithium Reagents {LiAlH4} or {LiAlD4}},
    volume = {71},
    number = {17},
    journal = {J. Org. Chem.},
    author = {Concellón, José M. and Bernad, Pablo L. and del Solar, Virginia and Suárez, José Ramón and García-Granda, Santiago and Díaz, M. Rosario},
    month = aug,
    year = {2006},
    pages = {6420--6426}}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{concellon_synthesis_2006}
\printbibliography
\end{document}

ingrese la descripción de la imagen aquí

Respuesta4

Gracias a PLK y cgnieder logré encontrar una solución con la que estoy contento. Se basa en la respuesta de PLK pero también garantiza que las letras griegas estén en posición vertical.

\begin{filecontents*}{\jobname.bib}
@article{concellon_synthesis_2006,
    title = {Synthesis of Enantiopure ({αS,βS)-} or ({αR,βS)-β-Amino} Alcohols by Complete Regioselective Opening of Aminoepoxides by Organolithium Reagents {LiAlH4} or {LiAlD4}},
    volume = {71},
    number = {17},
    journal = {J. Org. Chem.},
    author = {Concellón, José M. and Bernad, Pablo L. and del Solar, Virginia and Suárez, José Ramón and García-Granda, Santiago and Díaz, M. Rosario},
    month = aug,
    year = {2006},
    pages = {6420--6426},
}
\end{filecontents*}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textgreek}

\usepackage[backend=biber, safeinputenc]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\cite{concellon_synthesis_2006}
\printbibliography
\end{document}

Ahora, el archivo de macro (que se encuentra enBiber CTAN /biblatex-biber-1.5/lib/Biber/LaTeX/recode_data.xml) tiene que ser editado. Este:

<maps type="greek" set="full">
    <map><from>alpha</from>      <to hex="3B1">α</to></map>
    <map><from>beta</from>       <to hex="3B2">β</to></map>
    ...
    <map><from>Omega</from>      <to hex="3A9">Ω</to></map>
  </maps>

Tiene que cambiarse a esto:

  <maps type="wordmacros" set="base,full">
    <map><from>textalpha</from>      <to hex="3B1">α</to></map>
    <map><from>textbeta</from>       <to hex="3B2">β</to></map>
    ...
    <map><from>textOmega</from>      <to hex="3A9">Ω</to></map>
  </maps>

y guardado en su directorio de trabajo. El paquete textgreekproporciona el \textalphacomando que da como resultado un archivo vertical α.

Ejecutar Bibercon las siguientes opciones:

--recodedata=recode_data.xml

Y la siguiente pdflatextirada debería producir una bibliografía con letras griegas verticales.

información relacionada