忽略行间重音符号

忽略行间重音符号

我需要调整 \LaTeX 如何处理段落内的行间距(如果可能的话,标题和段落之间的间距)。当我使用字体时,问题就出现了Ponomar Unicode。它的重音符号比平时更大、更垂直。小写字母没有问题,但当我在大写字母上添加重音符号时,它会极大地影响行间距。看一个例子:

天主之父

或与小帮手一起

天父2

如果我'在上面添加И,则空间会增加约 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}

相关内容