r - 如何在 Quarto 的 docx 输出中自定义页面大小,以使 R 中的各个页面具有不同的尺寸?

标签 r r-markdown cpu-word quarto

我正在 R 中使用 Quarto 来生成 docx 输出。但是,我希望各个页面具有不同的页面大小(宽度和高度),以便我可以根据需要自定义尺寸。目前,Quarto 在整个文档中应用一致的页面大小。

我已经探索了 Quarto 提供的文档和各种选项,但还没有找到实现这种级别的自定义的简单解决方案。有没有办法在 Quarto 的 docx 输出中控制每页的页面大小?

任何有关如何解决此问题的指导、代码示例或建议将不胜感激。预先感谢您!

最佳答案

我尝试了几种方法,但都不适合我。塔勒布评论中建议的步骤是唯一有效的步骤。我调整了代码,将输出从正常边距更改为窄边距。要修改边距以外的其他内容,可以找到文档 here .

  1. 创建一个包含以下代码的 .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/

    相关文章:

    iphone - 词典应用

    python - 从文本文件中搜索一行中的单词时,某些单词未显示

    r - 如何使用 dplyr 获取每行最大值的列

    r - 选择数据框中向量的第一个元素以外的所有元素

    R:我可以在另存为 PDF 时修复我的图例吗?

    html - 带有 html/docx 输出的 R Markdown 文档,使用 LaTeX 包 bbm?

    r - 在 R markdown 中使用 knitr、kableExtra 和 Latex 将 col 名称和标题(上图)设置为奇怪的字符

    r - 在 R 或 SQLite 中分别将多列中的字符串拆分为新行

    r - 为什么 file.exists 尽管位于 list.files 中却返回 FALSE?

    html - 为每个单词的第一个字母设置样式,而不仅仅是第一个单词?