如何导出带代码行号的Jupyter Notebook至LaTex?
给Jupyter导出的LaTeX文档中的Julia代码添加行号
方法一:直接修改导出的.tex文件
这是最快捷的实现方式,步骤如下:
- 打开导出的.tex文件,定位所有代码块——Jupyter默认用
Verbatim环境包裹代码,示例如下:\begin{Verbatim}[commandchars=\\\{\}] # Julia代码示例 x = 1:10 println(sum(x)) \end{Verbatim} - 给
Verbatim环境添加行号参数,比如要在左侧显示行号,修改为:
可选参数说明:\begin{Verbatim}[numbers=left, commandchars=\\\{\}] # Julia代码示例 x = 1:10 println(sum(x)) \end{Verbatim}numbers=right:将行号显示在右侧numberstyle=\tiny\color{gray}:调整行号为灰色小号字体,避免干扰代码阅读stepnumber=2:每隔2行显示一次行号
- 确认文档导言区包含
\usepackage{fancyvrb}(Jupyter导出的.tex通常已自带,若缺失则手动添加)。 - 重新编译.tex文件即可看到带行号的代码块。
方法二:修改Jupyter导出模板(永久生效)
如果需要每次导出都自动添加行号,可修改Jupyter的LaTeX模板:
- 找到模板目录:
- Julia环境:运行
using IJulia; println(joinpath(dirname(pathof(IJulia)), "templates"))获取路径 - Python环境:运行
jupyter --data-dir,再定位到nbconvert/templates/latex子目录
- Julia环境:运行
- 复制默认模板(如
article.tplx)到自定义目录,避免修改系统文件。 - 打开复制后的模板,找到定义代码块的
\begin{Verbatim}[...]行,添加numbers=left参数到选项中。 - 导出时指定自定义模板:
- 界面操作:选择「文件/保存并导出为…/LaTeX」,在导出选项中选择自定义模板
- 命令行:
jupyter nbconvert --to latex --template /path/to/your/template.tplx your_notebook.ipynb
额外优化:用minted实现语法高亮+行号(可选)
若需要更精准的Julia语法高亮,可替换默认环境为minted包:
- 在.tex导言区添加:
\usepackage{minted} \setminted{linenos=true, numbersep=5pt} - 将所有
Verbatim环境替换为minted并指定语言:\begin{minted}{julia} # Julia代码示例 x = 1:10 println(sum(x)) \end{minted} - 编译时需添加
-shell-escape参数,例如:pdflatex -shell-escape your_document.tex
内容的提问来源于stack exchange,提问作者Jean Ramírez
相关产品推荐
相关产品推荐

