俄语设置的多语系统无法呈现 -- 和 --- 以及精彩的引语

俄语设置的多语系统无法呈现 -- 和 --- 以及精彩的引语

使用 withpolyglossia包会停止分别从和\setdefaultlanguage{russian}生成短破折号和长破折号。此外,不再有来自 U+0022 的漂亮“上 99”引号(或任何其他漂亮引号)。-----

使用\setdefaultlanguage{english}或使用默认语言我都能得到这些。使用则russian不行。我最接近的方法是使用babelshorthands=true选项,但有三个问题:

  1. 渲染结果看起来不太好(线条粗细明显变化,至少对于这种字体而言),
  2. "--(或"--~就此而言) 留出间距并在 之后换行"---
  3. 当然,如果用俄语书写文本,则必须使用非常不方便的序列。

我当然可以直接输入 U+2014 和 U+2015 以及漂亮的引号,但为什么包会表现出如此奇怪的行为?没有语言设置(英语?)工作正常。

我需要连字符,否则我就会放弃polyglossia,并且babel与我需要的东西冲突。

妇女权利委员会:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Liberation Serif}[Ligatures=TeX]
\newfontfamily\cyrillicfont{Liberation Serif}[Script=Cyrillic]
\usepackage{polyglossia}

% these work (german - in its own specific manner):
%\setdefaultlanguage{english}
%\setdefaultlanguage[babelshorthands=true]{german}

% these don't (strange results with babelshorthands on):
\setdefaultlanguage[babelshorthands=true]{russian}
%\setdefaultlanguage[babelshorthands=false]{russian}
%\setdefaultlanguage{russian}

% polyglossia version: 2023/02/11 v1.60
\begin{document}

..........

-- ~ "en-dash"

--- ~ "em-dash"

"-- ~ "babelshorthands en-dash"

"--- ~ "babelshorthands em-dash"

\end{document}

更新:建议参考'多语者无法引用',虽然它实际上提供了一种解决方案,但我认为,它并不符合“精确”重复的条件,因为原始帖子的问题是以这种方式表述的,所以很容易忽略该问题与我的问题的关系。

答案1

如果\newfontfamily需要使用 TeX-Ligatures,例如用于-----或也用于引号,则需要启用它们。使用

\newfontfamily\cyrillicfont{Liberation Serif}[Script=Cyrillic,Ligatures=TeX]

与您已经使用过的类似:

\setmainfont{Liberation Serif}[Ligatures=TeX]

(顺便说一句:通常Ligatures=TeX已经为主字体设置,因此不需要。)另请参阅问题“引言对多语者不起作用吗?

另外我建议使用csquotes如图所示的报价包在这个答案中。根据您想要的引用样式,您还可以使用选项style,例如

\usepackage[style=american]{csquotes}

然而看起来,babel 简写"--~"---不能正确地工作polyglossia

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Liberation Serif}
%\usepackage[english,main=russian]{babel}
\setmainfont{Liberation Serif}[Ligatures=TeX]
\newfontfamily\cyrillicfont{Liberation Serif}[Script=Cyrillic]
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{russian}
\setotherlanguage{english}
\usepackage[style=american]{csquotes}

\defineshorthand{"`}{\openautoquote}
\defineshorthand{"'}{\closeautoquote}

\begin{document}

\selectlanguage{english}\useshorthands{"}

-- ``en-dash''

--- ``em-dash''

"--~ ``babelshorthands em-dash no space''

"--- ``babelshorthands em-dash small space''

\selectlanguage{russian}

-- "`тире"'

--- "`рывок"'

"--~ "`вавилонские сокращения, тире, нет места"'

"--- "`вавилонская стенография em-dash маленькое пространство"'

\end{document}

在此处输入图片描述

您也需要重新定义这些简写,但恕我直言,如果您想使用简写,babel这样更容易使用:polyglossiababel

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Liberation Serif}% explicit option [Ligatures=TeX] not needed
\usepackage[english,main=russian]{babel}
\usepackage[style=american]{csquotes}

\defineshorthand{"`}{\openautoquote}
\defineshorthand{"'}{\closeautoquote}

\begin{document}

\selectlanguage{english}

-- ``en-dash''

--- ``em-dash''

"--~ ``babelshorthands em-dash no space''

"--- ``babelshorthands em-dash small space''

\selectlanguage{russian}
% Note: All translations by translate.google.com

-- "`тире"'

--- "`рывок"'

"--~ "`вавилонские сокращения, тире, нет места"'

"--- "`вавилонская стенография em-dash маленькое пространство"'

\end{document}

在此处输入图片描述

因为babel速记依赖于语言,"--~并且"---在英语部分被忽略。

相关内容