XeLaTeX 和 Biber/BibLaTeX:切换西里尔文参考资料的字体

XeLaTeX 和 Biber/BibLaTeX:切换西里尔文参考资料的字体

不幸的是,我的主要字体不支持西里尔文。将它与 Linux Libertine(具有所需的字形)混合使用,在主文本中效果很好,我可以轻松切换语言,尤其是当我以大块形式书写文本时,字体的差异根本不可见。

但是,我该如何处理用西里尔文书写的参考文献呢?在参考书目文件中放置字体切换命令对于作者姓名不起作用,但对于标题和其他元素则看起来可以接受。

有没有更简洁的方法(除了切换字体)或者可以与作者姓名一起使用的方法?

作为参考,我的主要字体是 Palatino,因为它在 ClassicThesis 中运行良好;但是,如果有 Palatino 的替代品,外观美观,有连字并包含西里尔字母,请务必推荐!

答案1

您可以使用该包ucharclasses根据使用的 unicode 块自动更改字体系列。你可以这样调用它:

\usepackage[Latin,Cyrillics]{ucharclasses}
\setTransitionsForCyrillics{<at-beginning-of-unicode-block>}{<at-end-of-unicode-block>}

我定义了一个新的russian环境,以便同时设置块语言

\newenvironment{russian}
  {\begin{otherlanguage*}{russian}
    \fontspec{Linux Biolinum O}}
  {\end{otherlanguage*}}

并调用它

\setTransitionsForCyrillics{\begin{russian}}{\end{russian}}

biblatexhyphenation已经根据字段自动化了 bibentries 的语言规范,babel=hyphen或者babel=other自动执行 bibentries 的语言规范。为了在引用中具有相同的功能,请参阅根据 bibentry 的“连字符”字段切换引用语言。下面的 MWE 使用那里的第一个答案。

以下 MWE 使用 Linux Biolinum O 作为西里尔字体,以强调差异。它也基于俄语、日语和 biblatex 哦天哪

\documentclass{article}
\usepackage{fontspec,microtype}
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
\setmainfont{TeX Gyre Pagella}
\usepackage[russian,english]{babel}
\usepackage[babel=other,backend=biber,style=verbose-trad3]{biblatex}
\usepackage[Latin,Cyrillics]{ucharclasses}
\newenvironment{russian}
  {\begin{otherlanguage*}{russian}
    \fontspec{Linux Biolinum O}}
  {\end{otherlanguage*}}
\setTransitionsForCyrillics{\begin{russian}}{\end{russian}}
\makeatletter
\AtEveryCitekey{%
\blx@langsetup\abx@field@hyphenation%
\blx@hyphenreset%
}
\makeatother
\begin{filecontents}{\jobname.bib}
@article{Dubrovin1906,
  author = { Дубровин, А. И },
  title = { Открытое письмо Председателя Главного Совета Союза Русского Народа А. И. Дубровина от 2 декабря 1906 года митрополиту Санкт-Петербургскому Антонию, Первенствующему члену Священного Синода },
  journal = { Вече },
  edition = { 97 },
  year = { 1906 },
  month = { 7 дек. 1906 },
  pages = { 1-3 },
  keywords = {primary},
  hyphenation = { russian },
  language = { russian }
}
@article{Brumbaugh1947,
  author = { Brumbaugh, Thoburn T },
  title = { The Protestant Handicap in Japan. },
  journal = { Christian Century },
  volume = 64,
  edition = 23,
  year = { 1947 },
  month = { 4 June 1947 },
  pages = { 708-709 },
  keywords = {primary},
  hyphenation = { english },
  language = { english }
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\textcite{Brumbaugh1947}

\autocite{Brumbaugh1947}

\textcite{Dubrovin1906}

\autocite{Dubrovin1906}

\printbibliography

\end{document}

姆韦

相关内容