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

20 篇文章 12 订阅

我们要使用的核心宏包是 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

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值