Caracteres não ASCII no Biblatex

Caracteres não ASCII no Biblatex

Estou usando biblatexwith backend=bibere o seguinte .bibarquivo:

@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 pdflatexcomando falha devido ao αe βno .bblarquivo. 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}

insira a descrição da imagem aqui

O uso de filecontentsé apenas para obter um MWE independente.


Uma solução diferente é usar o \textgreekpacote, que também poupa newunicodecharporque 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 é

insira a descrição da imagem aqui

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 inputencPDFLaTeX que não entende todo o UTF-8. Carregue o biblatex com a safeinputencopção e depois ligue para o biber com a --output_safecharsset=fullopçã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 safeinputencopçã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 safeintputencopçã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}

insira a descrição da imagem aqui

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 textgreekfornece o \textalphacomando que resulta em um arquivo α.

Execute Bibercom as seguintes opções:

--recodedata=recode_data.xml

E a pdflatexexecução seguinte deverá produzir uma bibliografia com letras gregas verticais.

informação relacionada