You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让CSL与citeproc按参考文献语言应用不同著录格式?

解决CSL按语言区分参考文献格式的正确配置方式

核心问题

你之前尝试自定义lang-zh变量判断中文文献,但CSL不识别这类自定义字段,正确做法是利用CSL原生语言匹配机制,结合标准BibTeX字段实现需求。

步骤1:修正.bib文件的语言字段

在BibTeX条目中使用标准language字段,填入符合BCP 47规范的语言代码,删除所有自定义字段:

@article{chen2012,
  title    = {基于电无级变速器的内燃机最优控制策略及整车能量管理},
  author   = {陈骁 and 黄声华 and 万山明 and 庞珽},
  journal  = {电工技术学报},
  volume   = {27},
  number   = {2},
  pages    = {133--138},
  year     = {2012},
  language = {zh-CN}  % 简体中文用zh-CN,通用中文用zh,英文用en
}

步骤2:修改CSL的语言判断逻辑

将CSL中自定义的<if variable="lang-zh">替换为原生语言判断语法:

<citation>
   ...
    <layout>
      <choose>
        <if lang="zh">
          <!-- 中文参考文献使用全角逗号分隔 -->
          <group delimiter=",">
            <text macro="author-short-zh" />
            <text macro="issued-year-zh" />
            <text macro="citation-locator-zh" />
          </group>
        </if>
        <else>
          <!-- 英文参考文献使用半角逗号分隔 -->
          <group delimiter=", ">
            <text macro="author-short" />
            <text macro="issued-year" />
            <text macro="citation-locator" />
          </group>
        </else>
      </choose>
    </layout>
  </citation>

额外说明

  • 若要匹配所有中文变体(如zh-CN、zh-TW等),可使用通配符写法:<if lang="zh*">
  • BCP 47常用语言代码:英文用en,美式英文en-US,繁体中文zh-TW

内容的提问来源于stack exchange,提问作者Carlos Luis Rivera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:55:38