Как использовать один и тот же источник уценки R для перехода к HTML, Word, GitHub и PDF - PullRequest
1 голос
/ 26 октября 2019

Я пытаюсь отобразить исходный документ с разметкой R в MS word, git-hub markdown, HTML и PDF. Параметры для компиляции находятся в заголовке файла .Rmd, а выбор вывода определяется в командной строке с помощью функции render(). Я хотел бы, чтобы этот документ включал нумерацию чисел и уравнений во всех версиях и имел перекрестные ссылки.

У меня есть уравнение в моем файле .Rmd:

(\#eq:eq)
A=\frac{\pi}{27d^2}

(давайте проигнорируемобертка на данный момент.)

Это перекрестная ссылка из текста как (e.g. Equation \@ref(eq:eq)).

Мой заголовок в main.rmd выглядит следующим образом:

output:
  bookdown::pdf_document2:
    latex_engine: pdflatex
    toc: true
    number_sections: true
    fig_caption: true
    keep_tex: true
    citation_package: natbib
  bookdown::html_document2:
    number_sections: true
    toc: true
    toc_float:
      collapsed: false
      smooth_scroll: false
  md_document:
    variant: gfm
    fig_caption: yes
    keep_md: yes
    number_sections: true
  bookdown::word_document2:
    number_sections: true
    reference_docx: defaulto

Когда ясделать с помощью word ...

rmarkdown::render("main.rmd",
  output_format=c('word_document2'),
  run_pandoc = TRUE,
  clean=TRUE)

Если я использую $$ в качестве оболочки, я вижу метку уравнения, отображаемую в документе Word. Номер уравнения дан, но это не перекрестная ссылка. Я должен использовать \begin{equation}... \end{equation}, чтобы заставить это работать в качестве перекрестной ссылки.

Когда я рендеринг в HTML , любой из параметров оболочки дает мне разумный вывод.

rmarkdown::render("main.rmd",
  output_format=c('bookdown::html_document2'),
  run_pandoc = TRUE,
  clean=TRUE)

Когда я рендерим в markdown ,

rmarkdown::render("main.rmd",
    rmarkdown::md_document(variant = "gfm"),
    run_pandoc = TRUE,
    clean=TRUE,
    knit_root_dir= getwd())

, я не получаю никакого вывода, когда использую ´´´ \ begin {уравнение} ... \ end {уравнение}. Там я использую $$ .. $$, чтобы получить любой вывод, и я вижу Equation @ref(eq:eq) в тексте, то есть перекрестная ссылка не отображается вообще.

PDF отображается с использованием

rmarkdown::render("main.rmd",
  output_format=c('bookdown::pdf_document2'),
  run_pandoc = TRUE,
  knit_root_dir= getwd())

... и, похоже, отлично работает в обоих случаях.

Итак ... проблема: я не могу использовать один и тот же формат уравнений для перехода к уценке, HTML и слову из. RMD. Есть ли решение, которое может быть реализовано либо в источнике .Rm, либо при вызове render()?

MWE

title: "MWE"
author: "Me, myself, and I"
date: '`r Sys.Date()`'
output:
  bookdown::pdf_document2:
    latex_engine: pdflatex
    toc: true
    number_sections: true
    fig_caption: true
    keep_tex: true
    citation_package: natbib
  bookdown::html_document2:
    number_sections: true
    toc: true
    toc_float:
      collapsed: false
      smooth_scroll: false
  md_document:
    variant: gfm
    fig_caption: yes
    keep_md: yes
    number_sections: true
  bookdown::word_document2:
    number_sections: true
    reference_docx: default
fontsize: 11pt
geometry: margin=1in
graphics: yes
bibliography: main.bib
linkcolor: blue
urlcolor: red
citecolor: cyan
link_citations: true

# Test{sec:test}

This should be a cross-reference to Equation \@ref(eq:eq).

$$
(\#eq:eq)
A=\frac{\pi}{27d^2}
$$

...