强制使用单个元素的参考书目样式

强制使用单个元素的参考书目样式

我收藏了一些文献。其中大部分是人类作者的正常出版物,我用这种alpha风格引用它们,就像这样 [SDG17]。

对于某些引用,作者不是人类。本标准例如,它是由 发布的On-Road Automated Driving (ORAD) Committee,这对我来说没问题。但我不希望在我的文本中显示为 [Com21],而是显示为例如 [SAE21] 或甚至 [SAE-J3016]。

我能否以某种方式将不同的引用文本强制放到单个 bib-id 上?

最好的情况是这样的:

\forcecitation{bib-id}{SAE-J3016}

答案1

值得注意的是,使用 biblatex,您只需使用 shortauthor 或速记即可完成此操作。但是,使用 bibtex,除了更改样式文件之外别无他法,所以就这样吧 :)。

  1. 将 alpha.bst 复制到 customalpha.bst

  2. 在 ENTRY 列表中,添加以下行customlabel

  3. 寻找

    FUNCTION {calc.label}
    

并将现有函数体替换为

FUNCTION {calc.label}
{ customlabel empty$
  { type$ "book" =
    type$ "inbook" =
    or
      'author.editor.key.label
      { type$ "proceedings" =
          'editor.key.organization.label
          { type$ "manual" =
              'author.key.organization.label
              'author.key.label
            if$
          }
        if$
      }
    if$
    duplicate$
    year field.or.null purify$ #-1 #2 substring$
    *
    'label :=
    year field.or.null purify$ #-1 #4 substring$
    *
    sortify 'sort.label :=
  }
  {  customlabel 'label :=
     customlabel 'sort.label :=
  }
  if$
}

基本上,我将测试添加customlabel empty$到开头并定义如果它不在结尾处该怎么做(customlabel 'label :=等等)。

在您想要自定义的条目上,只需添加字段customlabel即可。

相关内容