2009-01-05 5 views
11

Ich möchte einen Weg finden, Drop-Caps (große Anfangsbuchstaben mehrere Zeilen hoch) in pdfLaTeX zu produzieren. Ich weiß, dass es ein dropping Paket gibt, das gut funktioniert, wenn es mit latex + dvips verwendet wird. Bei Verwendung mit pdflatex sieht das Ergebnis jedoch hässlich aus.Drop-Caps in pdfLaTeX

Meine Quelldatei ist:

\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} 

Wenn ich es als

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

kompilieren das Ergebnis OK ist:

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

Als ich Kommentar- [pdftex] Linien und kompilieren als

pdflatex drop.tex 

die Ergebnisse ist:

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

Kann jemand empfehlen, einen besseren Weg Kappen zu produzieren fallen mit pdflatex?

Antwort

19

Vielen Dank für schnelle Antworten! Eigentlich waren beide Kommentare von Hop und Charlie Martin hilfreich. lettrine.sty ist ein fantastisches Paket, und es funktioniert , wenn skalierbare Schriftarten verwendet werden.

So wurde die Lösung Type Fonts   1 CM CM statt Standard undlettrine.sty Verwendung zu erzwingen. lettrine.sty Dokumentation schlägt \usepackage{type1cm} vor.

Dies funktioniert:

\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} 

Und das ist das Ergebnis:

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

Thank you!

PS. dropping funktioniert nicht korrekt auch mit type1cm.

UPD. Dieses Beispiel funktioniert auch mit xelatex.

4
+0

Ich vermute, dass das nicht helfen wird. Das W fällt gut - die Basislinie ist nach unten gerutscht - aber es ist nicht groß genug. –

+0

Droping ist bekannt, nicht gut mit pdflatex zu arbeiten. wenn lettrine nicht für ihn arbeitet, ziehe ich diese antwort zurück. – hop

6

eine andere Schriftart Versuchen Sie, eine mit Skalierung; Das sieht so aus, als würde die PDF-Datei keine ausreichend große Schrift für die cap-W finden und ersetzen. Die andere Möglichkeit besteht darin, eine DVI-zu-PDF-Übersetzung zu verwenden.

3

Als jetxee erwähnt, ist es notwendig, eine skalierbare Schriftart zu verwenden, um genau die richtige Größe für die Initiale zu erhalten. Wenn Sie die Schriftart von der Standardeinstellung ändern, geschieht dies, ohne dass Sie etwas tun müssen.

Aus historischen Gründen werden die Standard-CM-Schriftarten zum "Einrasten" in bestimmte Größen geladen, anstatt in jeder skalierten Größe geladen werden zu können.Dies ist von der Zeit, als die ursprünglichen Metafont-Quellen verwendet wurden, wenn eine andere Schriftgröße die tatsächliche Form der Glyphen änderte (Google optische Größen für die Neugierigen).

Die kanonische Lösung, um dieses Problem mit den CM-Schriftarten zu beheben, ist das Laden des fix-cm-Pakets. Das Paket type1cm ist ein älteres Paket, das grundsätzlich das Gleiche macht.

Verwandte Themen