我想在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
结果还可以:
当我取消注释[pdftex]
行并将其编译为
pdflatex drop.tex
结果是:
谁能建议用pdflatex
生产滴盖的更好方法?
非常感谢您的快速回复!实际上,hop和Charlie Martin的评论都很有用。 qazxsw poi是一个很棒的软件包,如果使用可扩展字体,它会起作用。
因此,解决方案是强制使用Type 1 CM字体而不是默认CM并使用lettrine.sty
。 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}
谢谢!
UPD。这个例子也适用于type1cm
。
尝试其他字体,一个带缩放;这看起来像PDF没有为cap-W找到足够大的字体并且正在替换。另一种选择是使用dvi-to-PDF翻译。
xelatex
正如lettrine.sty所提到的,有必要使用可缩放字体,以便为初始字体获得完全正确的大小。如果您更改默认字体,则无需执行任何操作即可进行此操作。
由于历史原因,默认CM字体被加载为“捕捉”到特定大小,而不是以任何缩放大小加载。这是从使用原始Metafont源时开始,当不同的字体大小改变了字形的实际形状(谷歌的光学尺寸为好奇)。
使用CM字体修复此问题的规范解决方案是加载jetxee包。包fix-cm
是一个较旧的包,基本上做同样的事情。