Emacs 组织模式乳胶导出-使待办事项变为红色
我在Emacs中使用组织模式,并使用导出到LaTeX选项。输出很好,但是我想展示:Emacs 组织模式乳胶导出-使待办事项变为红色,emacs,latex,org-mode,Emacs,Latex,Org Mode,我在Emacs中使用组织模式,并使用导出到LaTeX选项。输出很好,但是我想展示: TODOs是红色的 唐斯是绿色的 所以他们脱颖而出 有没有办法?从ox-latex.el修改相应的函数 我将org latex format headline default函数从ox-latex.el复制到my.emacs,并添加了两个案例TODO和DONE。我建议不要替换原来的函数,而是将其放在.emacs中 当您导出到LaTeX时,它将使任何包含字符串的“TODO”变为红色,任何“DONE”变为绿色。确
- TODOs是红色的
- 唐斯是绿色的
(defun org-latex-format-headline-colored-keywords-function
(todo todo-type priority text tags info)
(concat
(cond ((string= todo "TODO")(and todo (format "{\\color{red}\\bfseries\\sffamily %s} " todo)))
((string= todo "DONE")(and todo (format "{\\color{green}\\bfseries\\sffamily %s} " todo))))
(and priority (format "\\framebox{\\#%c} " priority))
text
(and tags
(format "\\hfill{}\\textsc{%s}"
(mapconcat (lambda (tag) (org-latex-plain-text tag info))
tags ":")))))
(setq org-latex-format-headline-function 'org-latex-format-headline-colored-keywords-function)
这个答案似乎基本正确。只需要注意几点。您应该重命名默认函数,然后执行setq将org-latex-format-heading函数设置为函数名。检查文档中的该变量,以获取函数必须接受的参数及其含义的描述。当您有一个以上的逻辑测试时,使用cond之类的语句而不是多个if语句来提高清晰度。我也会考虑使用todo-Type,它是一个符号,而不是ToDo,它是一个字符串,它通常会生成更清晰的代码,而且通常效率更高。我无法使用todo类型代替与todo的字符串比较。Doc说,todo类型可以是todo、done或nil符号之一,但出口商说它不知道符号done。这是否可能被接受,或者我收到了使其可接受的请求?嗨,谢谢你的回答。很抱歉延迟接受您的答复。我只是最近才需要它。对我来说,这个解决方案突然不起作用了。问题似乎是在较新的组织模式版本中,
org latex格式标题函数
不再传递info
参数。从参数列表中删除它(即(todo-todo-type-priority-text-tags)
)对我来说解决了这个问题,而且一切似乎都正常,但我不知道这是否会产生一些不必要的副作用。