楼主: llb_321
3006 8

[实际应用] 【独家发布】Latex 用listings宏包插入R代码$符号问题的解决办法 [推广有奖]

  • 3关注
  • 49粉丝

教授VIP

学科带头人

10%

还不是VIP/贵宾

-

TA的文库  其他...

LATEX & R 模板和代码

威望
2
论坛币
18020 个
通用积分
1705.1586
学术水平
407 点
热心指数
416 点
信用等级
354 点
经验
1960 点
帖子
1417
精华
1
在线时间
1035 小时
注册时间
2010-6-18
最后登录
2023-8-18

初级热心勋章 初级信用勋章 中级热心勋章 中级信用勋章 初级学术勋章

楼主
llb_321 在职认证  发表于 2021-4-20 09:08:16 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在用texlive编辑文档时,需要用listings宏包插入程序代码。
由于R的代码中经常用"$"符号定位数据,而latex通常将"$"符号作为数学公式的界定符号,尤其是在导入了amsmath、mathtools、amsthm、amsfonts、amssymb等数学符号公式相关宏包时,这样在编译文档时经常出现冲突,即使用“\$”的输入方式也会报错。

虽然我们还可以用verbatim环境输出代码,但与listings环境相比确实有点儿丑。

关于这个问题,目前网上几乎没有明确的解决方法。

如果有同学也遇到这个问题,可以尝试在文档的.cls文件中,或者在文档的参数定义部分,编辑\lstset{}部分,也就是listings环境的选项配置。

本帖隐藏的内容

并在其中查找mathescape=true,然后改成mathescape=false



这样就能基本解决了。






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:listing LaTeX Late 解决办法 list listings LATEX

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 5 观点有启发
zhou1_20 + 5 + 4 + 4 + 4 精彩帖子

总评分: 经验 + 100  论坛币 + 10  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

本帖被以下文库推荐

沙发
llb_321 在职认证  发表于 2021-4-21 07:59:05 |只看作者 |坛友微信交流群
增补:LATEX插入的R代码在#注释行中仍需输入"\$"才能正常输出,而执行代码行中需要按上述方法解决。

使用道具

藤椅
szxship 发表于 2021-4-21 09:02:37 |只看作者 |坛友微信交流群

使用道具

板凳
nkunku 发表于 2021-4-21 11:52:07 |只看作者 |坛友微信交流群
Latex 用listings宏包插入R代码$符号问题的解决办法

使用道具

报纸
tmdxyz 发表于 2021-4-22 07:24:18 |只看作者 |坛友微信交流群
楼主可否给一段代码例子,以便我们小白学习?谢谢。

使用道具

地板
schar 发表于 2021-4-22 11:47:31 |只看作者 |坛友微信交流群
  1. \usepackage{framed,color,verbatim}
  2. \definecolor{shadecolor}{rgb}{.9, .9, .9}

  3. \newenvironment{code}%
  4.    {\snugshade\verbatim}%
  5.    {\endverbatim\endsnugshade}

  6. \newenvironment{centerverbatim}{%
  7.   \par
  8.   \centering
  9.   \varwidth{\linewidth}%
  10.   \verbatim
  11. }{%
  12.   \endverbatim
  13.   \endvarwidth
  14.   \par
  15. }
复制代码


代码就用code, $完全没问题
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
llb_321 + 5 + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

7
llb_321 在职认证  发表于 2021-4-24 08:08:11 |只看作者 |坛友微信交流群
tmdxyz 发表于 2021-4-22 07:24
楼主可否给一段代码例子,以便我们小白学习?谢谢。
定义.cls文件时,
% 导入 LaTeX 宏包
\RequirePackage{listings}%排版程序源代码

% 设置宏包 listings/lstlistings
\lstset{tabsize=4,
  language=R, %
  frame=none,  %把代码用带有阴影的框圈起来
  backgroundcolor=\color[RGB]{240,240,240},%背景
  commentstyle=\tiny,  %小字注释
  %rulesepcolor=\color{red!20!green!20!blue!20},  %代码块边框为淡青色
keywordstyle=\color{black},  %代码关键字的颜色为蓝色,粗体
  showstringspaces=false,  %不显示代码字符串中间的空格标记
  stringstyle=\ttfamily,  % 代码字符串的特殊格式
  keepspaces=true,
  breakindent=22pt,
  numbers=left,  %左侧显示行号
  stepnumber=1,
  numberstyle=\scriptsize,  %行号字体用小号
  basicstyle={\footnotesize\ttfamily},
  showspaces=false,
  flexiblecolumns=true,
  breaklines=true,  %对过长的代码自动换行
  breakautoindent=true,
  breakindent=4em,
  aboveskip=1em,  %代码块边框
  fontadjust,
  captionpos=t,
  framextopmargin=1pt,framexbottommargin=1pt,abovecaptionskip=-9pt,belowcaptionskip=9pt,
  xleftmargin=2em,xrightmargin=1em,  % 设定listing左右的空白
  texcl=true,
  % 设定中文冲突,断行,列模式,数学环境输入,listing数字的样式
  extendedchars=false,columns=flexible,mathescape=false
  numbersep=-1em,
  morekeywords={in, TRUE, FALSE, filter, group, color, size}
}

使用道具

8
llb_321 在职认证  发表于 2021-4-24 08:10:22 |只看作者 |坛友微信交流群
schar 发表于 2021-4-22 11:47
代码就用code, $完全没问题
verbatim插入啥都没问题,就是有点不好看

使用道具

9
schar 发表于 2021-4-25 15:30:26 |只看作者 |坛友微信交流群
llb_321 发表于 2021-4-24 08:10
verbatim插入啥都没问题,就是有点不好看
好吧好吧

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 03:54