使用 \renewcommand{\par}{} 忽略 \par 命令?

使用 \renewcommand{\par}{} 忽略 \par 命令?

我想忽略\par预定义 LaTeX 文件中的命令。我尝试过:

\renewcommand{\par}{}

但这不起作用,因为\par它在命令内结束了段落\renewcommand

! Paragraph ended before \renew@command was complete.

有没有办法做到这一点?

答案1

您可以轻松重新定义\par

\def\par{}

但只有在非常受控的环境下这样做才是安全的,例如:

此文档不会终止,您需要终止该进程

\documentclass{article}

\begin{document}

\def\par{}

aaaaa

\hrule

\end{document}

答案2

最好的办法可能是\par在群体内部重新定义。例如

\newenvironment{specialpar}{\def\par{\ \P\ }}{\endgraf}

然后你就可以这样做

\documentclass{article}

\usepackage{kantlipsum} % for this example

\newenvironment{specialpar}{\def\par{\ \P\ }}{\endgraf}

\begin{document}

\begin{specialpar}
  Whatever you want, but knowing that \texttt{\string\par} is a special thing in here,
  so your input must be controlled. \par
  This. \par
  That. \par
  And many other things, but beware of errors.

  Another paragraph.

  And yet another.

  \kant
\end{specialpar}

\end{document}

PS:请注意,如果在同一个“TeX 段落”中堆积很多东西(即,在添加原始段落之前\par\engraf例如),这会在内存中堆积并使 TeX 工作得更多(程序每次处理适当的段落时都会喘口气)。

相关内容