我知道如何使用.Rmd文件的pdf格式输出使用其他Latex软件包
---
header-includes:
- \usepackage{mathtools}
---
在YAML header 中。
但是,如果指定了
output: html_document
,那么(当然)这是行不通的。---
output: html_document
header-includes:
- \usepackage{mathtools}
---
对于
output: html_document
来说,使用额外的Latex-Packages也可能很有趣-尤其是在数学表达式中(下面的MWE)---
title: "MWE"
output: html_document
header-includes:
- \usepackage{mathtools}
---
## Use "Defined by" Symbol
$$sin(x) \coloneqq \frac{opposite}{hypothenuse}$$
最佳答案
MathJax提供了许多extensions,并且还有第三方扩展。如果无法以这种方式获得所需的软件包,则事情会变得很困难。
可以使用\coloneqq
重新创建诸如\newcommand
之类的简单命令。最简单的方法是通过include-before
选项添加它们。将您的MWE与Mathematics Meta SE中的solution结合使用,您将获得:
---
title: "MWE"
output:
html_document: default
include-before:
- '$\newcommand{\coloneqq}{\mathrel{=}}$'
---
## Use "Defined by" Symbol
$$sin(x) \coloneqq \frac{opposite}{hypothenuse}$$
输出:
背景
RMarkdown是围绕pandoc构建的,它执行大多数格式转换。 Pandoc通过LaTeX创建PDF(默认情况下),并将仅包含源中提供的所有原始LaTeX命令。当看到
\usepackage{mathtools}
时,不对包进行解析,而是将命令逐字添加到中间LaTeX中。但是,在导出为HTML时,通过LaTeX命令没有任何意义,因此任何此类命令都将从输出中省略,因此文档中的任何\usepackage
都不会影响HTML输出。替代解决方案
如果您使用的是非常复杂的LaTeX软件包,则可以考虑设置一个复杂的管道以继续使用它:例如,可以使用pandoc filter提取所有方程式,将每个方程式编译为单独的文档,然后转换生成的PDF到SVG。最后,该SVG然后可以包含在HTML输出中。这是不平凡的,可能不值得付出努力。建议对include TikZ pictures使用类似的方法。
关于r-markdown - 对RMarkdown中的数学表达式使用其他Latex包 `output = "html_document“`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52201541/