我的beamer
演讲中有很多\defverbatim
像这样的
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{minted}
\usemintedstyle{manni}
\newminted{SQL}{fontsize=\scriptsize,
linenos=false,
numbersep=10pt,
gobble=0,
frame=none,
framesep=5mm}
\begin{document}
\defverbatim[colored]\interfaceTime{
\begin{SQLcode}
interface Time: Object {
...
unsigned short hour();
boolean is_equal(in Time other_date);
Interval subtract_time(in Time other_time);
};
\end{SQLcode}
}
\newcommand{\Code}[2]{\verbatim{\begin{#2} #1 \end{#2}}}
\begin{frame}
\interfaceTime
\end{frame}
\begin{frame}
\Code{CREATE TABLE EMP;}{SQLcode}
\end{frame}
\end{document}
我想创建一个\newcommand
带有一些参数的自定义,以避免创建大量的\defverbatim
。这是我收到的消息
(no line number):
Runaway argument?
{\begin {SQLcode} CREATE TABLE EMP; \end {SQLcode}} \end {beamer@fram\ETC.
! File ended while scanning use of \@xverbatim.
<inserted text>
\par
<*> main.tex
答案1
不需要让事情变得比必要的更复杂,我只需\begin{SQLcode} ... \end{SQLcode}
直接使用而不需要将其包装在额外的命令层中。
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{minted}
\newminted{SQL}{fontsize=\scriptsize,
linenos=false,
numbersep=10pt,
gobble=0,
frame=none,
framesep=5mm}
\begin{document}
\begin{frame}[fragile]
text
\begin{SQLcode}
CREATE TABLE EMP;
\end{SQLcode}
text
\end{frame}
\end{document}