我如何使org-mode
标记对一个单词的一部分起作用?例如,我希望它适用于以下情况:
=Class=es
并且这个:
/Method/s
根据我的测试,似乎org-mode
的标记语法只适用于完整的单词。现在,有一种方法可以实现这一点(不使用引用的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
重新构建强调的正则表达式。
org-emphasis-regexp-components
的car
和cadr
。 - Danorg-set-emph-re
的调用不仅影响粗体(* *
),还包括斜体(/ /
)、下划线(_ _
)和删除线(+ +
)。非常好! - DanHiDPI: *Hi*gh *D*ots *P*er *I*nch
得到的结果是 High Dots Per Inch,只有第一个和最后一个 *
能匹配上。
org-mode 版本9.5 - stflorg-mode
中,引用HTML字符串的语法已更改。如果要得到th<b>is is ha</b>lf bold
,你需要写成 th@@html:<b>@@is is ha@@html:</b>@@lf bold
。 - itsjeydGNU Emacs 25.2.2
中有效。 - Zelphir Kaltstahlorg-mode
可以自定义应用于单词部分的标记。请参见下面的答案。 - itsjeyd在先前的优秀答案的基础上进行了改进
我不得不稍微修改一下才能让它与spacemacs协同工作。确实,从可用这里的spacemacs org-layer文档中,我们可以看到:
由于自动加载,调用org函数将触发emacs附带的org加载,这将引起冲突。 避免冲突的一种方法是在with-eval-after-load块中包装您的org配置代码[...]
因此,我将以下行放置在我的dotspacemacs/user-config()
中。
(eval-after-load "org"
'(progn
(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)
))
src_latex{\textbf{Class}es and \textit{Method}s}
(*Class*)es
(*Method*)s
\textbf{V}alence \texttt{Aware} Dictionary
将仅以粗体形式打印“V”,并且整个单词“Aware”将以org =verbatim=样式显示。 - n1k31t4