Я бы хотел включить среды LaTeX (например, algorithmic
из algorithmicx
, mini
из optidef
, dcases
из mathtools
и т. Д.) В мой файл .Rmd. Это не проблема для вывода PDF. Но они не отображаются для вывода html или docx.
Мое текущее решение взлома:
- Создание вывода в формате .pdf.
- Снимок экрана, редактирование, сохранение изображений, представляющих интерес, как PNG
- Включить изображения при условии, что вывод не является LaTeX
Downsides:
- Очевидно, не масштабируется
- Изображения выглядят ужасно в формате docx и html
- Винты с перекрестными ссылками на фигуры
Должен быть лучший подход, верно? Я думал, что есть способ сообщить rmarkdown / LaTeX, что при рендеринге в формате pdf определенные фрагменты кода должны быть сохранены в каком-либо формате изображения. Таким образом, они могут быть добавлены обратно в документ в виде изображений, условных для выходного документа docx или html. Это вообще возможно?
ОБНОВЛЕНИЕ: Ответ на автономные диаграммы с TikZ предлагает подход с использованием пакета LaTeX standalone
. Но, к сожалению, в автономно не работает с алгоритмами , что это не работает для среды algorithm
. Есть идеи?
index.Rmd
---
title: "Bookdown"
header-includes:
- \usepackage{float}
- \floatplacement{figure}{!htb}
- \usepackage{algorithm}
- \usepackage{algpseudocode}
output:
bookdown::gitbook:
split_by: none
bookdown::pdf_book:
fig_caption: yes
keep_tex: yes
toc: no
bookdown::word_document2: default
site: bookdown::bookdown_site
---
```{r setup, include=FALSE, }
knitr::opts_chunk$set(echo = TRUE)
```
Hello zero
# First Chapter
Hello one
\begin{algorithm}
\caption{My Algo}
\begin{algorithmic}[1]
\State Do this.
\State Do that.
\end{algorithmic}
\end{algorithm}
```{r myalgo, echo=FALSE, eval = !knitr:::is_latex_output(), fig.cap="Must have text here. For cross-referencing to work."}
knitr::include_graphics("myalgo.png")
```
Hello two.
Check out this picture: \@ref(fig:myalgo)
myalgo.png
