【问题标题】:How to make part of a word bold in org-mode如何在 org-mode 中使单词的一部分变为粗体
【发布时间】:2010-11-16 03:17:02
【问题描述】:

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

=Class=es

还有这个:

/Method/s

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

【问题讨论】:

  • 如果通过 LaTeX 导出为 PDF,可以直接在 org 缓冲区中使用 LaTeX 解决方案。例如。 \textbf{V}alence \texttt{Aware} Dictionary 将仅以粗体打印“V”,并且整个单词“Aware”将出现在 org =verbatim= 样式中。

标签: emacs org-mode


【解决方案1】:

如今, 有一种方法可以做到这一点(不使用引用的 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的修改版本的基础上重建正则表达式进行强调。

【讨论】:

  • 不错!而且,对于那些迂腐的 CL 爱好者来说,它也适用于 setforg-emphasis-regexp-componentscarcadr
  • ...对org-set-emph-re 的调用不仅会影响粗体 (* *),还会影响斜体 (/ /)、下划线 (_ _) 和删除线 (+ + )。超级好看!
  • @Dan 谢谢!是的,它应该是一个通用的解决方案。太糟糕了,还没有人问过一个通用的问题;)
  • @itsjeyd 不错的解决方案!不知道为什么,但我有一个视觉问题:LaTeX 代码的下标在 org-mode 中启用下划线字体。即在以下 LaTeX 片段 (\bigcup_{i=1} F_i) 中,“{i=1} F”在 org-mode 缓冲区中带有下划线。无论如何,这不会影响输出 pdf。
  • 不幸的是,如果一个 emph 跟随另一个 emph 这不起作用:HiDPI: *Hi*gh *D*ots *P*er *I*nch 导致 High Dots Per Inch 只有第一个和最后一个 @987654338 @ 匹配.. org-mode 版本 9.5
【解决方案2】:

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

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

Quoting HTML tags

【讨论】:

  • 在阅读了 bvk 提到邮件列表线程的回复后,我追踪了该线程,并认为包含指向开发人员回复的链接。 How to make part of a word bold in org-mode.
  • 在最新版本的org-mode 中,引用 HTML 字符串的语法发生了变化。要获得th&lt;b&gt;is is ha&lt;/b&gt;lf bold,您必须写th@@html:&lt;b&gt;@@is is ha@@html:&lt;/b&gt;@@lf bold
  • @itsjeyd 的评论解决方案在GNU Emacs 25.2.2 中为我工作。
【解决方案3】:

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

也许您可以给创建者 Carsten Dominik (Homepage) 写一条短消息,向他寻求解决方案。他似乎是个好人。

【讨论】:

  • 我刚刚邮寄到 org-mode 邮件列表。
  • @MichaelPaulukonis 如果您仍然感兴趣,可以自定义org-mode 的最新版本以将标记应用于部分单词。请参阅下面的答案。
【解决方案4】:

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

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

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

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

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

【讨论】:

    【解决方案5】:
    src_latex{\textbf{Class}es and \textit{Method}s}
    

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 2016-07-28
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多