sjtug / SJTUThesis

上海交通大学 LaTeX 论文模板 | Shanghai Jiao Tong University LaTeX Thesis Template
Apache License 2.0
3.28k stars 787 forks source link

feat: add support for minted package #859

Closed stdrc closed 1 year ago

stdrc commented 1 year ago

Signed-off-by: Richard Chien stdrc@outlook.com

setup.tex 中添加了一些对 minted 宏包的配置,使可以通过下面 TeX 添加带有代码高亮的“代码清单”浮动体:

\begin{listing}[!hpt]
  \caption{代码示例}
  \label{code:codelisting}
  \begin{minted}{python}
    def hello():
        foo = bar()
  \end{minted}
\end{listing}

效果图:

截屏2022-11-12 17 56 05

由于 minted 环境依赖 Pygments,没安装的话无法编译论文,所以示例里面把使用样例注释掉并添加了相关提醒。

LogCreative commented 1 year ago

由于 minted 安装不便,以及在线平台上的可用性存在区别:Overleaf 可以使用,而校内平台禁用了 --shell-escape 编译选项^1。所以我认为可能难以汇入主线,直接引入多余的宏包会减慢编译速度、增加冲突可能。当然,该变更仍然可以作为一个很好的参考,或许作为注释存在。

SJTUBeamer 内有类似的插件:minted。如果可以汇入主线的话,建议使用类似的机制,按需加载:

\AtEndOfPackageFile*{minted}{
    % some settings for that ...
}

然后在 setup.tex 中添加注释:

%\usepackage[]{minted}

让用户有选择地启用这一部分的设置。可以对文档类的内部代码做一些了解后再做修改。

stdrc commented 1 year ago

尝试修改成使用 \AtEndOfPackageFile 的形式了,不过不太确定是否完美符合预期的代码风格,麻烦再 review 一下~@LogCreative

LogCreative commented 1 year ago

之前没有说清楚,本仓库仅提供示例文档,我们的文档类开发代码使用 DocTeX 编写存放于 SJTUTeX 仓库,欢迎前往该仓库提交 PR,谢谢!

以及我们目前还在使用 LaTeX3 重构 SJTUThesis 的第二个版本,建议等待一段时间后再做修改。

stdrc commented 1 year ago

之前没有说清楚,本仓库仅提供示例文档,我们的文档类开发代码使用 DocTeX 编写存放于 SJTUTeX 仓库,欢迎前往该仓库提交 PR,谢谢!

OKOK 我学习一下 SJTUTeX 仓库

以及我们目前还在使用 LaTeX3 重构 SJTUThesis 的第二个版本,建议等待一段时间后再做修改。

好的!

stdrc commented 1 year ago

提交了适用 v2 版的 PR: