Citation Style Language(CSL) 是一种开源的标准化语言,用于定义学术文献的引用和参考文献格式。它被广泛用于文献管理工具(如 Zotero、Mendeley、JabRef)以及 LaTeX 和其他文档处理系统,以自动化格式化参考文献。CSL 让学术写作中的引用管理更加高效、规范和自动化,无论你是学生、研究人员,还是编辑工作者,都可以通过它大幅提升文献管理效率! 🔥📖
CSL 的特点:
📌 更多资源:
在 Zotero/Mendeley 等软件中直接使用 现有的 CSL 文件,自动格式化参考文献。您也可以自定义 CSL 样式:如果默认样式不能满足需求,可以在 [CSL 编辑器]() (https://editor.citationstyles.org/) 中修改或创建新的格式。
那么, 在 LaTeX 如何用 CSL 规范的参考文献。就有了Zeping Lee 的 citation-style-language 项目。
citation-style-language 包是一个利用 CSL(Citation Style Language)样式为 LaTeX 提供参考文献格式化方法的项目。CSL 是一种基于 XML 的语言,定义了引用和参考文献的格式,目前已有包括 APA、Chicago、Vancouver 等数千种样式。这个包包含一个用纯 Lua 实现的引用处理器 citeproc-lua,它能读取书目元数据,并根据选定的 CSL 样式对引用和参考文献进行排序和格式化。同时,它还提供了一个 LaTeX 包 citation-style-language.sty 来与处理器通信。
这个包在 TeX Live 2022 或更高版本中可以找到,大多数用户可以通过 tlmgr 安装。如果你想安装 GitHub 开发版本,可以按照以下步骤操作:
git clone https://github.com/zepinglee/citeproc-lua # 克隆仓库
cd citeproc-lua
git submodule update --init --remote # 获取子模块
l3build install
这些命令会将包文件安装到 TEXMFHOME,通常在 Linux 上是 ~/texmf,在 macOS 上是 ~/Library/texmf。此外,citeproc-lua 可执行文件需要复制到 PATH 环境变量中的某个目录,以便在 shell 中直接调用。例如,如果 ~/bin 在 PATH 中,可以运行以下命令:
cp citeproc/citeproc-lua.lua "~/bin/citeproc-lua"
要从 TEXMFHOME 卸载包,只需运行 l3build uninstall。
使用 citation-style-language 包非常简单,以下是一个示例:
\documentclass{...}
\usepackage[style=apa]{citation-style-language}
\addbibresource{bibfile.json}
\begin{document}
\cite{...} ...
\printbibliography
\end{document}
编译文档的流程因引擎而异。对于 LuaTeX,由于 CSL 处理器是用 Lua 编写的,可以直接在 LuaTeX 中运行,无需运行外部程序,只需运行两次 latex,就像处理带有交叉引用的文档一样。对于其他引擎,则需要在 .aux 文件上运行 citeproc-lua 可执行文件来生成引用和参考文献,具体步骤如下:
可以通过在加载包时或之后的任何时间使用 cslsetup 命令来设置包选项,这两种方法是等效的。例如:
\usepackage[style=apa]{citation-style-langugage} % 或者
\usepackage{citation-style-langugage}
\cslsetup{style = apa}
其中,style=⟨style-id⟩ 选项选择用于引用和参考文献的样式文件 ⟨style-id⟩.csl。已实现的 CSL 样式文件可在官方 GitHub 仓库 2 以及 Zotero 样式仓库 3 中找到,用户可以搜索并下载 .csl 文件到工作目录。此外,包中还分发了一些样式,可以直接加载而无需下载。
citation 命令与标准 LaTeX 中的类似,但前缀 ⟨options⟩ 是键值对形式。⟨options⟩ 可以是 prefix、suffix 或者像 page 或 figure 这样的定位符。例如:
\cite[prefix = {See }, page = 42]{ITEM-1}
传统的形式 cite⟨prenote⟩{⟨keys⟩}(由 natbib 和 biblatex 引入)也受支持,但不推荐。如果只提供一个可选参数,它将被视为 ⟨postnote⟩。如果 ⟨postnote⟩ 仅由数字组成,它将作为页码定位符使用。
此外,还提供了 parencite、citep、textcite、citet、footcite 等命令,分别用于兼容 biblatex 和 natbib 包,以及生成叙事性文中引用等。
printbibliography 命令用于打印参考文献列表,它还接受一个可选参数,该参数是一个键值对列表,用于进一步定制参考文献的输出。
citation-style-language 包与 babel、beamer 和 hyperref 等包具有良好的兼容性。当与 babel 一起加载时,babel 设置的主要语言将作为 citation-style-language 的本地化语言。在 beamer 中,除了 backref 选项外,大多数功能都能正常工作,目前可以通过 hyperref 的 backref 选项来解决此问题。当加载 hyperref 时,DOIs、PMIDs 和 PMCIDs 会被正确呈现为超链接。
然而,以下包与 citation-style-language 不兼容,如果与 citation-style-language 一起加载,将触发错误:
citation-style-language 包为 LaTeX 用户提供了一种灵活、强大的参考文献格式化方法,它利用丰富的 CSL 样式资源,使得用户可以轻松实现各种引用格式的需求。无论是学术论文写作还是其他需要规范引用的 LaTeX 文档,这个包都值得你尝试!感兴趣的小伙伴可以访问项目的 GitHub 仓库 1 获取更多详细信息和进行贡献哦。