我需要修改一篇用于会议的日本期刊论文。期刊指南规定参考文献应符合以下要求:
作者姓名:“标题”,出版物名称,卷数,页码(年份和月份)
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
希望能帮助到你。