私は以下のファイル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 のマニュアルで説明されています。直面している問題は、inputenc
UTF-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
実行により、ギリシャ文字が縦向きの参考文献が生成されるはずです。