listings和beamer的兼容性问题

17 篇文章 0 订阅
2 篇文章 0 订阅

使用{listings}宏包以及依赖于{listings}的宏包,如{matlab-prettifier}和{mcode}等,在{beamer}中都有兼容性问题.

解决的办法是给{frame}环境添加选项[fragile]:

\begin{frame}[fragile]
\frametitle{XeLatex中自定义matlab代码语法高亮-标题}
下面是Matlab代码,显示效果如下:
\begin{lstlisting}
s=0;
for n=1:0.5:10
    s=s+n;
end
disp(s)
\end{lstlisting}
显示效果如上.
\end{frame}


 

上面的代码可以正确显示matlab语法高亮.

下面给出完整代码,编译环境MikTex2.9+Win7+Xelatex,在windows中强烈推荐MikTex,而不是TexLive.看看发行说明再使用过后你就会感受很深!

\documentclass[mathserif]{beamer}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{ctex}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{color}
\usepackage{textcomp} % 应该加上,否则容易报错
%===========================================================
\definecolor{myred}{rgb}{0.9,0,0}
\definecolor{mygreen}{rgb}{0,0.9,0}
\definecolor{myblue}{rgb}{0,0,0.9}
\definecolor{DarkGreen}{rgb}{0.0,0.4,0.0}
\definecolor{myPurple}{rgb}{0.5,0.0,0.5}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%注意begin{frame}[fragile]
%==========================================================
\lstloadlanguages{Matlab}
\lstset{language=Matlab,
	frame=single,                           % single framed
	basicstyle=\small\ttfamily,
	keywordstyle=\color{myblue}\bfseries,  % primitive funs in bold blue
	stringstyle=\color{myPurple},             % strings in purple
	showstringspaces=false,
	commentstyle=\usefont{T1}{pcr}{m}{sl}\color{DarkGreen}\small,
	tabsize=4,
	% more standard MATLAB funcs
	morekeywords={for,end,if,elseif,break,switch,case,while,do,on, off, disp,plot,subplot,grid,hold,clc,clear,figure,handles,get,set,imwrite,aviread, strcat,aviinfo},
	morecomment=[l][\color{myblue}]{...},     % line continuation (...) like blue comment
	numbers=left,
	numberstyle=\tiny\color{myblue},
	firstnumber=1,
	stepnumber=1
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%----------------------------------------------
\begin{frame}[fragile]
\frametitle{自定义matlab代码-标题}
下面是matlab代码,显示效果如下:
\begin{lstlisting}
s=0;
for n=1:0.5:10
    s=s+n;
end
disp(s)
\end{lstlisting}
显示效果如上.
\end{frame}
%-------------------------------------------
\end{document}

 

使用{listings}宏包在{article}中等问题会少一点.

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值