我有一篇很长的英文文本,有一页,还有一个塞尔维亚语单词。
最初,用于排版的软件包是fourier
。
该软件包运行良好,只是缺少塞尔维亚语字体,特别是西里尔语字体。
我找到了另一个包,名为erewhon
,它非常相似,并且有西里尔符号。然而,在间距方面有一些差异。
如果我只加载fourier
包,那么西里尔文部分就不好。
如果我只加载erewhon
包,那么数学公式就很单薄,看起来很糟糕,而且存在间距问题,新行中空格太多(这几乎不明显,但总结在文档中)。
如果我加载这两个包,那么字体就可以了,但是会存在一些间距问题,并且新行中的空间太多(同样很难察觉,但在整个文档中都有体现)。
是否可以以某种方式仅为一个页面和一个额外的单词加载一个包,或者仅对erewhon
这两个页面使用字体并fourier
在文档的其余部分使用该包?
我尝试创建两个 pdf,一个包含两个包,另一个仅包含fourier
。然后我将包含西里尔文本的两页复制到第二个文档中。这正是我想要的文档外观,但是,更改 pdf 文件会破坏文档中的所有链接。
这是一个例子。
\documentclass[a4paper,11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[serbianc, french, italian, main=english]{babel}
\usepackage[T2A]{fontenc}
\usepackage{lmodern} %used for fixing blurry typewriter font (from the document, not sure if needed)
\usepackage{erewhon}
\usepackage{fourier}
\begin{document}
This page is in English.
\newpage
\begin{otherlanguage}{serbianc}
Ова страница је на Српском. % The spacing here is not important
\end{otherlanguage}
\newpage
This is another page.
The previous pages are in English/\foreignlanguage{serbianc}{Српски}). % The spacing here is not important
\newpage
The document continues in English...
Line one. % The spacing between line here changes when I \usepackage{erewhon}
Line two. % With only \usepackage{fourier} the spacing is good
Line three.
\end{document}
因此,上述代码可以编译,并且运行良好,只是间距是从继承而来的erewhon
,这看起来很糟糕,并且在文档中产生了巨大的间隙。是否可以修复间距问题,或者以其他方式加载西里尔字体以保留间距fourier
?
答案1
您可以将 Erewhon 仅用于西里尔文\DeclareFontFamilySubstitution
(2020 年 2 月后需要 LaTeX)。您还可以以略小的尺寸加载 Erewhon,以匹配 Fourier。
serbianc.ldf
另外,必须修复中的几个虚假空格。不幸的是,我发现的唯一方法(除非编辑文件)是修复 的整个定义\extrasserbianc
。如果不修复它们,每次调用 时都会得到七个空格\foreignlanguage{serbianc}{...}
。
错误的空格位于 的第 305-307 行、第 351-354 行和第 356-359 行末尾serbianc.ldf
。您应该报告此错误。
不要忘记声明法语和意大利语所需的 T1 编码。
\documentclass[a4paper,11pt]{book}
%\usepackage[utf8]{inputenc}
\usepackage[serbianc, french, italian, main=english]{babel}
\usepackage[T2A,T1]{fontenc}
\usepackage{fourier}
\makeatletter
\providecommand{\erewhon@scale}{0.98116}
\makeatother
\DeclareFontFamilySubstitution{T2A}{\familydefault}{erewhon-TLF}
\makeatletter
\def\extrasserbianc{%
\cyrillictext
\languageshorthands{serbianc}%
\bbl@activate{"}%
\bbl@frenchspacing
\bbl@serbiancindent
\babel@save\@Alph\let\@Alph\srbc@Alph
\babel@save\@alph\let\@alph\srbc@alph
\babel@save\enumEng\def\enumEng{\srbc@lettering=\tw@}% <--- was missing
\babel@save\enumLat\def\enumLat{\srbc@lettering=\@ne}% <--- was missing
\babel@save\enumCyr\def\enumCyr{\srbc@lettering=\z@}% <--- was missing
\babel@save{\th}\let\ltx@th\th
\def\th{\textormath{\ltx@th}{\mathop{\operator@font th}\nolimits}}%
\babel@save\nzs
\babel@save\nzd
\babel@save\NZS
\babel@save\NZD
\if@srbc@uni@ode
\def\nzs{\mathop{\mathrm{нзс}}\nolimits}% <--- was missing
\def\nzd{\mathop{\mathrm{нзд}}\nolimits}% <--- was missing
\def\NZS{\mathop{\mathrm{НЗС}}\nolimits}% <--- was missing
\def\NZD{\mathop{\mathrm{НЗД}}\nolimits}% <--- was missing
\else
\def\nzs{\mathop{\textnormal{\cyrn\cyrz\cyrs}}\nolimits}% <--- was missing
\def\nzd{\mathop{\textnormal{\cyrn\cyrz\cyrd}}\nolimits}% <--- was missing
\def\NZS{\mathop{\textnormal{\CYRN\CYRZ\CYRS}}\nolimits}% <--- was missing
\def\NZD{\mathop{\textnormal{\CYRN\CYRZ\CYRD}}\nolimits}% <--- was missing
\fi
}
\makeatother
\begin{document}
This page is in English.
\newpage
\begin{otherlanguage}{serbianc}
Ова страница је на Српском.
\end{otherlanguage}
\newpage
This is another page.
The previous pages are in English/\foreignlanguage{serbianc}{Српски}).
\newpage
The document continues in English...
\end{document}
使用我建议的缩放比例,傅立叶字母表中大写字母 C(拉丁文)的高度为 7.12843pt,大写字母 С(西里尔文)的高度为 7.12839pt。差异可以忽略不计。如果不使用缩放比例,大写西里尔字母的高度为 7.26532pt,差异为不是微不足道。
答案2
该fourier
软件包加载 Utopia 文本字体(缩放比例为 92%,不含西里尔文)并添加匹配的数学字体。该软件包加载erewhon
Utopia 文本字体(缩放比例为 94%,含西里尔文)但对数学不做任何处理,对于您认为太细的数学,您会得到 LatinModern。
我建议切换到 LuaTeX 而不是 pdfTeX,并尝试使用以下命令编译此文件lualatex
:
\documentclass[a4paper,11pt]{book}
\usepackage[serbianc, french, italian, main=english]{babel}
\usepackage{fourier-otf}
%\setsansfont{...} % Choose a SansSerif font if needed
\setmonofont{lmmono10-regular.otf} % Latin Modern Typewriter font
\begin{document}
This page is in English.
\newpage
\begin{otherlanguage}{serbianc}
Ова страница је на Српском.
\end{otherlanguage}
\newpage
This is another page.
The previous pages are in English/\foreignlanguage{serbianc}{Српски}).
\newpage
The document continues in English...
Line one.
Line two.
Line three.
\end{document}
这有帮助吗?