Learn R Programming

crosstable (version 0.8.0)

body_add_list: Add a list to an officer document

Description

Add a list to an officer document

Usage

body_add_list(doc, value, ordered = FALSE, style = NULL, ...)

body_add_list_item(doc, value, ordered = FALSE, style = NULL, ...)

Value

The docx object doc

Arguments

doc

a docx object

value

a character vector (body_add_list()) or scalar (body_add_list_item). See Section below for markdown support.

ordered

if TRUE, adds an ordered list, if FALSE (default), adds a bullet list

style

specify the style manually, overriding ordered. A better way is to set options crosstable_style_list_ordered and crosstable_style_list_unordered globally.

...

passed on to officer::body_add_par()

Markdown support

In all crosstable helpers for officer, you can use the following Markdown syntax to format your text:

  • bold: "**text in bold**"

  • *italics: "*text in italics*"

  • subscript: "Text in ~subscript~"

  • superscript: "Text in ^superscript^"

  • newline: Before <br> After

  • color: "<color:red>red text</color>"

  • shade: "<shade:yellow>yellow text</shade>" (background color)

  • font family: "<ff:symbol>symbol</ff>" (

Note that the font name depends on your system language. For instant, in French, it would be Symbol with an uppercase first letter.

See the last example of body_add_normal() for a practical case.

Author

Dan Chaltiel

Details

Ordered lists and bullet lists are not supported by the default officer template (see https://github.com/davidgohel/officer/issues/262). You have to manually set custom styles matching those list in a custom Word template file. Then, you can use either the style argument or crosstable options. See examples for more details.

Examples

Run this code
if (FALSE) {
#For this example to work, `my_template.docx` should include styles named
#`ordered_list` and `unordered_list`

library(officer)
library(crosstable)
options(crosstable_style_list_ordered="ordered_list")
options(crosstable_style_list_unordered="unordered_list")

read_docx("my_template.docx") %>%
 body_add_list(c("Numbered item 1", "Numbered item 2"), ordered = TRUE) %>%
 body_add_list_item("Numbered item 3", ordered = TRUE) %>%
 body_add_list(c("Bullet item 1", "Bullet item 2"), ordered = FALSE) %>%
 body_add_list_item("Bullet item 3", ordered = FALSE) %>%
 write_and_open()
}

Run the code above in your browser using DataLab