나는 다음 파일 과 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
사용 중인 유니코드 문자에 의미를 할당해야 하며 이는 기본적으로 설정되지 않습니다. 여기에 방법이 있습니다.
\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를 얻기 위한 것입니다.
다른 해결책은 패키지를 사용하는 것입니다 . 이 패키지 는 유니코드 그리스 문자의 의미를 해당 문자와 동일하게 정의하기 때문에 \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의 한계입니다. 옵션 으로 biblatex를 로드 safeinputenc
한 다음 --output_safecharsset=full
옵션으로 biber를 호출하세요. 그러면 모든 작업이 자동으로 수행됩니다.
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 문서에 있고 safeinputenc
biblatex 옵션을 사용하고 있는지 확인하십시오 .
이를 처리하는 훨씬 쉬운 방법은 biber가 문제 없이 UTF-8을 처리하므로 LuaLaTeX로 전환하는 것입니다. 그러면 특별한 biber 옵션이나 biblatex 옵션이 필요하지 않습니다 safeintputenc
.
답변3
유니코드 사용을 원하는 경우 사용을 고려해야 합니다.글꼴 사양그리스 문자가 포함된 유니코드 글꼴(거의 모든 유니코드 글꼴에 있음)과 함께 사용됩니다. 여기서는 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
upright α
.
Biber
다음 옵션을 사용하여 실행하세요 .
--recodedata=recode_data.xml
그리고 다음 pdflatex
실행에서는 올바른 그리스 문자가 포함된 참고문헌이 생성되어야 합니다.