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

Quarto文档列表内嵌代码块格式异常求助

解决Quarto嵌套列表中代码块PDF格式错乱问题

问题分析

嵌套列表内的代码块(或数据输出)生成PDF时格式错乱,核心原因有两点:

  1. 直接用print输出的纯文本数据,在LaTeX嵌套列表环境中无法自动适配缩进规则,导致排版混乱。
  2. YAML配置中重复设置了geometry参数,可能引发布局冲突,加重格式问题。

修复方案

1. 清理YAML配置中的重复项

移除include-in-header里重复的\geometry设置,避免布局参数冲突:

---
execute:
  cache: false
jupyter: python3
format: 
  pdf:
   number-sections: true
   fontsize: 12pt
   papersize: A4
   fig-pos: 'H'
   geometry: "left=2.54cm,right=2.54cm,top=2.54cm,bottom=2.54cm"
   classoption: abstract, table
   include-in-header:
     text: |
       \usepackage{fvextra}
       \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\\\}}
       \usepackage[font=small]{caption}
       \usepackage{float}
       \usepackage{makecell}
       \usepackage{graphicx}
---

2. 替换数据输出方式,适配嵌套列表

用Markdown表格格式输出DataFrame,让Quarto生成能适配列表缩进的LaTeX代码,替换原有的print输出:

1. This is an item.

    a) Something

        ```{python}
        #|echo: false
        #|output: asis

        import pandas as pd

        data = {'A': [15, 30],
               'b': [8, 5]}

        df = pd.DataFrame(data)
        # 输出Markdown格式表格,自动适配嵌套列表布局
        print(df.to_markdown())
        ```

额外说明

如果需要保留代码块的高亮显示(而非表格输出),可以在include-in-header中添加LaTeX命令,强制代码块适配列表缩进:

\usepackage{etoolbox}
% 调整嵌套列表中的代码块缩进
\AtBeginEnvironment{Highlighting}{\setlength{\leftskip}{\parindent}}

将这段代码加入include-in-header的text块中,即可让代码块在嵌套列表中保持正确的缩进对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:23:23