定义一个命令来影响所有内容直到段落结束?

定义一个命令来影响所有内容直到段落结束?

是否可以定义一个命令使其影响到当前段落结束之前的所有内容?

作为一个最小的例子,我尝试使用类似以下的语法定义一个命令:

\documentclass{minimal}
\begin{document}

\fancycommand Laugh, and the world laughs with you.
Weep, and you weep alone.

\end{document}

Where\fancycommand会影响同一段落中的所有后续文本,包括任何换行符(例如,进行多次文本转换),但不会影响任何后续段落。该命令不能在段落的其余部分周围使用括号。

如果这不可能,那么是否可以做类似的事情直到当前行结束?

答案1

您可以用\par它作为分隔符并将段落作为一个参数进行扫描。

\def\fancycommand #1\par{#1\par}

请注意,您需要重新添加\par

答案2

一种可能性是

\def\fancycommand{%
  \begingroup\def\par{\endgroup\par}%
% <other setup>
}

这很大程度上取决于你要做什么<other setup>。例如,这是一个斜体版本,只需\itshape<other setup>

在此处输入图片描述

这里的诀窍是\endgroup会移除 的重新定义\par,因此插入的\par将是 TeX 遇到 时的内容\fancycommand。当然,\par应该有一个 (或一个空行) 以便正确终止特殊设置。

相关内容