我知道如何使用额外的Latex-packages从.Rmd文件输出pdf格式
---
header-includes:
- \usepackage{mathtools}
---
在YAML标题中。
但是,如果指定output: html_document
,这当然不起作用。
---
output: html_document
header-includes:
- \usepackage{mathtools}
---
使用额外的Latex-Packages也可能对output: html_document
感兴趣 - 特别是在数学表达式中(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和数学元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建议采用类似的方法。