以下 MWE 产生四个段落:
- 左对齐,悬挂缩进
- 左对齐,悬挂缩进
- 右对齐,左侧有“悬挂缩进”
- 右对齐,并带有所需的“悬挂缩进”
问题是:我怎样才能以最简单的方式写出第 4 段?
\documentclass{article}
\begin{document}
\hangindent=3cm \noindent Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\begin{flushleft}
\hangindent=3cm Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{flushleft}
\begin{flushright}
\hangindent=3cm Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{flushright}
\begin{flushright}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\\
incididunt ut labore et dolore magna aliqua. Ut enim ad minim \hspace{3cm}~\\
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip \hspace{3cm}~\\
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in \hspace{3cm}~\\
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur \hspace{3cm}~\\
sint occaecat cupidatat non proident, sunt in culpa qui officia \hspace{3cm}~\\
deserunt mollit anim id est laborum.\hspace{3cm}~
\end{flushright}
\end{document}
答案1
可以使用(负数)\hangindent
:
\documentclass{article}
\newenvironment{flushrighthang}[1][3cm]{\begin{flushright}\hangindent-#1}
{\end{flushright}}
\begin{document}
\begin{flushrighthang}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{flushrighthang}
\begin{flushrighthang}[6cm]
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{flushrighthang}
\end{document}
答案2
你可能想把它包装起来,\newenvironment
但这可以解决问题:
\newlength{\shortline}
\setlength{\shortline}{\textwidth}
\addtolength{\shortline}{-3cm}
\begin{flushright}
\parshape 2 0pt \textwidth 0pt \shortline Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{flushright}
答案3
与Don的回答类似,但是环境接受具有指定形状的几个段落。
\documentclass{article}
\newenvironment{almostflushright}[1]
{% #1 is the amount of hanging
\par\addvspace{\topsep}
\raggedleft
\everypar{\parshape 2 0pt \columnwidth 0pt \dimexpr\columnwidth - #1\relax}
}
{\par\addvspace{\topsep}}
\begin{document}
\noindent\hfill\makebox[3cm][s]{\hrulefill}\par % check the indent
\begin{almostflushright}{3cm}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
\end{almostflushright}
\end{document}