我可以暂时重新定义 minipage 以便我可以编辑页面而不用注释掉 minipage 的每个实例吗?

我可以暂时重新定义 minipage 以便我可以编辑页面而不用注释掉 minipage 的每个实例吗?

更新:

出了点问题!我以为 Don Hosek 的解决方案有效,但当我再次尝试时,出现了错误:

未定义控制序列。l.3 \RenewDocumentEnvironment {minipage}{m} %

重述问题并提供 MWE:我需要编辑数十个 LaTeX 文档的 \minipage 片段。为了便于编辑和创建 xvdi 进行校对,我使用了 article 类的最小 LaTeX 文档 frame.tex。但为了便于编辑和校对,我需要在 frame.tex 中将 minipage 环境重新定义为 NO-OP,就好像 \minipage 命令对被注释掉了一样;否则,就需要注释掉我正在编辑的文档中 \minipage 命令的每个实例。

文件frame.tex

\documentclass[letterpaper]{article}

\RenewDocumentEnvironment{minipage}{m} %
                                    {} %
                                    {} %

\RenewDocumentEnvironment{center}{} %
                                 {} %
                                 {} %

\begin{document}

\input{sample}

\end{document}

文件sample.tex

\begin{center}
\begin{minipage}{6in}

Text to be edited.

\end{minipage}\par
\end{center}

答案1

我不完全清楚你想做什么,但要重新定义一个你可以使用的环境¹

\RenewDocumentEnvironment{minipage}{m} % ❶
      {} % ❷
      {} % ❸

第一组括号 ❶ 定义了环境的参数(并将minipage宽度作为必需参数,因此我们将其放在m这里)。第二组括号 ❷ 定义了应\begin{minipage}该做什么(你想要一个无操作),第三组括号 ❸ 定义了应\end{minipage}该做什么。


  1. 一般来说,您应该更喜欢\NewDocumentEnvironment\NewDocumentCommand和他们的亲戚,而不是\newenvironment\newcommand和他们的亲戚。

答案2

使用 \renewenvironment{minipage} 解决了问题。解决方案并不完美:它在输出的第一行留下了一个瑕疵。但它已经足够好了,满足了我编辑和校对的需求。

相关内容