我在 Emacs org-mode 中撰写社会科学研究论文。我希望将这些论文导出为 LaTeX 或 OpenOffice(以 MS Word 格式保存),无论哪种方式,都看起来美观,格式类似,包括脚注、引文和参考书目条目。
点击C-c C-e
org-more 文件将加载导出屏幕,其中包含 LaTex 导出,它们工作得很好。此屏幕在早期版本的 Org 中默认还包含 OpenOffice 导出,并且仍然可以通过运行启用它们(至少在 8.1 版中)org-export-odt-convert
。但这些导出根本不能很好地工作。LaTeX 标签毫无意外地被逐字逐句地包含,而不是经过处理。这意味着参考书目在 OpenOffice 文件中完全缺失,并且引用和格式都是错误的。
他们有解决方案吗?
答案1
有两种方法可以做到这一点,这取决于您是使用 Emacs 的内置软件包安装功能 (Mx package-install) 还是 use-package.el 或 straight.el。如果您还没有这样做,我鼓励您切换到直拉式因为从今天起大多数 Emacs 社区似乎都在使用它(并根据其自己的语法提供片段)。
Kristoffer Balintona 表示,您无法使用 biblatex 导出到 ODT。您只能将 biblatex(或 natbib,作者不推荐使用)与 LaTeX 一起使用,正如 Org 手册中所述:
相比之下,另外两个处理器专门针对 LaTeX 和 LaTeX 衍生格式:
(接下来是 natbib 和 biblatex 的描述。)
如果您想将参考文献导出到 ODT,则需要设置基本或 CSL 引文导出处理器。Kristoffer 推荐使用 CSL,所以我们就使用它吧。
首先去引用样式网站,CSL 官方网站。它链接到Zotero 存储库其中包含各种引用样式。下载适合您的学科惯例和语言的样式。
如果你不是英语单语者,那么你将需要使用以下工具将你的 CSL 导出处理器国际化这个存储库。您可以直接用例如以下命令进行克隆git clone https://github.com/citation-style-language/locales ~/Documents/csl-locales
。
然后,您可以在配置文件中插入以下代码片段(可以是其中之一,init.el
也可以通过它加载,例如(load-file "~/.emacs.d/org-cite.el")
:
(require 'org)
(require 'oc-csl)
(require 'oc-biblatex)
(setq org-cite-global-bibliography '("~/Documents/zotero_bibliography.bib"))
(setq org-cite-csl-styles-dir "~/Documents/styles-csl") ; which is the path to the directory where your CSL styles are stored
(setq org-cite-csl-locales-dir "~/Documents/csl-locales")
(setq org-cite-export-processors
'((latex biblatex authoryear) ; author-year citation style example for latex
; (latex biblatex) this snippet works too for the default citation style
(t csl "revue-francaise-de-sociologie.csl") ; for any other export processor, fallback to CSL
))
如果您对给定变量的语法感到不舒服,您应该能够使用 安全地对其进行自定义M-x customize-variable
。
如果你希望使用 straight.el 包管理器设置 CSL 和 BibLaTeX,你应该阅读 Kristoffer 的博客文章,尤其是配置子部分。
答案2
到目前为止,我发现的最佳解决方案是安装软件包tex4ht
。这样,我就可以mk4ht oolatex [filename].tex
在从 org-mode 导出 LaTeX 文件后对其运行 shell 命令,这会生成一个在 LibreOffice 中看起来不错的 ODT 文件。显然,这个 mk4ht 命令与 不兼容biblatex
,但如果我改用 BiBTeX 软件包natbib
,它就可以正常工作。
不幸的是,当我将其保存为 MS-Word 格式(无论是 DOC 还是 DOCX)时,参考书目就会消失。但我希望可以找到进一步的解决方案。