Estou usando biblatex
with backend=biber
e o seguinte .bib
arquivo:
@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},
}
Posso compilar isso com sucesso biber
, mas o pdflatex
comando falha devido ao α
e β
no .bbl
arquivo. Surpreende-me o facto de não parecer haver uma solução elegante para este problema, embora este pareça ser um cenário quotidiano, pelo menos na literatura científica.
Que opções tenho para corrigir esse problema?
Responder1
Você deve atribuir um significado aos caracteres Unicode que está usando e que não são definidos por padrão. Aqui está uma maneira.
\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}
O uso de filecontents
é apenas para obter um MWE independente.
Uma solução diferente é usar o \textgreek
pacote, que também poupa newunicodechar
porque define o significado das letras gregas Unicode como equivalentes às suas \text...
contrapartes. Assim α
se torna \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}
O resultado é
Responder2
biber foi projetado para ser capaz de recodificar em macros TeX automaticamente exatamente nesta situação. Isso é explicado no manual do biber - o problema que você enfrenta é uma limitação do inputenc
PDFLaTeX que não entende todo o UTF-8. Carregue o biblatex com a safeinputenc
opção e depois ligue para o biber com a --output_safecharsset=full
opção. Isso fará tudo automaticamente para você.
Para mudar para as variantes textgreek, é muito fácil, você precisa ter um arquivo de dados de conversão XML de macro UTF-8<->TeX personalizado (o biber vem com um padrão que é adequado para a maioria dos usos). Para usar as variantes textgreek, obtenha este arquivo:
https://www.dropbox.com/s/ln3ht1xd9mmgu9w/recode.xml
Então ligue para o biber assim:
biber --recodedata=<path to file downloaded above>
Em seguida, certifique-se de ter \usepackage{textgreek}
seu documento LaTeX e usar a safeinputenc
opção biblatex.
Uma maneira muito mais fácil de lidar com isso é mudar para LuaLaTeX, já que o biber lida com UTF-8 sem problemas. Então não há necessidade de opção biber especial ou safeintputenc
opção biblatex.
Responder3
Se usar Unicode é o que você deseja, considere usarfontespecjunto com uma fonte Unicode com letras gregas (que praticamente todas as fontes Unicode possuem). Aqui eu usei o 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}
Responder4
Graças ao PLK e ao cgnieder consegui encontrar uma solução que me deixou satisfeito. Baseia-se na resposta de PLK, mas também garante que as letras gregas estejam corretas.
\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}
Agora, o arquivo macro (encontrado emBiber CTAN /biblatex-biber-1.5/lib/Biber/LaTeX/recode_data.xml
) precisa ser editado. Esse:
<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>
Tem que ser alterado para isto:
<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>
e salvo em seu diretório de trabalho. O pacote textgreek
fornece o \textalpha
comando que resulta em um arquivo α
.
Execute Biber
com as seguintes opções:
--recodedata=recode_data.xml
E a pdflatex
execução seguinte deverá produzir uma bibliografia com letras gregas verticais.