我正在尝试将 LaTeX 文档导出为 OpenDocument (.odt) 格式。有些出版商不知道如何处理 LaTeX 文件,所以要求我执行此操作。
我找不到导出 LaTeX 文档的方法带有 Biblatex 参考文献以适当的方式。
下面是一个例子。我使用TeX4ht将 .tex 文件转换为 .odt
\begin{filecontents}{biblio.bib}
@Book{author00:_title,
author = {Author},
title = {Title},
publisher = {Publisher},
year = 2000}
\end{filecontents}
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear-comp,hyperref]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\bibliography{biblio}
\title{Test}
\author{Title}
\begin{document}
Test\cite{author00:_title}
\printbibliography
\end{document}
导出为 .odt 的 TeX4ht 命令如下:
mk4ht oolatex test.tex
此命令有效,但会创建一个没有引用的 OpenDocument 文件。引用被其键替换(在我们的示例中:author00:_title)。
关于 biblatex的输出mk4ht oolatex
如下:
No file test.bbl.
LaTeX Warning: Citation 'author00:_title' on page 1 undefined on input line 11.
LaTeX Warning: Empty bibliography on input line 13.
[1] (./test.aux)
LaTeX Warning: There were undefined references.
Package biblatex Warning: Please (re)run Biber on the file:
(biblatex) test
(biblatex) and rerun LaTeX afterwards.
)
因此我重新运行了 Biber,找到了参考:
biber test
defined(@array) is deprecated at /usr/share/perl5/Log/Log4perl/Config.pm line 864.
(Maybe you should just omit the defined()?)
INFO - This is Biber 1.7
INFO - Logfile is 'test.blg'
INFO - Reading 'test.bcf'
INFO - Found 1 citekeys in bib section 0
INFO - Processing section 0
INFO - Looking for bibtex format file 'biblio.bib' for section 0
INFO - Decoding LaTeX character macros into UTF-8
INFO - Found BibTeX data source 'biblio.bib'
INFO - Overriding locale 'fr_FR.UTF-8' default tailoring 'variable = shifted' with 'variable = non-ignorable'
INFO - Sorting 'entry' list 'nyt' keys
INFO - Writing 'test.bbl' with encoding 'UTF-8'
INFO - Output to test.bbl
然后我重新运行 TeX4ht( mk4ht oolatex test.tex
),结果意外结束:
(/usr/share/texmf/tex/generic/tex4ht/ooffice-mml.4ht)) (./test.aux) (./test.bbl
)
! Undefined control sequence.
\blx@begunit ...penalty \@M \hskip -\blx@unitmark
\relax \hskip \blx@unitmar...
l.11 Test\cite{author00:_title}
?
我该如何修复此错误并将我的 biblatex 参考文献导出为 odt 格式?
答案1
我使用 pandoc 找到了解决我的问题的方法(使用 biblatex 引用导出到 odt):
pandoc test.tex -o output.odt --bibliography /my/bibliography.bib -s
希望它能够帮助别人。
附言:即使升级后,Tex4ht 仍然无法为我渲染 biblatex。