在 verbatim/lstlisting 中编译 LaTeX 代码

在 verbatim/lstlisting 中编译 LaTeX 代码

beamer对于主题为 的演示文稿(在 中)如何使用 LaTeX 撰写论文在我的大学里,我想添加大量的 LaTeX 代码片段并编译它们。目前,我.tex为每个示例准备了一个单独的文件,并单独编译每个文件。然后我使用 包含必要的行(例如没有前言)lstlisting并通过 包含编译后的 PDF \includegraphics

这很麻烦。当然,我可以自动编译数十个文件,例如使用latexmk,但我必须跟踪并打开这么多文件。只需在演示文稿中输入两次相同的代码,一次逐字输入,一次以纯代码输入,以便让 LaTeX 编译此代码片段,这是最好的选择,但随后我必须将所有字体重置为标准字体article而不是beamer,并且本地设置(例如使用enumitem)可能会与 中的其他设置冲突beamer

您知道最好的解决方案是什么吗?

答案1

tcblisting从包中查看tcolorbox。它允许自动显示源和结果。

这里有一个简短的例子可以帮助您入门,但请查看文档,因为它带有大量选项来定制结果:

% !TeX program = txs:///arara
% arara: pdflatex: {synctex: on, interaction: nonstopmode, shell: yes}
\documentclass{beamer}

\usepackage[most]{tcolorbox}

\begin{document}

\begin{frame}[fragile]
\begin{tcblisting}{before lower=\rmfamily}
\LaTeX\ example with serif font like in article 
\end{tcblisting}
\end{frame}

\begin{frame}[fragile]
\begin{tcblisting}{
  listing and comment,
  pdf comment,
  freeze pdf,
  compilable listing,
  run pdflatex,
}
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item test
\end{enumerate}
\end{document}
\end{tcblisting}

\end{frame}

\end{document}

在此处输入图片描述

相关内容