如何在另一个文档中说明和执行 MWE

如何在另一个文档中说明和执行 MWE

显示完整 LaTeX 文档的输出我提供了类似问题的部分解决方案。以下代码尝试模拟在另一个文档(例如 LaTeX 教程)中运行完整的 MWE。代码生成如下图所示的输出:

在此处输入图片描述

框的顶部是代码,底部是 LaTeX 输出。代码将begin{document}...\end{document}宏置于沙盒中,以便在示例代码中禁用它们,并且仅对它们进行排版。

我正在寻找一种方法来导入包或类,并仅在示例中本地运行它们。如何实现?

一种方法是让ProvidesPackage等...清空,禁用\@preamblecmds并使用globaldefs以确保代码仅在组内运行。

\documentclass{article}
\usepackage[listings]{tcolorbox}
\usepackage{amsmath,amsfonts,lipsum}
\begin{document}
\makeatletter
\gdef\@preamblecmds{}
\def\documentclass#1{}
\def\usepackage#1{}
\let\Document\document
\let\Enddocument\enddocument
\def\document{}
\def\enddocument{}
\gdef\after@@{\let\enddocument\Enddocument\let\document\Document}
\newenvironment{tex}{
  \tcblisting{boxrule=1pt}}
{\endtcblisting\aftergroup\after@@}
% auto example
\begin{tex}
\documentclass{article}
\usepackage{amsmath}
\begin{document}
 \section{Introduction}
   Whence we conclude that $\gamma$ is a primitive root modulo $p$. But
  \begin{align*}
  \gamma^{p-1}-1 &=
     g^{p-1} - 1 + \frac{p-1}{1!}g^{p-2}xp +
        \frac{(p-1)(p-2)}{2!}g^{p-3}x^2p^2 + \ldots \\
    &= p\left(kp + \frac{p-1}{1!}g^{p-2}x +
        \frac{(p-1)(p-2)}{2!}g^{p-3}x^2p + \ldots\right).
  \end{align*}
\end{document}
\end{tex}
\bigskip
\lipsum[1]
\end{document}

答案1

也许您可以使用该docmute包(最近更新)。它可以满足您的要求,尽管您仍然需要手动重置计数器。

在 MWE 中,我已经将它用于您的代码(写在主文档中),也用于从testing.tex您应该预先创建的文件中导入的代码。

\documentclass{article}

\usepackage[listings]{tcolorbox}
\usepackage{amsmath,amsfonts,lipsum}

\usepackage{docmute}

\newenvironment{tex}
    {\tcblisting{boxrule=1pt}}
    {\endtcblisting\bigskip}

\newcommand{\inputtex}[1]{\tcbinputlisting{listing file=#1,boxrule=1pt}\bigskip}

\begin{document}

\begin{tex}
\documentclass{article}
\usepackage{amsmath}
\begin{document}
 \section{Introduction}
   Whence we conclude that $\gamma$ is a primitive root modulo $p$. But
  \begin{align*}
  \gamma^{p-1}-1 &=
     g^{p-1} - 1 + \frac{p-1}{1!}g^{p-2}xp +
        \frac{(p-1)(p-2)}{2!}g^{p-3}x^2p^2 + \ldots \\
    &= p\left(kp + \frac{p-1}{1!}g^{p-2}x +
        \frac{(p-1)(p-2)}{2!}g^{p-3}x^2p + \ldots\right).
  \end{align*}
\end{document}
\end{tex}
\setcounter{section}{0}

\lipsum[1]

\inputtex{testing.tex}

\lipsum[2]

\end{document}

相关内容