23

如何使org-mode标记对单词的一部分起作用?例如,我希望它适用于这样的情况:

=Class=es

还有这个:

/Method/s

根据我的测试,标记语法似乎org-mode只适用于完整的单词。

4

5 回答 5

32

这些天来,有一种方法可以做到这一点(不使用引用的 HTML 标记):

(setcar org-emphasis-regexp-components " \t('\"{[:alpha:]")
(setcar (nthcdr 1 org-emphasis-regexp-components) "[:alpha:]- \t.,:!?;'\")}\\")
(org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components)

解释

说明书上说org-emphasis-regexp-components可以用来

微调标记字符之前和之后允许的字符[...]。

这是一个包含五个条目的列表。第一个条目列出了允许紧跟在标记字符之前的字符,第二个条目列出了允许跟随标记字符的字符。默认情况下,这些条目中的任何一个都不包含字母。因此,为了成功地将格式应用于紧跟在字母之前或之后的字符串,我们必须将[:alpha:]匹配任何字母)添加到两个条目中。

这就是呼吁要做的setcar事情。第三行的目的是基于org-emphasis-regexp-components.

于 2014-07-02T20:41:11.470 回答
7

我认为您不能这样做,以使其在缓冲区中显示为粗体。如果您只需要它以便在将其导出为 html 时显示为粗体,则可以使用:

th@<b>is is ha@</b>lf bold

请参阅引用 HTML 标记

于 2009-08-02T07:26:00.273 回答
4

不,你不能那样做。我之前搜索过相同的解决方案,但一无所获。一个(非常)糟糕的 hack 是做一些像 *Class* es (带有空格)的事情。

也许您可以给创建者 Carsten Dominik(主页)写一条短消息,并请他提供解决方案。他似乎是个好人。

于 2009-08-03T10:42:42.663 回答
2

尚未提及的解决方案是在单词的所需粗体和非粗体部分之间使用 unicode 零宽度空间 (U+200B)。

要获得“类”一词的所需粗体:

  1. 在缓冲区中键入“Class*es”(不带引号)。
  2. 在“*”和“e”字符之间移动光标。
  3. 按 Cx 8 RET(执行 insert-char 命令)。
  4. 键入“零宽度空格”(不带引号)并按 RET。
  5. 将光标移动到单词的开头并插入一个“*”字符。

“类”一词现在应该具有所需的外观。

请注意,这可能会导致导出时出现问题。

于 2021-01-25T01:32:08.530 回答
0
src_latex{\textbf{Class}es and \textit{Method}s}
于 2021-02-01T03:01:38.760 回答