如何设置组织模式以便在HTML导出中包含\cite
LaTeX命令的结果?
示例:
Gulliver's Travels
My father had a small estate in Nottinghamshire: I was
the third of five sons.\cite{swift1726}
\printbibliography
#+LaTeX_HEADER: \usepackage{biblatex}
#+LaTeX_HEADER: \bibliography{classics}
LaTeX出口绝对棒极了。但HTML期望产生所有引用,因为它们在源头。但是如何实现这样的输出:
...
<title>Gulliver's Travels</title>
...
<p>My father had a small estate in Nottinghamshire: I was
the third of five sons.[<a href="#swift1726">1</a>]</p>
...
<p id="swift1726">[1] J. Swift. <i>Gulliver's Travels</i>. 1726.</p>
...
答案 0 :(得分:11)
org-mode contributed package org-exp-bibtex.el
使用bibtex2html生成HTML参考书目,然后在导出为HTML时将引用命令转换为参考书目项的链接。 org-exp-bibtex.el
中有一些文档。
我将添加一些其他信息,帮助我将此功能用于我的系统。文件org-exp-bibtex.el
似乎附带了最新版本的org模式。因此,如果您评估(require 'org-exp-bibtex)
,例如将其放在~/.emacs
中,然后将#+BIBLIOGRAPHY: classics plain
之类的内容放在源文件中代替您的LaTeX {{1} }和\bibliographystyle
命令。我发现我的系统需要\bibliography
的以下补丁。
org-exp-bibtex.el
如果您收到错误“Symbol的函数定义为void:flet”,则第一个更改会有所帮助,我学会了here。第二个更改只是调用bibtex2html并将TMPDIR设置为当前目录。 bibtex2html homepage建议针对bibtex2html与某些TeX安装存在的问题进行解决。
答案 1 :(得分:3)
Args out of range
错误。以下是源自a separate, unrelated, question on SO的答案之一的e3bo补丁的不同实现。我不能说我知道为什么这个补丁适合我,e3bo不适用;他们彼此并没有特别的不同。无论如何,我发布了补丁,希望它可以解决用户无法通过其他方式正确获得bibtex2html
所遇到的问题。
--- org-exp-bibtex.el.orig 2013-01-05 15:00:53.000000000 -0600
+++ org-exp-bibtex.el 2013-01-05 16:34:54.000000000 -0600
@@ -89,12 +89,13 @@
(with-temp-file tmp (dolist (i cite-list) (insert (concat i "\n"))))
(setq tmp-files (cons tmp tmp-files))
(setq extra-args (append extra-args `("-citefile" ,tmp)))))
-
- (when (not (eq 0 (apply 'call-process (append '("bibtex2html" nil nil nil)
+
+ (let ((process-environment (cons "TMPDIR=." process-environment)))
+ (when (not (eq 0 (apply 'call-process (append '("bibtex2html" nil nil nil)
`("-a" "--nodoc" "--style" ,style "--no-header")
extra-args
(list (concat file ".bib"))))))
- (error "Executing bibtex2html failed"))
+ (error "Executing bibtex2html failed")))
(dolist (f tmp-files) (delete-file f)))
答案 2 :(得分:3)
e3bo的回答中提到的贡献包已将其名称更改为ox-bibtex.el
(另请参阅list of Org mode's contributed packages中的条目)。用法保持不变。但是,现在~/.emacs
中插入的行必须为(require 'ox-bibtex)
。
答案 3 :(得分:1)
现在最近支持org-mode中的ebib,在编写此回复时至少可以使用其开发版本。
步骤:
确保在您的文档中正确设置了ebib-preload-bib-files,以便在ebib启动时由ebib加载.bib文件
将以下内容添加到您的.emacs:(org-add-link-type "ebib" 'ebib)
在您的文档中插入ebib链接,如下所示:[ebib:Jones1998][some paper title]
答案 4 :(得分:0)
如果你有bibtex2html的问题。查看ox.bibtex.el的文档。特别是
#+BIBLIOGRAPHY: bibfilename stylename optional-options
在e3bo答案中我希望classic
不在大多数人的bibfilename
#+BIBLIOGRAPHY: classics plain