同事,
我正在努力将我的书稿从 LaTeX 转换为 Word 文档,供我的出版商使用,使用芝加哥引文样式。特别是,他们要求使用完整/简短的芝加哥引文脚注样式。为了简单起见,我提供了一个最小的工作示例:
\usepackage[style=verbose]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{testref.bib}
@article{Doe,
author = {John Doe},
journal = {Sample Journal},
number = {1},
pages = {1-20},
title = {This is a sample title of the Pandoc reference},
volume = {14},
year = {2022}}
\end{filecontents}
% File is created and written to disk by the above package
\addbibresource{testref.bib}
\begin{document}
John Doe says ``This is a test of Pandoc output using Chicago style.''\footcite[2]{Doe} This is also a generic footnote for comparison.\footnote{A footnote appears here.}
\end{document}
所需的脚注引用为:
- John Doe,“这是 Pandoc 参考的示例标题,”样本期刊14,第1期(2022):2。
使用 Mac 终端,我输入了以下代码,
pandoc --citeproc Test.tex --bibliography=testref.bib --csl=chicago-fullnote-bibliography-short-title-subsequent.csl -o test.docx
不幸的是,这导致了以下错误,
资源路径中未找到文件 chicago-fullnote-bibliography-short-title-subsequent.csl
我从github.com/citation-style-language/styles并使用 TextEdit 保存到我的工作目录 ( cd ~/Desktop
)。不幸的是,这仍然没有解决错误。
非常感谢您的任何建议!
答案1
因此,我发现了一个解决方案,它需要一个额外的 Lua 过滤器,只需用 Pandoc 调用即可。例如,
pandoc --citeproc Test.tex --lua-filter=remove-parentheses-from-cite.lua --bibliography=testref.bib --csl=chicago-fullnote-bibliography-short-title-subsequent.csl -o test.docx
Lua 过滤器如下(以.lua 扩展名保存在文本编辑器中):
local lastInnermostElem = elemsList[#elemsList]
if not lastInnermostElem.t == "Str" then
getLastInnermostElem(lastInnermostElem)
end
return lastInnermostElem
end
local function getFirstInnermostElem(elemsList)
local firstInnermostElem = elemsList[1]
if not firstInnermostElem.t == "Str" then
getFirstInnermostElem(firstInnermostElem)
end
return firstInnermostElem
end
local function removeTrailingSpace(formattedCitation)
if formattedCitation[1].t == "Space" then
formattedCitation:remove(1)
end
end
local function removeParentheses(formattedCitation)
local lastInnermostElem = getLastInnermostElem(formattedCitation)
lastInnermostElem.text = string.gsub(lastInnermostElem.text, "%)$", "")
local firstInnermostElem = getFirstInnermostElem(formattedCitation)
firstInnermostElem.text = string.gsub(firstInnermostElem.text, "^%(", "")
end
local correct_citation = {
Cite = function(cite)
removeTrailingSpace(cite.content)
removeParentheses(cite.content)
return cite
end
}
function Note(note)
return pandoc.walk_inline(note, correct_citation)
end
请注意,我确实不是编写此过滤器,不能为此承担任何责任。Pandoc 论坛上的用户非常友好地提供了帮助,并允许我与其他可能遇到类似问题的人分享此过滤器,他们将 LaTeX 文件转换为带有芝加哥风格引文的 Word 文档。
我希望这对其他人有帮助!
答案2
更新:我从Zotero 样式库并成功生成了 Word 文档!一切看起来都很好,但我遇到了样式格式的新问题,这可能会有问题。特别是,使用该\autocite
命令的脚注中的引用出现在括号中(尽管 LaTeX 输出看起来不错):
关于如何删除脚注中的括号,有什么建议吗?我是否必须手动编辑 csl 文件?或者,也许 Zotero 有其他可用的 csl 文件?