20090106

Буквицы в LaTeX

Применение декоративной буквы в начале абзаца — это старинная традиция. Она настолько древняя, что предшествует рождению строчных букв, которые появились не ранее VIII века.

— Феличи Дж., Типографика: шрифт, верстка, дизайн.


Всем нам буквицы знакомы по сказкам. Это напоминает детство. И если буквица сделано хорошо — это красиво. А сделать буквицу в LaTEX можно разными способами. Легче всего найти пакет dropping. Однако для масштабирования букв он требует использовать пакет graphics и непременно с опцией dvips. Таким образом, делать крупные буквицы в pdflatex или xelatex у меня с ним не получалось.

Решение мне подсказали на stackoverflow. Есть ещё пакет lettrine, возможности которого даже больше (особенно в плане обтекания буквицы с наклонным краем). Хитрость в том, что нужно использовать не только пакет lettrine, но и масштабируемый шрифт (например, Type 1, TrueType или OpenType). Работает и в pdfLaTEX, и в XLaTEX.

Вот работающий пример. Он расчитан на компиляцию xelatex-ом, и использует шрифт URW Bookman L.
\documentclass[12pt]{article}

% russian hyphenation babel + xecyr — better use polyglossia instead
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{xecyr}

% using XeLaTeX
\usepackage{xltxtra}
\setmainfont{URW Bookman L-Light}

% use scalalable (Type 1) fonts to obtain nice results
% (using URW Bookman L Light, see \setmainfont)
\usepackage{lettrine}

\usepackage[papersize={13cm,4.5cm},
left=0.5cm,right=0.5cm,
top=0.5cm,bottom=0.5cm]{geometry}

\begin{document}
\lettrine[lines=3,slope=-8pt,nindent=-2pt]{У}{} одного бедного мужика не стало
хлеба. Вот он и задумал попросить хлеба у~барина. Чтобы было с~чем идти
к~барину, он поймал гуся, изжарил его и понёс. Барин принял гуся и говорит
мужику:

—\,Спасибо, мужик, тебе за~гуся; только не знаю, как мы твоего гуся делить
будем. Вот у~меня жена, два сына да две дочери. Как бы нам разделить гуся
без~обиды?
\end{document}
И вот результат (PDF по ссылке):

Подгонка строчек под буквицу сделана параметрами slope и nindent команды \lettrine. Второй обязательный аргумент команды (в примере пустой) — текст после буквицы, набираемый капителью.

Должно работать и с pdflatex, только нужно выбрать Type 1 шрифт. С латиницей проблем нет, а вот с кириллицей у меня не получается. Буду рад рецепту, как использовать Bookman в (pdf)LaTeX.