在这种情况下的罪魁祸首是正则表达式,负责确定文档中的字符序列是否要逐字设置. org-emph-reorg-verbatim-re
org-verbatim-re是`org.el'中定义的变量.它的值是"\([('\"{]\| ^ \)\(\([=〜] \)\([^
\n,\"']\| [^
\n,\"'] .?\(?:\n.?\)\ {0,1 \} [^
\n,\"'] \)\ 3 \)\([ - .,:!?;'\")}\]\| $ \)"
引号和双引号内逐字字符被明确禁止=~通过
[^
\n,\"']\|[^
\n,\"']
Run Code Online (Sandbox Code Playgroud)
我发现可以追溯到3年前的讨论得出的结论是你必须修改这个正则表达式并将变量org-emph-re/ 设置为org-verbatim-re与你的emacs设置中的愿望匹配的东西(也许文件局部变量也可以).您可以通过从排除字符类和外部匹配中排除双引号进行试验,如下所示
"\([('{]\| ^ \)\(\([*/_ =〜+] \)\([^
\n,']\| [^
\n,'].?\(? :\n.?\)\ {0,1 \} [^
\n,'] \)\ 3 \)\([ - .,:!?;')} \]\| $ \)"
但是看着那个正则表达式,天堂知道复杂文件会发生什么 - 你必须尝试......
编辑:当它发生时,如果我将以下内容作为区域进行评估,=则会正确导出内部引号,但没有其他内容:-),当我有更多时间时,我会进一步调查.
(setq org-emph-re"\([('{]\| ^ \)\(\([*/_ =〜+] \)\([^ \n,']\| [^ \n, '].?\(?:\n.?\)\{0,1\} [^ \n,'] \)\ 3 \)\([ - .,:!?;')}]\| $ \)")
编辑2 ::通过org.el直接更改让它工作:
更改以下行(defvar org-emphasis-regexp-components从'(" \t('\"{" "- \t.,:!?;'\")}\\" " \t\r\n,\"'" "." 1)到'(" \t('{" "- \t.,:!?;')}\\" " \t\r\n,'" "." 1)并重新编译有机然后重新启动emacs的.
这是defcustom8.0发布之前的版本,现在已经不存在了,所以你必须忍受这个手动修改.
问候,汤姆