Biblatex の非 ASCII 文字

Biblatex の非 ASCII 文字

私は以下のファイルbiblatexを使用しています:backend=biber.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},
}

これを で正常にコンパイルすることはできますbiberが、ファイル内のと がpdflatex原因でコマンドが失敗します。少なくとも科学文献では、これが日常的なシナリオであるにもかかわらず、この問題に対するエレガントな解決策が存在しないという事実に驚いています。αβ.bbl

この問題を解決するにはどのようなオプションがありますか?

答え1

使用している Unicode 文字のうち、デフォルトで設定されていない文字に意味を割り当てる必要があります。その方法は次のとおりです。

\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}

ここに画像の説明を入力してください

の使用は、filecontents自己完結型の MWE を取得するためだけに行われます。


別の解決方法は、 パッケージを使用することです。このパッケージでも、 Unicode ギリシャ文字の意味を対応する と同等に定義するため、\textgreekは省略されます。 したがって、になります。newunicodechar\text...α\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}

結果は

ここに画像の説明を入力してください

答え2

biber は、まさにこのような状況で自動的に TeX マクロに再コード化できるように設計されています。これは biber のマニュアルで説明されています。直面している問題は、inputencUTF-8 のすべてを理解できない PDFLaTeX の制限です。safeinputencオプションを使用して biblatex をロードし、オプションを使用して biber を呼び出します--output_safecharsset=full。これにより、すべてが自動的に実行されます。

textgreek バリアントに切り替えるのは非常に簡単です。カスタム UTF-8<->TeX マクロ XML 変換データ ファイルが必要です (biber には、ほとんどの用途に適したデフォルトが付属しています)。textgreek バリアントを使用するには、次のファイルを取得します。

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

次に、次のように biber を呼び出します。

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

\usepackage{textgreek}次に、 LaTeX ドキュメントに biblatex オプションが含まれていることを確認しますsafeinputenc

これに対処するはるかに簡単な方法は、biber が UTF-8 を問題なく処理するため、LuaLaTeX に切り替えることです。そうすれば、特別な biber オプションや biblatex オプションは必要ありませんsafeintputenc

答え3

Unicodeを使いたい場合は、フォントスペックギリシャ文字を含む Unicode フォント (事実上すべての Unicode フォントに含まれています) も一緒に使用します。ここでは 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}

ここに画像の説明を入力してください

答え4

PLK と cgnieder のおかげで、満足のいく解決策を見つけることができました。これは PLK の回答に基づいていますが、ギリシャ文字が垂直になっていることも保証します。

\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}

さて、マクロファイル(ビーバーCTAN /biblatex-biber-1.5/lib/Biber/LaTeX/recode_data.xml) を編集する必要があります。これは:

<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>

次のように変更する必要があります:

  <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>

作業ディレクトリに保存されます。パッケージには、直立した を生成するコマンドがtextgreek用意されています。\textalphaα

Biber次のオプションで実行します。

--recodedata=recode_data.xml

そして、次のpdflatex実行により、ギリシャ文字が縦向きの参考文献が生成されるはずです。

関連情報