CSL

LaTeX 文献引用:citation-style-language 包让 CSL 帮你轻松管理文献,告别格式烦恼!

发布于 2025-03-18 22:14:10

Citation Style Language(CSL) 是一种开源的标准化语言,用于定义学术文献的引用和参考文献格式。它被广泛用于文献管理工具(如 ZoteroMendeleyJabRef)以及 LaTeX 和其他文档处理系统,以自动化格式化参考文献。CSL 让学术写作中的引用管理更加高效、规范和自动化,无论你是学生、研究人员,还是编辑工作者,都可以通过它大幅提升文献管理效率! 🔥📖

CSL 的特点

  • 📚 通用性:支持数千种学术期刊和出版机构的引用格式,如 APA、MLA、Chicago、IEEE 等。
  • 🔄 可扩展性:用户可以修改或创建自定义的引用样式,满足特定期刊或机构的要求。
  • 🖥️ 跨平台支持:被多种文献管理工具和文本处理软件集成,适用于 LaTeX、Markdown、Word 等环境。
  • 🔧 基于 XML 设计:使用 XML 语法定义引用格式,易于解析和修改。

📌 更多资源

CSL-Editor

那么, 在 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 可执行文件来生成引用和参考文献,具体步骤如下:

  1. 在 example.tex 上运行 latex。
  2. 在 example.aux 上运行 citeproc-lua,引擎会读取 .csl 样式文件、CSL 本地化文件和 .bib 数据库,然后将处理后的引用和参考文献写入 example.bbl。
  3. 再次在 example.tex 上运行 latex,加载 .bbl 文件并打印所有引用和参考文献。

四、包设置

可以通过在加载包时或之后的任何时间使用 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 一起加载,将触发错误:

  • babelbib
  • backref
  • biblatex
  • bibtopic
  • bibunits
  • chapterbib
  • cite
  • citeref
  • inlinebib
  • jurabib
  • mcite
  • mciteplus
  • multibib
  • natbib
  • splitbib

citation-style-language 包为 LaTeX 用户提供了一种灵活、强大的参考文献格式化方法,它利用丰富的 CSL 样式资源,使得用户可以轻松实现各种引用格式的需求。无论是学术论文写作还是其他需要规范引用的 LaTeX 文档,这个包都值得你尝试!感兴趣的小伙伴可以访问项目的 GitHub 仓库 1 获取更多详细信息和进行贡献哦。

资源下载

0 条评论

发布
问题