根据字段更改语言

根据字段更改语言

我正在使用和创建双语(主要语言:希腊语,次要语言:英语)文档,xelatexpolyglossia使用biblatexbiber 进行参考书目管理。由于 biblatex 当前已设置,因此参考书目以希腊语输出,这很好。但是,由于大多数参考书目都是英文,因此参考书目字段未正确连字符。

如果我添加autolang=hyphenbiblatex 选项,连字符是正确的,但整个条目会转换为英文,这是我不想要的。有没有办法只在每个字段上更改语言?目前,我已经创建了一个简单的宏,并向我想要的字段\newcommand{\en}{\selectlanguage{english}}添加了\en英文,但这在包含太多参考文献的文档上很累人,而且容易出错。有没有办法更改指定字段(标题、作者、期刊、书名)的语言,但不改变整个条目的语言?

平均能量损失

\documentclass{book}

% Change these if you want
\newcommand{\MainFont}{Times New Roman}
\newcommand{\SansFont}{Arial}
\newcommand{\MonoFont}{Courier New}

\usepackage{filecontents}

\begin{filecontents}{bibliography.bib}
  @article{anarticle,
    author={Lathrop, J.W.},
    journal={Electron Devices, IRE Transactions on},
    title={Photolithographic fabrication techniques for transistors},
    year={1958},
    month={April},
    volume={5},
    number={2},
    pages={117},
    doi={10.1109/T-ED.1958.14395},
    ISSN={0096-2430},
    langid={english},
    hyphenation={english}
  }
\end{filecontents}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{greek}
\setotherlanguage{english}
\usepackage[backend=biber,style=alphabetic,maxcitenames=2]{biblatex}
\setmainfont[Mapping=tex-text,Ligatures={TeX,Common}]{\MainFont}
\setsansfont[Mapping=tex-text,Ligatures={TeX,Common}]{\SansFont}
\setmonofont[Mapping=tex-text,Ligatures={TeX,Common}]{\MonoFont}
\newfontfamily\greekfont[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\MainFont}
\newfontfamily\greekfontsf[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\SansFont}
\newfontfamily\greekfonttt[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\MonoFont}

\addbibresource{bibliography.bib}

\begin{document}

\cite{anarticle}

\printbibliography

\end{document}

答案1

autolang=hyphen选项可满足您的要求。这是您的示例,但我故意将边距设置得很大以显示连字符。由于边距很大,这仍然会导致一些错误的框,但这是可以预料到的。为了进行比较,autolang=hyphen还给出了没有的示例。(我还将月份字段更正为数字字段,这是更biblatex理想的。)

\documentclass[draft]{article}
\usepackage[margin=2.8in]{geometry}
% Change these if you want
\newcommand{\MainFont}{Times New Roman}
\newcommand{\SansFont}{Arial}
\newcommand{\MonoFont}{Courier New}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
  @article{anarticle,
    author={Lathrop, J.W.},
    journal={Electron Devices, IRE Transactions on},
    title={Photolithographic fabrication techniques for transistors},
    year={1958},
    month={4},
    volume={5},
    number={2},
    pages={117},
    doi={10.1109/T-ED.1958.14395},
    ISSN={0096-2430},
    langid={english},
    hyphenation={english}
  }
\end{filecontents}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{greek}
\setotherlanguage{english}
\usepackage[backend=biber,style=alphabetic,maxcitenames=2,language=auto,autolang=hyphen]{biblatex}
\setmainfont[Mapping=tex-text,Ligatures={TeX,Common}]{\MainFont}
\setsansfont[Mapping=tex-text,Ligatures={TeX,Common}]{\SansFont}
\setmonofont[Mapping=tex-text,Ligatures={TeX,Common}]{\MonoFont}
\newfontfamily\greekfont[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\MainFont}
\newfontfamily\greekfontsf[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\SansFont}
\newfontfamily\greekfonttt[Script=Greek,Mapping=tex-text,Ligatures={Common,TeX}]{\MonoFont}

\addbibresource{\jobname.bib}

\begin{document}

\cite{anarticle}

\printbibliography

\end{document}

使用选项

代码输出

没有选择

没有指定选项的输出

相关内容