Подтвердить что ты не робот

Капли в pdfLaTeX

Я хочу найти способ создания капсюлей (большие начальные буквы с несколькими строками) в pdfLaTeX. Я знаю, что есть пакет dropping, который хорошо работает при использовании с latex + dvips. Однако при использовании с pdflatex результат выглядит уродливым.

Мой исходный файл:

\documentclass[12pt]{article}

% for pdflatex file.tex # dropping is ugly
% \usepackage[pdftex]{graphicx}
% \usepackage[pdftex]{dropping}

% for latex file.tex ; dvips -T 12cm,8cm file.dvi # dropping is OK
\usepackage[dvips]{graphicx}
\usepackage{dropping}

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

\begin{document}
\dropping[-3pt]{3}{W}ith a drop cap, the initial sits within the margins and
runs several lines deep into the paragraph, pushing some normal-sized text off
these lines. This keeps the left and top margins of the paragraph flush.
In~modern browsers, this can be done with a combination of HTML and CSS
by~using the float: left; setting.
\end{document}

Когда я скомпилирую его как

latex drop.tex && dvips -T 12cm,8cm drop.dvi

результат в порядке:

dropping-latex-dvips http://i44.tinypic.com/i6cl5h.png

Когда я раскомментирую строки [pdftex] и скомпилирую его как

pdflatex drop.tex

результаты:

dropping-pdflatex http://i44.tinypic.com/111mr83.png

Может ли кто-нибудь предложить лучший способ создания капсюлей с pdflatex?

4b9b3361

Ответ 1

Большое спасибо за быстрые ответы! Собственно, оба комментария хэпом и Чарли Мартином были полезны. lettrine.sty - фантастический пакет, и он работает, если используются масштабируемые шрифты.

Итак, решение заключалось в том, чтобы заставить шрифты Type 1 CM вместо CM по умолчанию и использовать lettrine.sty. lettrine.sty документация предлагает \usepackage{type1cm}.

Это работает:

\documentclass[12pt]{article}

% works with pdfLaTeX
\usepackage{type1cm} % scalable fonts
\usepackage{lettrine}

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

\begin{document}
\lettrine[lines=3,slope=-4pt,nindent=-4pt]{W}{ith} a drop cap, the initial sits
within the margins and runs several lines deep into the paragraph, pushing some
normal-sized text off these lines. This keeps the left and top margins of the
paragraph flush.  In~modern browsers, this can be done with a combination of
HTML and CSS by~using the float: left; setting.
\end{document}

И это результат:

pdflatex-type1cm-lettrine http://i44.tinypic.com/mmd1zb.png

Спасибо!

PS. dropping работает некорректно даже с type1cm.

UPD. Этот пример также работает с xelatex.

Ответ 2

Попробуйте другой шрифт, один с масштабированием; это похоже на то, что PDF не находит достаточно большой шрифт для cap-W и заменяет. Другой вариант - использовать перевод dvi-to-PDF.

Ответ 4

Как упоминалось jetxee, необходимо использовать масштабируемый шрифт, чтобы получить нужный размер для начального. Если вы измените шрифт по умолчанию, это произойдет, если вы ничего не сделаете.

По историческим причинам шрифты CM по умолчанию загружаются в "привязку" к определенным размерам, вместо того, чтобы загружаться при любом масштабированном размере. Это с того времени, когда использовались исходные источники Metafont, когда другой размер шрифта изменил реальную форму глифов (оптические размеры Google для любознательных).

Каноническое решение для исправления этой проблемы с CM-шрифтами заключается в загрузке пакета fix-cm. Пакет type1cm - это более старый пакет, который в основном делает то же самое.