在org-mode的LaTeX-export中更改内联代码评估的格式

时间:2013-08-10 13:44:05

标签: latex export org-mode

我在组织文档中有一个代码块

#+NAME: result_whatever
#+BEGIN_SRC python :session data :results value :exports none 
return(8.1 - 5)
#+END_SRC

我评估内联:

Now, does this work? Let's see: call_result_whatever(). I'd be surprised ...

导出到LaTeX时,会生成以下内容:

Now, does this work? Let's see:  \texttt{3.1}. I'd be surprised \ldots{}

但是,我不希望结果显示在等宽中。我希望它以“普通”直立字体格式化,没有任何特殊标记。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

您应该可以使用可添加到call_function()的可选标头参数来使其工作。

我没有在这个系统上安装LaTeX,因此无法完全测试输出以确保它们完全符合要求,我使用纯文本输出进行比较。但是,您可以使用以下语法作为call的一部分来修改结果。

Now, does this work? Let's see call_results_whatever()[:results raw].
I'd be surprised ...

没有[:results raw],纯文本(Ascii缓冲区)的输出为Let's see `3.0999999999999996'.。随着添加的结果,它变为Let's see 3.0999999999999996.

有关可用results个关键字以及内联块的其他可选标头参数的完整详情,请参阅Evaluation Code BlocksResults arguments

答案 1 :(得分:1)

这是5年之后。显然在组织模式8.2左右,引入了一个新变量(记录在"评估代码块"在组织模式手册中,但这来自源树中的etc / ORG-NEWS):

  

***新选项:org-babel-inline-result-wrap

     

如果将其设置为以下

     

:( setq org-babel-inline-result-wrap" $%s $")

     

然后内联代码片段将被包装到格式化字符串中。

所以,要消除\ texttt {}

(setq org-babel-inline-result-wrap "%s")

答案 2 :(得分:0)

这种类型的问题可以通过两种方式解决:

1:容易做到:

导出的缓冲区上的普通query-replace。 一旦你进入LaTeX缓冲区,

  1. beginning-of-buffer M-<
  2. query-replace M - %
    • 输入\texttt作为要替换的字符串
    • 不输入任何内容作为替换
    • 继续以交互方式替换每场比赛 使用y / n或仅使用!
    • 替换所有内容
  3. 2:但我想要!

    第二种方法是将组织模式邮件列表唠叨到 为您的特定情况实施开关或选项。 虽然它有时是必要的,但它也会产生一个系统 有成千上万的开关,这可能会变得笨拙。 你可以尝试,但我不推荐。