我正在 R 中使用 Quarto 来生成 docx 输出。但是,我希望各个页面具有不同的页面大小(宽度和高度),以便我可以根据需要自定义尺寸。目前,Quarto 在整个文档中应用一致的页面大小。
我已经探索了 Quarto 提供的文档和各种选项,但还没有找到实现这种级别的自定义的简单解决方案。有没有办法在 Quarto 的 docx 输出中控制每页的页面大小?
任何有关如何解决此问题的指导、代码示例或建议将不胜感激。预先感谢您!
最佳答案
我尝试了几种方法,但都不适合我。塔勒布评论中建议的步骤是唯一有效的步骤。我调整了代码,将输出从正常边距更改为窄边距。要修改边距以外的其他内容,可以找到文档 here .
- 创建一个包含以下代码的 .lua 文档(我个人使用 Visual Studio Code 来执行此操作)(并将其保存在与 Quarto/RMarkdown 文档相同的目录中):
local ooxml = function (s)
return pandoc.RawBlock('openxml', s)
end
local end_narrow_section = ooxml [[
<w:p>
<w:pPr>
<w:sectPr>
<w:pgMar w:top="722" w:right="722" w:bottom="722" w:left="722" w:header="567" w:footer="510" w:gutter="0"/>
<w:cols w:space="708"/>
<w:docGrid w:linePitch="360"/>
</w:sectPr>
</w:pPr>
</w:p>
]]
function Div (div)
if div.classes:includes 'narrow' then
div.content:insert(end_narrow_section)
return div
end
end
- 然后在 Quarto/RMarkdown 文档顶部的 YAML header 中添加一个过滤器,并使用您刚刚创建的文件的名称:
---
filters:
- example.lua
---
- 使用以下代码块将文档中要修改边距的部分括起来:
::: narrow
This is an example
:::
- 照常将您的文档呈现为 Word 文档。
编辑:另一种方法是创建一个具有所需边距的引用 docx 文档。实现起来比较容易,但是整个文档都会被格式化,而不是只能格式化某些部分。只需将 docx 添加到同一文件夹并将以下代码添加到 YAML header 即可。
---
format :
docx :
reference-doc: example.docx
---
关于r - 如何在 Quarto 的 docx 输出中自定义页面大小,以使 R 中的各个页面具有不同的尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76285064/