Org mode数学公式里面如何插入并执行行内代码

问题在Reddit r/orgmode里面已经提过,但是没有得到满意的答复。问题的背景如下:之前我在使用Rmarkdown或者Quarto的时候,通常会写一段R代码分析数据得到某些统计量的数值结果。这些代码我会选择放或者不放到最后导出的PDF或者HTML文档,但是通常我需要在代码下面加一些数学公式写出推倒公式,公式的最后加上刚刚用数据在R里面算得的结果。这在Rmarkdown/Quarto里面直接用行内代码就可以实现,类似于

The circumference of a unit circle is $C=2\pi{}=`r 2*pi`.$

我想尝试在Org里面也用行内代码,但是导出成PDF或者HTML时都不能实现上述效果

The circumference of a unit circle is \[C=2\pi=src_R{2 * pi}.\]

不知道有没有人有类似的经历,可以分享一下你是怎么实现类似的功能的。谢谢!

org text \(latex math code\)

由于各种困难及不稳定性,Org维护者明确不推荐使用$。注意latex里行内数学符号是\( \),而独占一行的是\[ \]

1 个赞

我一般在Org mode里面也是用\(\)\[\]写数学公式的。在Org mode中,行内代码是指用src_<lang>而不是

#+BEGIN_SRC <lang>
#+END_SRC

和是不是用inline math还是displayed math是两码事情。

https://www.johndcook.com/blog/2022/08/03/inline-org-babel/

多谢🙏这个网页我也有看到过,在文段中使用没有问题,但我每次一放到数学环境里面就用不了了,导出PDF和HTML时总没法显示数学公式。

行内公式的话,可以把公式和 code block 分开写。reddit 上的代码导出到 latex/html 也可以正常显示数学公式。

#+property: header-args:org :results raw replace :exports results :eval yes :noweb yes
#+property: header-args:elisp :results raw replace :exports results :eval yes

The circumference of a unit circle is \( C= 2\pi = \) src_elisp{(* 2 pi)}

#+name: variable
#+begin_src elisp :results value none :exports none
(* 2 pi)
#+end_src

The circumference of a unit circle is src_org{\[ C=2\pi= <<variable()>> \]}
1 个赞

非常感谢!你的header-args帮助我成功导出了,要加一个replace才行。

1 个赞