[英]Org mode timestamp format when exported
我正在将我的组织模式文件导出到 LaTeX,并且经常使用Cc .
时间戳作为顶级标题作为滚动日记。
但是,当它导出为 PDF 时, <2014-04-25 Fri>
看起来有点滑稽。 是否有一个通用设置可以将时间戳转换为某种格式的日期,例如“2014 年 4 月 25 日星期五”或其他某种常见的日期字符串格式?
我在这里查看并了解有几种输入日期的方法,但我想也必须有输出格式。 我也看到,有一个出口时间戳设置在这里,
<:
Toggle inclusion of any time/date active/inactive stamps (org-export-with-timestamps).
但不清楚实施意味着什么。
尝试这个:
(let ((org-time-stamp-custom-formats
'("<%A, %B %d, %Y>" . "<%A, %B %d, %Y %H:%M>"))
(org-display-custom-times 't))
(org-latex-export-to-latex))
更新:如果要从输出字符串中删除括号<>
,则必须修补函数org-translate-time
。 正常行为:
(let ((org-time-stamp-custom-formats
'("<%A, %B %d, %Y>" . "<%A, %B %d, %Y %H:%M>"))
(org-display-custom-times 't))
(org-translate-time "<2014-04-29 Tu.>")) => "<Tuesday, April 29, 2014>"
使用像这里这样的补丁功能https://gist.github.com/boykov/11387660
(let ((org-time-stamp-custom-formats
'("<%A, %B %d, %Y>" . "<%A, %B %d, %Y %H:%M>"))
(org-display-custom-times 't))
(org-translate-time "<2014-04-29 Tu.>")) => "Tuesday, April 29, 2014"
括号<>
是在函数org-translate-time
中硬编码的,您不能仅通过修复org-time-stamp-custom-formats
来删除它们。
您可以通过将以下函数添加到org-export-filter-timestamp-functions
来删除括号,而不是修补org-translate-time
:
(defun org-export-filter-timestamp-remove-brackets (timestamp backend info)
"removes relevant brackets from a timestamp"
(cond
((org-export-derived-backend-p backend 'latex)
(replace-regexp-in-string "[<>]\\|[][]" "" timestamp))
((org-export-derived-backend-p backend 'html)
(replace-regexp-in-string "&[lg]t;\\|[][]" "" timestamp))))
(eval-after-load 'ox '(add-to-list
'org-export-filter-timestamp-functions
'org-export-filter-timestamp-remove-brackets))
有关更多详细信息,请参阅http://endlessparentheses.com/better-time-stamps-in-org-export.html 。
以下对我来说效果很好。 我喜欢它,因为它不需要过滤掉“[]”或“<>”,并且选择目标格式非常简单。 不要忘记通过将org-export-allow-bind-keywords
为t
来允许#+BIND
。
#+BIND: org-latex-inactive-timestamp-format "%s"
#+BIND: org-latex-active-timestamp-format "%s"
#+BIND: org-export-filter-timestamp-functions (tmp-f-timestamp)
#+BEGIN_SRC emacs-lisp :exports results :results none
(defun tmp-f-timestamp (s backend info)
(cond
((org-export-derived-backend-p backend 'latex)
(let ((ts (org-timestamp-format (org-timestamp-from-string s) "%Y-%m-%d")))
(format "\\fbox{\\textbf{%s}} " ts)
))
(t s)))
#+END_SRC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.