【问题标题】:Escape pipe-character in org-mode组织模式中的转义管道字符
【发布时间】:2011-07-05 22:00:04
【问题描述】:

我在 Emacs org-mode 中有一个表格,内容是正则表达式。我似乎无法弄清楚如何转义作为正则表达式一部分的文字管道字符 (|),因此它被解释为表格单元格分隔符。有人可以指点我一些帮助吗?谢谢。

更新:我还在寻找斜线 (/) 的转义,这样它就不会触发斜体/强调序列的开始。我尝试了\/\// - 例如,假设我想在表格单元格中使用文字文本/foo/。以下是 3 种尝试方法:

| /foo/ | \/foo/ | \//foo/ |

在 LaTeX 导出中,变成:

\emph{foo}  &  \/foo/  &  \//foo/

所以它们都不是我所希望的普通/foo/

【问题讨论】:

标签: emacs escaping org-mode tabular


【解决方案1】:

\vert 用于管道。

在导出为 HTML 和 PDF 时,正斜杠对我来说似乎可以正常工作。

【讨论】:

  • 太棒了!我还在为a\vert{}b 之类的东西使用大括号,否则它将是a\vertb 并且不起作用。正如在orgmode.org/worg/org-symbols.html 上找到的那样。
  • 我似乎无法重现我对斜线的 2 种不同导出的怪异(所以我编辑了我的问题),但我添加了一个尝试获得文字斜线但没有实现它的示例。
  • 但显然这只影响导出的文档,而不影响单元格内​​容如何解释为字符串。 OP 说管道字符是正则表达式的一部分,我假设他/她需要在公式中使用这个正则表达式,比如$4='(if (string-match $1 $2) "Yes" "No"),但这不起作用。
  • 就像一个\vert b。两边应该有空格。
【解决方案2】:

您还可以将相关文本格式化为 verbatimcode

Org 模式不处理代码中的文本和逐字字符串 具体语法;它是逐字导出的。

因此,您可以尝试=foo | bar=(代码)或foo ~|~ bar(逐字)之类的方法。不过,它确实会改变输出格式。

【讨论】:

  • 对表格没有帮助。我的正则表达式 /(foo|bar)/ 变成两个表格单元格,即使被 ~ 字符包围。必须写成/(foo\vert{}bar)/。太糟糕了,因为我使用 org-mode(在这种情况下)来跟踪我的开发笔记,而不是导出到 PDF 或 LaTeX 或任何东西。哦,好吧。
  • 哦,但我确实找到了一个(某种)解决方案;将作为答案发布。
【解决方案3】:

使用折线字符“¦”,Unicode 00A6 BROKEN BAR。这可能会或可能不会满足您的特定需求,但它是一个很好的视觉近似值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2015-07-25
    • 2016-07-24
    • 2014-07-09
    • 1970-01-01
    相关资源
    最近更新 更多