如何在Quarto文档中实现横竖页(Portrait/Landscape)混合排版?
在Quarto中实现横竖页面混合排版的解决办法
核心配置与步骤
- 加载必要的LaTeX包
在文档的YAML头部添加配置,确保Quarto编译PDF时加载pdflscape包(该包比基础的lscape更友好,能同步PDF阅读器的页面旋转):
--- title: "混合横竖页演示" format: pdf: include-in-header: text: | \usepackage{pdflscape} ---
- 正确切换横竖页并保留Quarto格式
不要直接用纯LaTeX环境包裹内容,而是用Quarto的{=latex}块分隔LaTeX命令和Quarto内容,确保横向页内的所有Quarto语法(标题、列表、代码块、加粗/斜体等)都能正常渲染:
## 纵向页面内容 这是普通纵向页,支持所有Quarto格式:**加粗文本**、`代码片段`,以及R代码块: ```r print("纵向页的R代码输出")
{=latex}
\newpage
\begin{landscape}
{=latex}
横向页面内容
这里是横向页,完全兼容Quarto语法:
- 列表项1
- 列表项2
加粗文本、斜体文本和代码都能正常显示,R可视化代码也能正确生成图表:
library(ggplot2) ggplot(mtcars, aes(mpg, wt)) + geom_point(color = "red")
{=latex}
\end{landscape}
\newpage
{=latex}
回到纵向页面
切换回纵向后,内容格式依然正常。
### 解决你遇到的两个问题 - **`Undefined control sequence`错误**:是因为没有在YAML中加载`pdflscape`或`lscape`包,Quarto无法识别`\begin{landscape}`这类LaTeX命令。 - **横向页内格式丢失**:直接用纯LaTeX环境包裹内容时,Quarto会把环境内的所有内容当成纯LaTeX代码处理,忽略自身的markdown语法。用`{=latex}`块单独包裹LaTeX命令,就能让Quarto正常解析中间的内容。 内容的提问来源于stack exchange,提问作者Bram Setyadji Madusuyatno
相关产品推荐
相关产品推荐

