如何在Quarto中实现类似Streamlit的双栏文本布局?
Quarto实现双栏布局方案
Quarto完全支持双栏布局,针对网站(HTML输出)场景,有几种可靠的实现方式,能替代Streamlit的columns功能:
方法1:使用内置columns块(推荐)
这是Quarto官方推荐的HTML双栏实现方式,通过自定义块结构划分栏位:
::: columns ::: column 这是左侧栏的文本内容,支持换行、列表等任意Markdown格式: - 列表项1 - 列表项2 ::: ::: column 这是右侧栏的文本内容,会和左侧并排显示,默认各占50%宽度: > 可添加引用 `print("示例代码块")` ::: :::
效果说明
- 两个
::: column块自动并排,宽度默认均分 - 栏内兼容所有Quarto Markdown语法
- 移动端自动堆叠为单栏,适配响应式需求
方法2:自定义不等宽双栏
如果需要非均分的栏宽,直接给column块指定宽度参数:
::: columns ::: column width="30%" 左侧窄栏,占30%宽度 ::: ::: column width="70%" 右侧宽栏,占70%宽度 ::: :::
你代码失效的原因推测
如果文本被合并成一行,大概率是没正确用::: column块包裹内容,或者块结构不完整。比如错误写法:
::: columns 左侧文本 右侧文本 :::
这种写法会把内容当成同一栏的文本,自然不会分栏。
补充:PDF场景的全局双栏(若需)
如果文档要支持PDF输出,可在YAML头部设置全局双栏:
format: pdf: classoption: twocolumn
但这是整文档生效的全局设置,网站场景优先用前两种方法。
内容的提问来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

