在vignette代码块生成LaTeX导致显示数学公式换行异常
问题:knitr中使用symbolicMatrix生成矩阵等式时渲染异常
我在R语言的matlib包中编写了symbolicMatrix函数,用于生成矩阵的LaTeX代码,示例如下:
> symbolicMatrix("a", nrow = "m", ncol="n", matrix="bmatrix") \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix}
在设置了results='asis', echo=FALSE的简单knitr代码块中,生成矩阵乘积$A\mathbf{x}$的显示完全正常:
```{r symbMat, results='asis', echo=FALSE} symbolicMatrix("a", nrow = "m", ncol="n", matrix="bmatrix") symbolicMatrix("x", nrow = "n", ncol=1)
但当生成带`=`连接的复杂矩阵等式时,vignette中的数学公式会出现错误换行的问题: ```r ```{r symbMat, results='asis', echo=FALSE} symbolicMatrix("a", nrow = "m", ncol="n", matrix="bmatrix") symbolicMatrix("x", nrow = "n", ncol=1) cat("\\quad=\\quad") symbolicMatrix("b", nrow = "m", ncol=1)
我推测问题根源是代码块的`asis`输出没有被识别为一个完整的显示数学环境,但不知道该修改函数逻辑还是调整调用方式才能让等式正常渲染。有没有我忽略的knitr技巧? 补充说明:直接用`$$`包裹上述代码块输出的LaTeX内容,在vignette中显示完全正常: ```latex $$ \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \begin{pmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \\ \end{pmatrix} \\quad=\\quad \begin{pmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{m} \\ \end{pmatrix} $$
内容的提问来源于stack exchange,提问作者user101089
相关产品推荐
相关产品推荐

