Пакет латексных списков не может включать код Matlab с символом процента - PullRequest
0 голосов
/ 23 марта 2019

Я пишу отчет проекта Matlab с использованием латекса. Я использую команду lstinputlisting в пакете listings для анализа файла кода Matlab.

Исходный код Matlab имеет следующие строки.

s = functions(solvers{idx});
fname = s.function;
fprintf("%s : \n", fname);

Символ процента в файле кода запускает ошибку компиляции.

! LaTeX Error: Environment CJK* undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.19         fprintf("%
                       s : \n", fname);

Когда я меняю язык с Matlab на C, ошибка исчезает. Я предполагаю, что есть некоторые ошибки в файле синтаксиса Matlab внутри пакета листингов.

Есть ли способ решить эту проблему?

Моя конфигурация списков

\lstset{%
    language = Matlab,
    tabsize=4,
    frame=shadowbox, %把代码用带有阴影的框圈起来
    commentstyle=\color{red!50!green!50!blue!50},%浅灰色的注释
    rulesepcolor=\color{red!20!green!20!blue!20},%代码块边框为淡青色
    keywordstyle=\color{blue!90}\bfseries, %代码关键字的颜色为蓝色,粗体
    showstringspaces=false,%不显示代码字符串中间的空格标记
    stringstyle=\ttfamily, % 代码字符串的特殊格式
    keepspaces=true, %
    breakindent=22pt, %
    numbers=left,%左侧显示行号 往左靠,还可以为right,或none,即不加行号
    stepnumber=1,%若设置为2,则显示行号为1,3,5,即stepnumber为公差,默认stepnumber=1
    %numberstyle=\tiny, %行号字体用小号
    numberstyle={\color[RGB]{0,192,192}\tiny} ,%设置行号的大小,大小有tiny,scriptsize,footnotesize,small,normalsize,large等
    numbersep=8pt,  %设置行号与代码的距离,默认是5pt
    basicstyle=\footnotesize, % 这句设置代码的大小
    showspaces=false, %
    flexiblecolumns=true, %
    breaklines=true, %对过长的代码自动换行
    breakautoindent=true,%
    breakindent=4em, %
    escapebegin=\begin{CJK*}{GBK}{hei},escapeend=\end{CJK*},
    aboveskip=1em, %代码块边框
    tabsize=2,
    showstringspaces=false, %不显示字符串中的空格
    backgroundcolor=\color[RGB]{245,245,244},   %代码背景色
    %backgroundcolor=\color[rgb]{0.91,0.91,0.91}    %添加背景色
    escapeinside=``,  %在``里显示中文
    %% added by http://bbs.ctex.org/viewthread.php?tid=53451
    fontadjust,
    captionpos=t,
framextopmargin=2pt,framexbottommargin=2pt,abovecaptionskip=-3pt,belowcaptionskip=3pt,
    xleftmargin=4em,xrightmargin=4em, % 设定listing左右的空白
    texcl=true,
    % 设定中文冲突,断行,列模式,数学环境输入,listing数字的样式
    extendedchars=false,columns=flexible,mathescape=true
                 % numbersep=-1em
}

И я использую \lstinputlisting{./code/main.m} для включения файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...