Estoy usando biblatex
con backend=biber
y el siguiente .bib
archivo:
@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 pdflatex
comando falla debido a α
y β
en el .bbl
archivo. 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}
El uso de filecontents
es sólo para obtener un MWE autónomo.
Una solución diferente es utilizar el \textgreek
paquete, que también ahorra newunicodechar
porque 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
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 inputenc
PDFLaTeX que no comprende todo UTF-8. Cargue biblatex con la safeinputenc
opción y luego llame a biber con la --output_safecharsset=full
opció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 safeinputenc
opció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 safeintputenc
opció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}
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 textgreek
proporciona el \textalpha
comando que da como resultado un archivo vertical α
.
Ejecutar Biber
con las siguientes opciones:
--recodedata=recode_data.xml
Y la siguiente pdflatex
tirada debería producir una bibliografía con letras griegas verticales.