Parshape 在组内无效

Parshape 在组内无效

在下面的 MWE 中,\parshape命令的行为符合预期。但是,如果您添加分组(通过取消注释标有 的两行(*)),则似乎没有任何效果!在组内时,如何使其表现得像在未分组设置中一样?(顺便说一句,我想要一个组的原因是我想使用类似的命令,\small并在完成后自动重置它。)

\documentclass{article}

\begin{document}

%{ % (*)
\def\wide{0em \linewidth}
\def\narrow{5em \dimexpr\linewidth-5em}

\parshape3 \wide\narrow\wide
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Donec cursus turpis et leo mollis, ac efficitur nulla vehicula. 
Ut vel dolor sit amet libero tempus consequat. 
Aliquam non auctor leo. 
Ut auctor lacinia nisi. 
Duis id venenatis quam, ut suscipit libero. 
Curabitur nisi enim, vehicula et massa quis, pharetra tincidunt nisi. 
Morbi luctus nibh urna, suscipit rhoncus mi sodales quis.
%} % (*)

\end{document}

答案1

影响段落排版的各种因素(例如\parshape\centering\baselineskip\leftskip仅在段落末尾生效。这意味着,如果段落设置在组内,则必须明确使用\par或空行结束组内的段落。

\documentclass{article}

\begin{document}

{ % (*)
\def\wide{0em \linewidth}
\def\narrow{5em \dimexpr\linewidth-5em}

\parshape3 \wide\narrow\wide
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Donec cursus turpis et leo mollis, ac efficitur nulla vehicula. 
Ut vel dolor sit amet libero tempus consequat. 
Aliquam non auctor leo. 
Ut auctor lacinia nisi. 
Duis id venenatis quam, ut suscipit libero. 
Curabitur nisi enim, vehicula et massa quis, pharetra tincidunt nisi. 
Morbi luctus nibh urna, suscipit rhoncus mi sodales quis.
\par
} % (*)

\end{document}

output of code

相关内容