MDPI的bib参考文献不显示会议地址

文章首发及后续更新:https://mwhls.top/4419.html,无图/无目录/格式错误/更多相关请至首发页查看。
新的更新内容请到mwhls.top查看。
欢迎提出任何疑问及批评,非常感谢!

过程描述

  • MDPI 的 bib 引用中,有地址信息,使用其它期刊的可以正常显示,但 MDPI 的不行。
  • 查看缺失地址的文献,发现地址虽然缺失了,但逗号还在,猜测可能是渲染出了问题。
  • 查看 mdpi.bst,看不懂,但可以猜测 inproceddings 是会议渲染函数,删除后,会议文献消失,猜测正确。
  • 找到包含年份的地方,有很多个,需要测试出错的位置。
  • 通过删除 format.pages output,发现页码删除,因此可以知道这个可以输出信息。
  • 多次测试,发现 format.publisher.and.address output.nonnull 导致不输出地址,更换为 address output 即可。
  • 看起来是缺失 publisher 这个字段。

解决方法

  • 找到下面这个函数,将17行的 format.publisher.and.address output.nonnull 换成 address output即可。
FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle.proc "booktitle" output.check
      address empty$
    { organization publisher new.sentence.checkb
      organization output
      publisher output
      format.bdate "year" output.check
    }
    { after.item 'output.state :=
      organization output
      format.publisher.and.address output.nonnull
      format.bdate "year" output.check
      after.item 'output.state :=
    }
      if$
    format.number.series output
    format.bvolume output
    format.pages output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  format.eprint output
  new.block
  note output
  formatfull.doi output
  fin.entry
}

更改结果如下

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle.proc "booktitle" output.check
      address empty$
    { organization publisher new.sentence.checkb
      organization output
      publisher output
      format.bdate "year" output.check
    }
    { after.item 'output.state :=
      organization output
      address output
      format.bdate "year" output.check
      after.item 'output.state :=
    }
      if$
    format.number.series output
    format.bvolume output
    format.pages output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  format.eprint output
  new.block
  note output
  formatfull.doi output
  fin.entry
}

猜你喜欢

转载自blog.csdn.net/asd123pwj/article/details/128941507
今日推荐