low*_*rul 1 latex r r-markdown bookdown
我想在我的 .Rmd bookdown 文件中包含 LaTeX 环境(例如, algorithmic
from algorithmicx
、mini
from optidef
、dcases
from等)。mathtools
这对于 pdf 输出来说没有问题。但这些不会呈现 html 或 docx 输出。
我当前的黑客解决方案:
缺点:
必须有更好的方法,对吗?我在想有一种方法可以告诉 rmarkdown/LaTeX,当渲染为 pdf 时,某些代码块应该以某种图像格式保存。这样,它们就可以作为图像添加回文档中,条件是输出文档是 docx 或 html。这可能吗?
更新:对 TikZ 独立图的回答提出了一种涉及 LaTeXstandalone
包的方法。但不幸的是,人们发现它不能与独立的算法一起工作,这不适用于该algorithm
环境。有任何想法吗?
---
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)
Run Code Online (Sandbox Code Playgroud)
对于数学,R Markdown 使用 MathJax,并且只有 LaTeX 的子集可用。该子集包括基本数学宏和环境,并允许您定义新宏,但不支持让您使用任意 LaTeX 包所需的一切。有关详细信息,请参阅 http://docs.mathjax.org/en/latest/tex.html。
您也许能够创建一个类似于algorithm
或 的环境algorithmic
,但这需要大量工作,而且可能看起来不太好。
您可能应该选择使用所有 LaTeX 进行格式化的 PDF 输出,或者样式较少的某种 HTML 输出。例如,您可以将算法编写为
******
**Algorithm 1**: My algo
******
1. Do this.
2. Do that.
******
Run Code Online (Sandbox Code Playgroud)
它将显示为
算法 1:我的算法