![围绕包含 beamer 中列表的迷你页面的框架](https://linux22.com/image/242293/%E5%9B%B4%E7%BB%95%E5%8C%85%E5%90%AB%20beamer%20%E4%B8%AD%E5%88%97%E8%A1%A8%E7%9A%84%E8%BF%B7%E4%BD%A0%E9%A1%B5%E9%9D%A2%E7%9A%84%E6%A1%86%E6%9E%B6.png)
我正在制作 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
包,它们为框架提供环境。