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

사용 중인 유니코드 문자에 의미를 할당해야 하며 이는 기본적으로 설정되지 않습니다. 여기에 방법이 있습니다.

\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 매뉴얼에 설명되어 있습니다. 직면한 문제는 inputencUTF-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 문서에 있고 safeinputencbiblatex 옵션을 사용하고 있는지 확인하십시오 .

이를 처리하는 훨씬 쉬운 방법은 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\textalphaupright α.

Biber다음 옵션을 사용하여 실행하세요 .

--recodedata=recode_data.xml

그리고 다음 pdflatex실행에서는 올바른 그리스 문자가 포함된 참고문헌이 생성되어야 합니다.

관련 정보