You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Pandoc生成PDF时代码行号处于页面边距内?

Pandoc生成PDF时代码块行号超出边距的解决方法

下面是几个无需修改纯LaTeX模板、适配Pandoc Markdown的解决方案:

  • 通过Markdown头部YAML元数据调整
    在你的Markdown文件最开头添加YAML配置,直接注入LaTeX指令调整行号和代码块的边距:

    ---
    header-includes:
      - \usepackage{listings}
      - \lstset{numbersep=5pt, xleftmargin=2em}
    ---
    

    其中numbersep控制行号与代码内容的间距,xleftmargin设置代码块整体的左侧边距,可根据实际需要调整数值(比如1.5em)。

  • 通过Pandoc命令行参数直接设置
    不用修改Markdown文件,在生成PDF的命令里添加参数指定listings的配置:

    pandoc 你的文件.md -o 输出文件.pdf --listings -V listings-options="numbersep=5pt,xleftmargin=2em"
    

    这个方法适合临时调整不同文件的需求。

  • 改用minted包优化行号显示
    如果你的TeX环境安装了minted包和Python的pygments工具,可以用minted替代默认的listings处理代码块,它的行号排版更灵活:

    pandoc 你的文件.md -o 输出文件.pdf --pdf-engine=xelatex --use-minted -V minted-options="linenos,numbersep=5pt,xleftmargin=2em"
    

    注意需要确保你的PDF引擎支持minted(推荐用xelatex或lualatex),并且提前安装好依赖。

内容的提问来源于stack exchange,提问作者Spark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:32:08