考虑来自先前的问题:
\documentclass{article}
\usepackage{lettrine}
%\usepackage{fontspec}
%\defaultfontfeatures{Ligatures={Historical}}
%\setmainfont[Ligatures={Common,Rare}]{Hoefler Text}
%% unfortunately, I do not own these fonts
\newcommand\prelude[2][8em]{\makebox[#1][c]{\itshape\scriptsize#2.}}
\newenvironment{prayer}[4][]{%
\lettrine[ante=\prelude{#2},#1]{#3}{#4}
}{%
\unskip
\qquad
\textit{Amen.}%
}
% optional smart handling of words; works either way
\iftrue
\makeatletter
\def\prayer{\@ifnextchar[{\@prayer}{\@prayer[]}}
\def\@prayer[#1]#2#3#4 {\lettrine[ante=\prelude{#2},#1]{#3}{#4} }
\def\endprayer{\unskip\qquad\textit{Amen.}}
\makeatother
\fi
\def\mytext{O Lord, we join our unfeigned thanks for all thy
mercies; for our being, our reason, and all other endowments and
faculties of soul and body; for our health, friends, food, and
raiment, and all the other comforts and conveniences of life. Above
all we adore thy mercy in sending thy only Son into the world to
redeem us from sin and eternal death, and in giving us the knowledge
and sense of our duty towards thee. We bless thee for thy patience
with us, notwithstanding our many and great provocations; for all
the directions, assistances, and comforts of thy Holy Spirit; for
thy continual care and watchful providence over us through the whole
course of our lives; and particularly for the mercies and benefits
of the past day: Besecching thee to continue these thy blessings to
us; and to give is grace to show our thankfulness in a sincere
obedience to his laws through whose merits and intercession we
received them all, thy Son our Saviour Jesus Christ.}
\begin{document}
\begin{prayer}[loversize=0.1]{The Thanksgiving}
TO our prayers, \mytext
\end{prayer}
\lettrine[ante={\prelude{The Thanksgiving}},loversize=0.1]%
{T}{O} our prayers, \mytext\qquad\textit{Amen.}
\end{document}
我有这种奇怪的行为:
就好像我将其lhang=1
作为可选参数引入了,但我并没有这样做。这可能是什么原因造成的?
答案1
Lettrine 适用于段落:它会改变 parshape。您的环境\par
末尾缺少 a,因此组在段落之前结束,并且整个段落的 lettrine 设置都会丢失。将 a 添加\par
到您的 定义中\endprayer
。