Как добавить сноску без нумерации в файл *.docx с помощью ReporteRs?

При использовании ReporteRs В пакете кажется, что единственный способ вставить текст в нижний колонтитул страницы заключается в том, чтобы поместить в сноску номерную сноску в тексте текста, а сноска должна отображаться с таким же номером в нижнем колонтитуле. Я хотел бы иметь возможность поместить текст в нижний колонтитул страницы без нумерации впереди.

library(ReporteRs)

doc1 <- docx()
doc1 <- addFlexTable(doc1,vanilla.table(head(iris)))
Foot <- Footnote()
Foot <- addParagraph(Foot,"This should not have a number in front of it")
doc <- addParagraph(doc,pot("There should be no number after this",footnote=Foot))
writeDoc(doc1, file = "footnote1.docx")

В качестве альтернативы, если можно просто поместить абзац внизу страницы, это также решит мою проблему. Это можно сделать, выяснив, сколько еще строк поместится на странице, но если бы был какой-то способ сделать вертикальное выравнивание нижней частью страницы для последнего абзаца, это было бы идеально.

doc2 <- docx()
doc2 <- addFlexTable(doc2,vanilla.table(head(iris)))
doc2 <- addParagraph(doc2,c(rep("",33),"Text placed by dynamically finding bottom of the page"))
writeDoc(doc2, file = "footnote2.docx")

1 ответ

Решение

То, что вы пытаетесь сделать, не соответствует ReporteRs::Footnote как было написано, как показано в справке:

Если в объекте docx сноска будет помечена номером, следующим сразу за той частью текста, на которую ссылается примечание.

Однако то, что вам нужно, достижимо, если я правильно понимаю ваш вопрос. Примечание в вашей таблице и текст в нижнем колонтитуле не будут связаны каким-либо образом, например, гиперссылка, предоставленная Footnote,

Существует также проблема, которая ReporteRs не предоставляет метод для размещения текста в нижнем колонтитуле без использования закладок (кроме Footnote, который мы сейчас со скидкой). Это означает, что нам нужно использовать шаблон docx вместо пустого документа, сгенерированного пакетом.

Создание шаблона

шаги:

  1. Из MS Word я открыл пустой документ
  2. Поместить курсор в область нижнего колонтитула
  3. Вставить => Закладка
  4. Введите имя закладки, я только что использовал FOOTERи нажмите кнопку Добавить
  5. Сохранить документ

Генерация документов с ReporteRs

С нашим новым шаблоном следующие шаги покажутся вам более знакомыми.

library(ReporteRs)

doc <- docx(template = "Doc1.docx")

# do the flextable, note that I add your table footer here
ftable <- vanilla.table(head(iris))

ftable <- addFooterRow(
  ftable,
  value = c("There should be no number after this"),
  colspan = 5
)

doc <- addFlexTable(doc, ftable)

# check for the presence of our bookmark
list_bookmarks(doc)
# [1] "FOOTER"

# now add the footer text using the bookmark
doc <- addParagraph(
  doc, stylename = "footer", bookmark = "FOOTER",
  pot("This should not have a number in front of it")
)

# and finally write the document
writeDoc(doc, file = "doc.docx")

Конечный продукт

В таблице, которую вы можете лучше отформатировать, чтобы удовлетворить, я не удалил границу добавленной строки.

Нижний колонтитул, в стандартном стиле нижнего колонтитула, который снова можно изменить в соответствии с требованиями.

Другие вопросы по тегам