我们要使用的核心宏包是 listingsmatlab-prettifier。其中 listings 是为了插入代码,matlab-prettifier 提供了很好的配色方案。

最小工作示例如下:

% !TEX program = xelatex
\documentclass{ctexart}
%---------------优雅的插入MATLAB代码---------%
\usepackage{lipsum,zhlipsum} %生成一些测试文本
\usepackage{listings,matlab-prettifier} % MATLAB 美化包
\lstset{style=Matlab-editor,numbers      = left,frame        = single,
}
\begin{document}
\tableofcontents
\newpage
\zhlipsum[1-2]
\lstinputlisting[caption={\bf main.m},]{code/main.m}
\end{document}

效果如图


注意事项 1

listings 宏包本身就能实现插入代码的需求,但是配色很难看。 matlab-prettifier 提供了非常好的配色方案,而且对比 mcode 宏包,matlab-prettifier 已被 texlive 收录,无需自己下载。

注意事项 2

.m 文件要放在 code 文件下,(因为我们引用的时候是code/main.m 。之所以不放在根目录下,是因为这样比较整齐)

注意事项 3

如果发生了中文字体乱码的情况,这是因为MATLAB默认把 .m 文件保存成 GBK 格式的,但 listings 读取代码的时候,默认按照 UTF-8 的编码格式读取,所以会发生乱码。(应该是这个问题,编码这方面我不太懂)

所以我们需要保存 .m 文件的时候保存成 UTF-8 的编码格式。如果你的MATLAB版本比较高,(实测 2020a 可以),可以在左上角

找到这个另存为。

然后选择 UTF-8 即可

如果你的MATLAB版本比较低,没有这个改变编码格式的功能。(那么我建议你更新安装最新MATLAB) 也可以这样做:

.m 文件的后缀改成 .txt 然后通过记事本将编码修改成 UTF-8,然后再改后缀成 .m 就好了

记事本文本文件如何更改设置编码(两种方法)

注意事项 4

如果你觉得这个代码还是不好看,可以查阅 listings 的手册自行设置。


2022年4月7日17:25:34

优雅的在latex中插入MATLAB代码 | 解决MATLAB代码中文乱码问题相关推荐

  1. matlab mnl,LaTex中插入VISO 和 MATLAB 经验总结

    LaTex中插入VISO图形 1.  在VISO中,调整图形大小. [文件]-->[页面设置]-->[页面尺寸]-->[调整大小以适合绘图内容]-->[确定] 这样,图形就可自 ...

  2. 在Latex中插入Python代码

    这里指的插入是指最终能在生成的pdf中显示高亮的Python代码. 在Latex中插入Python代码,需要一个第三发的宏包pythonhighlight: https://github.com/ol ...

  3. latex附录中放python代码_在Latex中插入Python代码

    这里指的插入是指最终能在生成的pdf中显示高亮的Python代码. 在Latex中插入Python代码,需要一个第三发的宏包pythonhighlight: https://github.com/ol ...

  4. LaTex 中插入visio图片

    LaTex 中插入visio图片 文件格式转变过程 .vsdx->.pdf->.eps->命令插入 下面介绍如何在LaTeX中插入.eps格式的图片. 第一步:生成.eps格式的图片 ...

  5. latex中插入两张子图片

    背景 如何在latex中插入两张子图片呢? 步骤 参照下面的代码: \begin{figure}[htbp] \label{fig:3} % Give a unique label \quad \su ...

  6. Latex中插入图片

    1.Latex的插图 在Latex中使用插图一般有两种方式,一种是插入事先准备好的图片,另一种是使用Latex代码直接在文档中画图.我们一般常见的使用都是第一种,准备好图片,然后直接插入在我们文档当中 ...

  7. 解决LaTex中插入Visio画图有多余边框的问题

    解决LaTex中插入Visio画图有多余边框的问题 参考文章: (1)解决LaTex中插入Visio画图有多余边框的问题 (2)https://www.cnblogs.com/tianshifu/p/ ...

  8. latex中插入visio矢量图的方法

    其实,我们用visio画的都是矢量图,只是我们通常转换成位图(jpg等格式)后再使用,这样其实就失去了矢量图的价值了.这里讲一种在latex中插入viso生成的矢量图的方法. 首先,在我们的电脑中安装 ...

  9. latex中插入图片以及固定图片位置

    如有帮助,请随手点赞. latex中插入图片以及固定图片位置 需要在引言部分加入下面两条命令: \usepackage{graphicx} \usepackage{float} 添加图片时,写下以下命 ...

最新文章

  1. 【转】简述configure、pkg-config、pkg_config_path三者的关系
  2. Java 理论与实践: 用弱引用堵住内存泄漏---转载
  3. R运行大数据的过程中遇到的问题:不能有负长度矢量
  4. 怎么修改html的空格大小,如何改变空格的大小 word空格间隔很大怎么调整
  5. [转]在python中删除list中元素的3种方法:remove、pop、del
  6. java中ImageIcon路径问题
  7. java技术学习路线
  8. 编译 scintilla 并且缩小 SciLexer的 体积的做法
  9. VC安装驱动详细解释
  10. 电桥的原理,及非线性误差
  11. QQ客户端管理聊天记录漫游功能 | 解决经常弹窗消息漫游安全验证,QQ服务独立密码的问题
  12. Mac创建自签名的代码证书
  13. 开发Java程序的工具
  14. 工科硕士毕业14年,谈谈我的经验教训
  15. oracle ssd加速,联合评测 | Intel Optane SSD 有效加速SmartX 超融合在Oracle等场景下的系统性能...
  16. SpringBoot微信点餐开源系统
  17. 哈工大版理论力学和濮良贵版《机械设计》、张宇数学二等视频和试卷分享
  18. Java scripr的函数
  19. MogaFX—老挝央行禁止货币兑换单位出售外币
  20. layui 下拉框三级联动

热门文章

  1. MyBatis Generator如何实现MYSQL分页插件
  2. 新手一看就懂的Spring Bean生命周期
  3. hive 函数使用详解
  4. iapp保存图片控件中的图片,iapp编程怎么添加图片
  5. 文献速递第2期:fNIRS的近期研究
  6. Nvidia显示设置不可用,您当前未使用连接到NVIDIA GPU的显示器
  7. 产品上亚马逊都会需要什么认证?CPC认证FCC认证EPA,FDA,ce 常用产品认证汇总
  8. 3DMAX角色建模,人物头像建模!次世代游戏建模技巧全解
  9. thinkphp3.2对接短信验证码平台代码
  10. oppo便签误删怎么办_OPPO手机便签删除了怎么恢复