Biblatex:依赖于速记的 Autocite

Biblatex:依赖于速记的 Autocite

我想定制 biblatex 的 autocite 命令的行为。

一般来说,autocite 的行为应该类似于 footcite。但是,在某些情况下,我应该像 parencite 一样,例如当定义了简写字段时。(或者,更好的是,当定义了简写字段并且之前没有被引用时,它应该像 parencite 一样。)

因此,我们有以下可能的情况:

  1. 速记未定义:Autocite=footnote。

  2. 简写定义:Autocite=inline。

2a. 简写已定义,且标题之前已被引用:autocite=inline。

2b. 简写已定义,但它是相应标题的第一次引用:autocite=footcite。

所以,基本上它归结为一个问题,即我是否(以及如何)可以在引用命令的声明中使用类似\iffieldundef和的测试。\ifciteseen

答案1

您可以使用 定义自己的 cite 命令(或者重新定义现有的命令)\DeclareCiteCommand

它需要 4 个强制参数:第一个参数用于设置前注的格式,第二个参数用于循环引用(并实际打印引用),第三个参数用于引用之间的分隔符,最后一个参数用于后注。在参数中,您可以使用标准 biblatex 指令,例如:

\DeclareCiteCommand{\mycite}
  {}
  {\iffieldundef{shorthand}{no short hand}{\printfield{shorthand}}, 
   \ifciteseen{not the first time}{first time}}
  {}
  {}

可以在其他条件语句中使用条件语句。

相关内容