我希望能够在同一文档中列出不同的 Matlab 代码清单。前三个清单来自解决方案在这里找到。
如何摆脱前 3 个 Matlab 代码设置中的细线框,同时仍保留最后一个周围的细线框lstlisting
:
以下是代码:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{xcolor}
\tcbuselibrary{listings,skins}
\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}
\usepackage[numbered,framed]{matlab-prettifier}
\lstdefinestyle{mystyle}{
numbers=left,
numberstyle=\small,
numbersep=8pt,
language=Matlab
}
\newtcblisting{mylisting}[2][]{
arc=0pt, outer arc=0pt,
listing only,
listing style=mystyle,
title=#2,
#1
}
\begin{document}
\begin{mylisting}{}
%% Accuracy Calculation
Equal_Rows = find(diff(matrix_rec,[],2) == 0);
percent_success = (size(Equal_Rows,1)/numFolders) * 100
\end{mylisting}
\begin{mylisting}[hbox]{}
%% Accuracy Calculation
Equal_Rows = find(diff(matrix_rec,[],2) == 0);
percent_success = (size(Equal_Rows,1)/numFolders) * 100
\end{mylisting}
\begin{mylisting}[hbox,enhanced,drop shadow]{Accuracy Calculation}
Equal_Rows = find(diff(matrix_rec,[],2) == 0);
percent_success = (size(Equal_Rows,1)/numFolders) * 100
\end{mylisting}
\begin{lstlisting}[
backgroundcolor=\color{blue!05},
style=Matlab-editor,
basicstyle=\ttfamily\small
]
%% Accuracy Calculation
Equal_Rows = find(diff(matrix_rec,[],2) == 0);
percent_success = (size(Equal_Rows,1)/numFolders) * 100
\end{lstlisting}
\end{document}
答案1
您可以mcode
使用framed
选项加载包,这会在代码周围添加细(不需要的)框架。您的mylisting
环境是来自包的彩色框tcolorbox
,它添加了其他框架围绕它。这就是为什么有两个框架。
要删除内部框架,只需framed
在加载时删除该选项mcode
:
\usepackage[numbered,autolinebreaks,useliterate]{mcode}
评论:你正在使用两个不同的包来实现相同的目的。如果你不小心,你将要输出不一致。由于这两个包都listings
在后台使用,因此它们会产生不良的交互:例如,从包framed
中删除后mcode
,列表中的行号突然matlab-prettifier
变为外部框架 - 即使你没有改变任何东西!请尝试决定一个包1并坚持下去。你能设置matlab-prettifier
为看起来像您mcode
现在的列表,或反过来。
1 matlab-prettifier
较新,功能更多mcode
,并且附带大多数标准 LaTeX 安装