我正在使用和创建双语(主要语言:希腊语,次要语言:英语)文档,xelatex
并polyglossia
使用biblatex
biber 进行参考书目管理。由于 biblatex 当前已设置,因此参考书目以希腊语输出,这很好。但是,由于大多数参考书目都是英文,因此参考书目字段未正确连字符。
如果我添加autolang=hyphen
biblatex 选项,连字符是正确的,但整个条目会转换为英文,这是我不想要的。有没有办法只在每个字段上更改语言?目前,我已经创建了一个简单的宏,并向我想要的字段\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}