在修改后的 plain.bst 文件中的年份处添加括号

在修改后的 plain.bst 文件中的年份处添加括号

我需要修改一篇用于会议的日本期刊论文。期刊指南规定参考文献应符合以下要求:

作者姓名:“标题”,出版物名称,卷数,页码(年份和月份)

Journal 提供了文档类,但没有 bst 文件。我试图在末尾添加括号,而无需向我的源添加任何新包。我使用的是 bibtex,并且我已将 bst 文件修改如下:

FUNCTION {format.date}
{ year empty$
    { month empty$
        { "" }
        { "there's a month but no year in " cite$ * warning$
          month
        }
      if$
    }
     { month empty$
         'year
        { " (" * year * ")" * }
      if$
    }
  if$
}

这不起作用。另外,我不明白要修改什么才能:在作者姓名后添加。

尝试使用列出的解决方案这里(将年份放在括号中...)会产生错误。

这个答案我已经知道 Bibulous 格式的存在,我明天会尝试一下(这里真的很晚了……)

答案1

解决方案使用Bibulous项目脚本。

样式文件声明如下:

OPTIONS:
allow_scripts = True

VARIABLES:
formatdate = format_date_style(entry, options)
formatpages = format_pages_style(entry, options)
formatvolume = format_volumes_style(entry, options)

DEFINITIONS:
def format_date_style(entry, options):
  """
  Return correct year for ieej-jia -> (month if present, year) in parentheses
  """

  if ('year' not in entry):
    return(options['undefstring'])
  else:
    if ('month' not in entry):
      return('(' + str(entry['year']) + ')')
    else:
      return('(' + entry['month'].title() + ', ' + str(entry['year'])+ ')')

def format_pages_style(entry, options):
    """
    Returns pages if present
    """

    if ('pages' in entry):
        return(str(entry['pages']) + ', ')
    else:
        return('')

def format_volumes_style(entry, options):
    """
    Return Volume, Number
    """

    ret = ''
    if ('volume' in entry):
        ret = ret + str(entry['volume']) + ', '

    if ('number' in entry):
        ret = ret + str(entry['number']) + ', '

    return(ret)

TEMPLATES:
article       = <au>: ``<title>'', <journal>, <formatvolume> <formatpages> <formatdate>
book          = <au>: ``<title>'', <publisher>, <formatpages> (<year>)
electronic    = <au>: ``\href{<url>}{<title>}'',  (<year>)
inproceedings = <au>: ``<title>'', <booktitle>, <formatpages> (<year>)
incollection  = <au>: ``<title>'', <booktitle>, <publisher>, <formatpages> (<year>)
sortkey       = <citekey>

并将对此文件的引用插入到主 tex 文件

\bibliographystyle{previous_file}

编译需要三个命令(以 为例pdflatex):

pdflatex main.tex     # to generate aux file
bibulous.py main.aux  # to generate bbl
pdflatex main.tex     # to generate final pdf

希望能帮助到你。

相关内容