答案1
这个quoting
包非常有用,还可以和 TeXbook 中的一个技巧一起使用(在索引中查找 Bourbaki)。
\documentclass{article}
\usepackage{quoting,xparse}
\NewDocumentCommand{\bywhom}{m}{% the Bourbaki trick
{\nobreak\hfill\penalty50\hskip1em\null\nobreak
\hfill\mbox{\normalfont(#1)}%
\parfillskip=0pt \finalhyphendemerits=0 \par}%
}
\NewDocumentEnvironment{pquotation}{m}
{\begin{quoting}[
indentfirst=true,
leftmargin=\parindent,
rightmargin=\parindent]\itshape}
{\bywhom{#1}\end{quoting}}
\begin{document}
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
\begin{pquotation}{Jack Johnson, 2003}
`This is a quotation. This is a quotation.
This is a quotation. This is a quotation.
This is a quotation. This is a quotation.
This is a quotation. This is a quotation.
This is a quotation.'
\end{pquotation}
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
\begin{pquotation}{Jack Johnson, 2003}
`This is a quotation. This is a quotation.
This is a quotation. This is a quotation.
This is a quotation. This is a quotation.
This is a quotation. This is a quotation.
This is a quotation. This is a quotation.'
\end{pquotation}
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
This is not a quotation, this is normal text.
\end{document}
答案2
以下是基于该csquotes
包的解决方案:
\documentclass{memoir}
% filler text:
\newcommand\lipx{Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam
arcu libero, nonummy eget, consectetuer id,
vulputate a, magna.}
\usepackage{csquotes}
\SetBlockThreshold{2}
\newcommand\myblockquote[2]{%
\blockquote{\hspace*{2em}\emph{`#1'}\hfill(#2)}\par}
\begin{document}
\lipx\ \lipx
\myblockquote{\lipx}{Jack Johnson, 2003}
\lipx\ \lipx
\end{document}