2019年5月2日

だってさ.既存の.bstを少し変更するならこんな感じだろうか.以下amslpha.bstを改変する.

まず上の方にあるENTRYの一覧に新しいキー名を登録する.

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    language
    month
    mrnumber
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
    hokumura % 追加
  }
  {}
  { label extra.label sort.label bysame }

その後各タイプごとにhokumuraが空でなければそれを出力するだけにするようにする.例えばarticleならば,

FUNCTION {article}
{ output.bibitem
  hokumura empty$ % 追加
  { % 追加
  format.authors "author" output.check
  format.title "title" output.check
  crossref missing$
    { format.journal.vol.year "journal, volume, and year" output.check
      format.number output
      format.pages "pages" output.check
    }
    { format.article.crossref output.nonnull
      format.pages "pages" output.check
    }
  if$
  format.language *
  note output
  fin.entry
  % ここから追加
  }
  { write$ % output.bibitemの内容を出力する
    hokumura write$
  }
  if$
}

これで,.bibの中身を


@article{sample,
  author = {aaaa},
  hokumura = {some text}
}
としておけば「some text」だけ出力されるはず.ただしarticleだけなので,他の型に対しても同様の仕込みが必要.(各型の処理に回す前でも処理できるかな?)

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です