如何格式化官员页边距?

时间:2019-07-10 16:27:54

标签: r officer

我正在尝试使用officer从R生成Word文档。 documentation (v0.3.5, 06/23/2019)声明已弃用body_end_sectionbody_default_section,并建议使用body_end_section_continuousbody_end_section_landscapebody_end_section_portraitbody_end_section_columnsbody_end_section_columns_landscape。但是,这些函数都不接受margins参数。

当我尝试使用以下代码强制body_end_section_columns_landscape接受margins参数时,出现以下错误:

my_doc %<>% 
    body_end_section_columns_landscape(
        widths = c(4.75, 4.75),
        space = 0.5, 
        sep = FALSE, 
        w = 8.5, 
        h = 11, 
        margins = c(top = 0.5, bottom = 0.5, left = 0.5, right = 0.5)
    )
Error in body_end_section_columns_landscape(., widths = c(4.75, 4.75),  : 
  unused argument (margins = c(top = 0.5, bottom = 0.5, left = 0.5, right = 0.5))

使用不推荐使用的功能body_end_section时,我会得到警告并输出有些混乱:

my_doc %<>% 
    body_end_section(
        landscape = TRUE,
        margins = c(top = 0.5, bottom = 0.5, left = 0.5, right = 0.5),
        colwidths = c(0.5, 0.5),
        space = 0.05
    )
Warning message:
body_end_section is deprecated. See ?sections for replacement functions. 

当我说输出混乱时,我的意思是:

  • 纸张是A4(而不是字母)
  • 顶部,底部和左边距为0.5英寸(符合预期)
  • 右边距为1.04英寸(而不是0.5英寸)
  • 列宽4.81英寸(而不是4.75英寸)
  • 列分隔符为0.53英寸(而不是0.5英寸)

即使使用A4纸而不是信纸进行计算,我也看不到一种能理解列宽和边距宽度的方法。

我的问题是3折:

  1. 如何将纸张尺寸更改为字母?
  2. 我应该使用哪个函数来格式化列和边距?
  3. 如果我必须使用body_end_section,有人可以解释获得所需宽度的数学方法吗?

谢谢!

0 个答案:

没有答案