如何在组织模式中使单词的一部分变为粗体

时间:2009-08-02 05:41:04

标签: emacs org-mode

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

=Class=es

和此:

/Method/s

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

5 个答案:

答案 0 :(得分:20)

现在,一种方法(不使用带引号的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)

解释

manual表示org-emphasis-regexp-components可用于

  

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

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

这是对setcar的调用。第三行的目的是根据修改后的org-emphasis-regexp-components版本重建正则表达式。

答案 1 :(得分:7)

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

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

请参阅Quoting HTML tags

答案 2 :(得分:3)

不,你不能这样做。之前我搜索过相同的解决方案,一无所获。 (非常)糟糕的黑客是做* Class * es(用空格)。

也许你可以给创作者Carsten Dominik(Homepage)写一条短信,然后问他解决方案。他似乎是一个好人。

答案 3 :(得分:2)

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

要获得所需的“类”字样的粗体:

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

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

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

答案 4 :(得分:0)

src_latex{\textbf{Class}es and \textit{Method}s}