我需要调整 \LaTeX 如何处理段落内的行间距(如果可能的话,标题和段落之间的间距)。当我使用字体时,问题就出现了Ponomar Unicode
。它的重音符号比平时更大、更垂直。小写字母没有问题,但当我在大写字母上添加重音符号时,它会极大地影响行间距。看一个例子:
或与小帮手一起
如果我'
在上面添加И
,则空间会增加约 1mm。因此,问题来了:我能否指示 LaTeX 在计算行间空间时忽略变音符号和重音符号?
PS有一个例子
\documentclass[a4paper]{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[russian]{babel}
\usepackage{fontspec}
\setmainfont{Ponomar Unicode}
\usepackage[dvipsnames]{xcolor}
\usepackage{lettrine}
\newcommand\буквица[2]{\lettrine[lines=2]{\setmainfont{Indiction Unicode}\color{BrickRed}{#1}}{#2}}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\буквица{О́}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; \'И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\columnbreak
\буквица{О}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\end{multicols}
\end{document}
答案1
Ponomar 字体的上升部和下降部相当大,因此有必要增大行距。对文本进行实验表明,1.27 倍的倍数足以避免线条不均匀。
避免\setmainfont
在文档正文中使用;最好为字母定义合适的字体。我还排版字母时忽略了重音字母的高度;在以字母开头的段落前添加适当数量的垂直空间。
\documentclass[a4paper]{article}
\usepackage[russian]{babel}
\usepackage{fontspec}
\usepackage[dvipsnames]{xcolor}
\usepackage{lettrine}
\usepackage{multicol}
\setmainfont{PonomarUnicode.otf}
\newfontface{\indiction}{IndictionUnicode.otf}
\newcommand\буквица[2]{%
\lettrine[lines=2]{%
\indiction\color{BrickRed}\IgnoreAccents{#1}}{#2}}
% avoid spurious warning about small caps
\renewcommand{\LettrineTextFont}{\normalfont}
% ignore accent height in lettrines
\newcommand{\IgnoreAccents}[1]{%
\vphantom{A}\smash{#1}%
}
\linespread{1.27}
\begin{document}
\begin{multicols}{2}
\буквица{О́}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; \'И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\columnbreak
\буквица{О}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\end{multicols}
\end{document}
(字体通过字体文件名调用,因为我不想在我的系统中添加它们。)
你可以大胆一点,告诉 LaTeX 两行之间不要太近,这样就可以保持标准行距。不过,增加一些行距似乎还是有必要的。
\documentclass[a4paper]{article}
\usepackage[russian]{babel}
\usepackage{fontspec}
\usepackage[dvipsnames]{xcolor}
\usepackage{lettrine}
\usepackage{multicol}
\setmainfont{PonomarUnicode.otf}
\newfontfamily{\indiction}{IndictionUnicode.otf}
\newcommand\буквица[2]{%
\lettrine[lines=2]{%
\indiction\color{BrickRed}\IgnoreAccents{#1}}{#2}}
% avoid spurious warning about small caps
\renewcommand{\LettrineTextFont}{\normalfont}
% ignore accent height in lettrines
\newcommand{\IgnoreAccents}[1]{%
\vphantom{A}\smash{#1}%
}
\linespread{1.1}
\setlength{\lineskiplimit}{-\maxdimen}
\begin{document}
\begin{multicols}{2}
\буквица{О́}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; \'И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\columnbreak
\буквица{О}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\end{multicols}
\end{document}
答案2
如果您不想将行间距拉得太大,可以选择将\lineskiplimit
值为负数,这样在增加行距之前,最多可以重叠 2pt(在本例中)。实际上(如果您足够幸运的话),“重叠”实际上并不重叠文本,只是一行上的重音符比上一行上的降部高(但如果它们发生冲突,TeX 不会警告您)。
这是 egreg 的示例,其中线宽减少到 1.1 并\lineskiplimit
设置为 -2pt。
\documentclass[a4paper]{article}
\usepackage[russian]{babel}
\usepackage{fontspec}
\usepackage[dvipsnames]{xcolor}
\usepackage{lettrine}
\usepackage{multicol}
\setmainfont{PonomarUnicode.otf}
\newfontface{\indiction}{IndictionUnicode.otf}
\newcommand\буквица[2]{%
\lettrine[lines=2]{%
\indiction\color{BrickRed}\IgnoreAccents{#1}}{#2}}
% avoid spurious warning about small caps
\renewcommand{\LettrineTextFont}{\normalfont}
% ignore accent height in lettrines
\newcommand{\IgnoreAccents}[1]{%
\vphantom{A}\smash{#1}%
}
\linespread{1.1}
\setlength\lineskiplimit{-2pt}
\setlength\lineskip{0pt}
\begin{document}
\begin{multicols}{2}
\буквица{О́}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; \'И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\columnbreak
\буквица{О}{тче} наш, И́же еси́ на небесе́х! Да
святи́тся и́мя Твое́, да прии́дет Ца́рствие Твое́, да бу́дет во́ля Твоя́, я́ко
на небеси́ и на земли́. Хлеб наш насу́щный даждь нам днесь; И оста́ви нам
до́лги на́ша, я́коже и мы оставля́ем должнико́м на́шим; и не введи́ нас во
искуше́ние, но изба́ви нас от лука́ваго.
\end{multicols}
\end{document}