考虑一下代码
\documentclass{book}
\begin{document}
\thispagestyle{empty}
\Large
\begin{center}
\begin{minipage}{5.75in}\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}%
\textbf{``The Bitterness of Poor Quality Remains Long After the Sweetness of Low Price is Forgotten.'' \emph{---Benjamin Franklin}}
\end{minipage}
\vspace{25pt}
\begin{minipage}{5.75in}\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}%
\textbf{``The Bitterness of Poor Quality Remains Long After the Sweetness of Low Price is Forgotten.'' \\[3pt] \hfill \emph{---Benjamin Franklin}}
\end{minipage}
\end{center}
\end{document}
产生输出
使用这一系列命令\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}%
可以使小页面内容左右对齐,但最后一行保持居中---如第一个小页面输出中显示的那样。
我希望小页面中的所有行都发生这种情况,除了最后一行,其中包含一个人的名字---我希望这能发生。
我尝试使用\\[3pt]
后跟\hfill
,但正如您在第二个 minipage 输出中看到的那样,这不仅没有产生目标,而且还失去了紧接着之前的行的居中。
评论:使用\vspace{3pt}
或\vspace*{3pt}
都会产生相同的不良结果。但是,使用弃用的\vskip 3pt
至少会使倒数第二行居中,而不是使其左对齐 --- 虽然它不会强制将 ---Benjamin Franklin 移到右侧。
这可能并不重要,但是我用编译了 MWE 代码lualatex
,但我希望也能够使用用编译的代码来做这样的事情pdflatex
。
问题:如何修改上述代码,以便我可以显示由 生成的主要内容,\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}%
但最后一行,即“---PERSON'S NAME”显示在最右边?
谢谢。
答案1
您需要两个段落,最后一行居中,另一行左侧不齐:
\documentclass{book}
\begin{document}
\thispagestyle{empty}
\Large
\begin{center}
\begin{minipage}{5.75in}
\bfseries
\leftskip\fill\rightskip-\leftskip\parfillskip\stretch{2}%
``The Bitterness of Poor Quality Remains Long After the Sweetness of
Low Price is Forgotten.''
\raggedleft
\emph{---Benjamin Franklin}
\end{minipage}
\end{center}
\end{document}
答案2
首先,您要避免必须明确输入所有这些命令;将来您可能不再喜欢这种渲染方式,并且……
简单的想法是将作者姓名排版在单独的段落中,右侧对齐。
\NewDocumentCommand{\nicequote}{sO{5.75in}O{c}+mm}{%
\IfBooleanF{#1}{\begin{center}}%
\begin{minipage}{#2}[#3]
\bfseries
#4\par
\raggedright---\mbox{\itshape #5}
\end{minipage}
\IfBooleanF{#1}{\end{center}}%
}
这样,\nicequote*
就可以避免center
并允许您将两个引号放在一起。
例子。
\documentclass{article}
\usepackage{geometry}
\NewDocumentCommand{\nicequote}{sO{5.75in}O{c}+mm}{%
\IfBooleanF{#1}{\begin{center}}%
\begin{minipage}[#3]{#2}
\bfseries
#4\par
\raggedleft\mbox{---\itshape #5}
\end{minipage}
\IfBooleanF{#1}{\end{center}}%
}
\begin{document}
\nicequote{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}
\nicequote[4in]{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}
\begin{center}
\nicequote*[3in]{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}\qquad
\nicequote*[2in]{
``The buck stops here''
}{Harry S Truman}
\end{center}
\begin{center}
\nicequote*[3in][t]{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}\qquad
\nicequote*[2in][t]{
``The buck stops here''
}{Harry S Truman}
\end{center}
\end{document}
利用“布尔巴基技巧”可能有所改进
\documentclass{article}
\usepackage{geometry}
\NewDocumentCommand{\nicequote}{sO{5.75in}O{c}+mm}{%
\IfBooleanF{#1}{\begin{center}}%
\begin{minipage}[#3]{#2}
\bfseries
#4%
{\unskip\nobreak\hfil\penalty50
\qquad\mbox{}\nobreak\hfil\mbox{---\itshape #5}%
\setlength{\parfillskip}{0pt}\finalhyphendemerits=0 \par}
\end{minipage}
\IfBooleanF{#1}{\end{center}}%
}
\begin{document}
\nicequote{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}
\nicequote[4in]{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}
\begin{center}
\nicequote*[3in]{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}\qquad
\nicequote*[2in]{
``The buck stops here''
}{Harry S Truman}
\end{center}
\begin{center}
\nicequote*[3in][t]{
``The Bitterness of Poor Quality Remains Long After
the Sweetness of Low Price is Forgotten.''
}{Benjamin Franklin}\qquad
\nicequote*[2in][t]{
``The buck stops here''
}{Harry S Truman}
\end{center}
\end{document}