如何将Quarto文档中Python代码块输出缩小至50%?
如何将Quarto中Python代码块的输出缩小至原尺寸的50%?
我有以下Quarto文档:
--- title: "Untitled" format: pdf ---
#|echo: false #|result: 'asis' import pandas as pd df = pd.DataFrame({'A': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'], 'B': ['one', 'one', 'two', 'two', 'one', 'one'], 'C': ['dull', 'dull', 'shiny', 'shiny', 'dull', 'dull'], 'D': [1, 3, 2, 5, 4, 1]}) print(df)
请问是否可以将该Python代码块的输出缩小至原尺寸的50%?若可以,该如何操作?
可以实现,最直接的方式是借助kableExtra库生成可缩放的LaTeX表格(直接print(df)输出的纯文本表格在PDF中难以精确控制尺寸),具体操作如下:
- 先安装
kableExtra库(未安装时执行):
pip install kableExtra
- 修改Python代码块,替换原输出逻辑为带缩放设置的表格生成代码:
#|echo: false #|result: 'asis' import pandas as pd from kableExtra import kable, kable_styling df = pd.DataFrame({'A': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'], 'B': ['one', 'one', 'two', 'two', 'one', 'one'], 'C': ['dull', 'dull', 'shiny', 'shiny', 'dull', 'dull'], 'D': [1, 3, 2, 5, 4, 1]}) # 生成LaTeX表格并设置缩放比例为50% print( kable(df, format="latex", booktabs=True) .pipe(kable_styling, latex_options=["scale_down=0.5"]) )
原理说明:
kable(df, format="latex")将DataFrame转换为LaTeX格式的表格代码kable_styling的latex_options=["scale_down=0.5"]会自动添加LaTeX缩放命令,把表格宽度缩至原尺寸的50%- 保持
result: 'asis'让Quarto直接渲染生成的LaTeX代码,而非作为纯文本输出
如果不想额外安装库,也可以手动用LaTeX的\resizebox命令包裹输出,但需要先将DataFrame转换为标准LaTeX表格格式,这种方式相对繁琐,不如kableExtra便捷。
内容的提问来源于stack exchange,提问作者PaulS
相关产品推荐
相关产品推荐

