不幸的是,我的主要字体不支持西里尔文。将它与 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}}
biblatex
hyphenation
已经根据字段自动化了 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}