定义使用 mcode.sty 显示 Matlab 代码并引用代码时的起始行号

定义使用 mcode.sty 显示 Matlab 代码并引用代码时的起始行号

我想使用 mcode.sty 将部分 Matlab 代码包含到我的 LaTeX 文档中。以下是 MWE:

\documentclass[b5paper, 10pt, twoside, openright, dvipsnames,cmyk]{report}
\usepackage{listings}   % Is this package necessary?
\usepackage[framed,numbered,autolinebreaks]{mcode}
\begin{document}
Figure~\ref{fig:binarysearch} doesnt work!
\begin{figure}
\label{fig:binarysearch}
\lstinputlisting{pics/met/binarysearch.m}
\caption[Matlab code for the half-interval search method]
    {Matlab code for the half-interval search method}
\end{figure}
\end{document}

有没有办法定义每个包含的代码段从哪个行号开始?假设我想从第 6 行开始。如何实现?默认值(自然)为 1。

我已将代码放在图形环境中,我想将其作为图形引用。但是,在文本中引用该图形不起作用。编译后的文件写入的??不是图形引用。

答案1

下面的代码解决了第一个问题:

\lstinputlisting[firstnumber=6]{{pics/met/binarysearch.m}}

firstnumber定义起始行号。

第二个问题:代码顺序错误。以下代码是正确的:

\begin{figure}[htb]
    \centering
    \lstinputlisting[firstnumber=6]{pics/met/binarysearch.m}
    \caption[Matlab code for the half-interval search method]
        {Matlab code for the half-interval search method}
    \label{fig:binarysearch}
\end{figure}

相关内容