围绕包含 beamer 中列表的迷你页面的框架

围绕包含 beamer 中列表的迷你页面的框架

我正在制作 LaTeX 课程的表单,希望有几张表单,左侧是源文档的示例,右侧是其输出。我现在正在使用列表和小页面,但我还希望页面周围有一个固定宽度和高度的框架。

我现在拥有的是:

\documentclass{beamer}
\usepackage{listings}

\begin{document}

\begin{frame}[fragile]{The \LaTeX\ language}

% Source code:
\begin{columns}[T]
\column{0.45\textwidth}
\begin{center}
\LaTeX\ code:
%\begin{lrbox}\mylistingbox
\begin{minipage}[t][0.7\textheight]{\textwidth}
\begin{lstlisting}
An equation:
\[
  1 + 1 = 2
\]
\end{lstlisting}
\end{minipage}
%\end{lrbox}
%\fbox{\usebox\mylistingbox}
\end{center}

% Output
\column{0.45\textwidth}
\begin{center}
Output:
\fbox{
\begin{minipage}[t][0.7\textheight]{1\textwidth}
An equation:
\[
  1 + 1 = 2
\]
\end{minipage}}
\end{center}
\end{columns}
\end{frame}
\end{document}

这有效,但只在右侧(输出)周围放置了一个框架。如果我\fbox{}在左侧尝试同样的操作,则不起作用。

我怎样才能在带有列表的小页面周围添加一个框架?

答案1

虽然这不能解决你的具体问题,但我强烈建议你考虑使用包裹showexpl它利用了listings包。这消除了 LaTeX 代码的重复,因此不容易出错。

要控制字体,请使用basicstyle=...为列表设置它。输出字体将与文档的其余部分一致。如果您只想调整输出,LTXexample您可以使用preset=...指定在排版示例代码之前要执行的命令。

在此处输入图片描述

\documentclass{beamer}
\usepackage{xcolor}
\usepackage{showexpl}% already includes listings package

\usepackage{adjustbox}

\lstdefinestyle{demoLatexStyle}{
    basicstyle=\small\ttfamily,% control font of code
    preset=\small,% adjust font size of output
    numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=5pt,
    frame=tlbr,
    pos=r,% want output on right
    backgroundcolor=\color{yellow!30},
    basicstyle=\ttfamily,
    width=0.50\linewidth,
}
\lstloadlanguages{[LaTeX]TeX}

\begin{document}

\begin{frame}[fragile]{The \LaTeX\ language}
\makebox[0.50\linewidth][c]{\LaTeX\ code:}%  Center titles over
\makebox[0.50\linewidth][c]{Output:}%        half the \linewidth

\begin{LTXexample}[style=demoLatexStyle]
An equation:
\[
  1 + 1 = 2
\]
\end{LTXexample}
\end{frame}
\end{document}

答案2

宏参数中不能有逐字内容。您需要先将内容装箱,就像您在注释掉的代码中所做的那样。我编写了这个realboxes包来提供大多数\XXXbox宏的变体,这些宏会将其“参数”装箱。对于您的情况,只需加载realboxes并使用\Fbox而不是。后面\fbox还应该有一个 ,以避免从下面的换行符那里得到一个空格。%{

\usepackage{realboxes}
%...

\Fbox{%
\begin{minipage}[t][0.7\textheight]{1\textwidth}
An equation:
\[
  1 + 1 = 2
\]
\end{minipage}}

还有Fbox环境。

您也可以使用我的adjustbox包:

\usepackage{adjustbox}
% ...

\begin{adjustbox}{minipage=[t][0.7\textheight]{1\textwidth},fbox}
An equation:
\[
  1 + 1 = 2
\]
\end{adjustbox}

您可以添加许多其他键(选项),例如center使内容居中等等。

最后,还有framed和(更好的)mdframed包,它们为框架提供环境。

相关内容