texstudio中代码环境的注释中出现“_”导致编译出错,显示缺少$$符号,应该如何解决

发布于 2021-05-26 18:02:42

documentclass[cs4size]{ctexart}

     \documentclass[cs4size]{ctexart}
  \usepackage{ctex}
  %中文插入
  \author{}%作者
  \date{}%日期
  \usepackage{times}
  \usepackage{amsmath}%行列式、数学公式宏包
  \usepackage{mathtools}%P229
  \usepackage{graphicx} %图片插入宏包
  \usepackage{fancyhdr}%页眉页首插入宏包,页面设置宏包P147
  \usepackage{setspace}%行距设置
  \singlespacing%一倍行距
  \usepackage{array}
  %\pagestyle{fancy}%
  \pagestyle{plain}%没有页眉,页脚是居中的代码
  %\pagestyle{empty}%没有页眉页脚
  %\pagestyle{headings}%没有页脚,页眉是章节名称和页码
  %\pagestyle{myheadings}%没有页脚,页眉是页码和用户自定义的内容
  \renewcommand {\thetable} {\thesection{}-\arabic{table}}%设置表格编号格式
  %\renewcommand {\theequation} {\thesubsection{}-\arabic{equation}}
  \usepackage{tabularx}%表格宏包
  \usepackage{longtable}%长表格
  \usepackage{diagbox}%\\diagbox命令用来对表头进行斜线分割
  \usepackage{makecell}%makecell宏包,单独控制表项单元
  \usepackage{multirow}%该宏包提供的\multirow{行数}{宽度}{内容}命令可排版跨行的表项\multirowcell{nrow}[vmove][horalignment]{text}
  \usepackage{booktabs}%生成三线表的宏包
  \newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}%表格换行
  \usepackage{arydshln}%生成虚线
  \usepackage{rotating}%旋转宏包
  \usepackage{float}%浮动宏包
  \usepackage{lipsum}%自动功能 引用乱七八糟的东西
  \usepackage{amssymb}%引用参考宏包
  \bibliographystyle{plain}%引用参考排版样式宏包 文中引用参考使用\cite{bibid}
  \usepackage{minipage-marginpar}
  \usepackage{subfigure}%并排插入图片
  \usepackage[justification=centering]{caption}%居中
  %\usepackage{mhchem}%输入化学式的宏包
  %\usepackage{ccfonts}%公式使用Concrete字体
  \usepackage{txfonts}%效果最好的免费字体宏包
  %\usepackage{fourier}
  \usepackage{pifont}%提供带圆圈数字符号
  %\pagenumbering{roman}%修改页码格式
  \usepackage{listings}%代码环境
  \usepackage{color}
  \usepackage{xcolor}
  \lstset{columns=flexible,numbers=left,numberstyle=\footnotesize,basicstyle=\sffamily,keywordstyle=\bfseries,commentstyle=\rmfamily\itshape,stringstyle=\ttfamily}%调整代码格式,    \begin{lstlisting}[language=Matlab] \end{lstlisting}
  \lstset{
      %language={
      %[ISO]C++},       %language为,还有{[Visual]C++}
      %alsolanguage=[ANSI]C,      %可以添加很多个alsolanguage,
      language=Matlab,
      alsolanguage=Python,
      alsolanguage=Lingo,
      %alsolanguage=Java,
      %alsolanguage=VHDL等
      %alsolanguage= tcl,
      %alsolanguage= XML,
      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
  }%设置代码环境样式
    \begin{document}
    \begin{lstlisting}[language=Python]
    #wb = openpyxl.load_workbook(name)
    #sheet = wb.get_sheet_by_name(wb.sheetnames[0])
    #countyData.setdefault(d,{})
    #print('Reading   '+str(d)+'表')
    \end{lstlisting}
    \end{document}
    \begin{document}
    \begin{lstlisting}[language=Python]
    #wb = openpyxl.load_workbook(name)
    #sheet = wb.get_sheet_by_name(wb.sheetnames[0])
    #countyData.setdefault(d,{})
    #print('Reading   '+str(d)+'表')
    \end{lstlisting}
    \end{document}
    
    显示错误:Missing $ inserted. #wb = openpyxl.load_
             Extra }, or forgotten $. #wb = openpyxl.load_workbook(name)

查看更多

关注者
0
被浏览
3.2k
1 个回答
LaTeXStudio
LaTeXStudio 2021-05-26
这家伙很懒,什么也没写!

把这个注释掉就好了:

%texcl=true,

不理解的话看看 listings 的说明,这个参数是让注释里的命令变成了 LaTeX 的命令了,这样你的注释里下划线就异常了。
image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览