如何在Quarto中匹配特定格式的CSL科学引用样式?
适配Quarto的自定义CSL引用样式方案
针对你需要的格式:作者姓氏, 作者名字 (年份): 文章标题, in: 期刊名, 卷期, 页码.,直接找现成的CSL样式确实难匹配,推荐两种落地方案:
1. 修改现有接近样式
先筛选带括号年份的基础样式(比如部分欧盟学术期刊的CSL模板),然后手动调整核心规则:
- 打开目标CSL文件,定位
<citation>下的<layout>节点 - 将作者与年份的分隔逻辑修改:把原作者块后的
", "替换为" (",年份节点后追加"):" - 调整文章标题后的标点,确保和后续
in:衔接自然
2. 直接编写自定义CSL文件
如果找不到合适的基础样式,直接写一个极简版的CSL(保存为custom-scientific.csl):
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="note" default-locale="en-US"> <info> <title>Custom Scientific Citation Style</title> <updated>2024-05-20T00:00:00Z</updated> </info> <citation> <layout delimiter="; "> <!-- 作者+年份组合块 --> <group delimiter=": "> <group delimiter=" "> <name delimiter=", " name-as-sort-order="all"> <family/> <given/> </name> <date variable="issued"> <date-part name="year" prefix="(" suffix=")"/> </date> </group> <!-- 文章标题 --> <text variable="title"/> </group> <!-- 期刊及页码信息 --> <text term="in" prefix=", "/> <text variable="container-title"/> <text variable="volume" prefix=", "/> <text variable="issue" prefix="(" suffix=")"/> <text variable="page" prefix=", "/> <text suffix="."/> </layout> </citation> </style>
然后在Quarto项目的_quarto.yml中配置引用规则:
bibliography: your-references.bib csl: custom-scientific.csl
验证与调整
- 生成文档预览后,检查多作者、无卷期等特殊场景的格式是否达标
- 如果需要同步调整参考文献列表的格式,可以在CSL文件中补充
<bibliography>节点规则
内容的提问来源于stack exchange,提问作者winnewoerp
相关产品推荐
相关产品推荐

