我添加了第二个参考书目,以便单独列出视频游戏的游戏目录。我使用以下biblatex
包配置:
\usepackage[%
backend=biber,
url=true,
style=ieee,
maxnames=4,
minnames=3,
maxbibnames=99,
giveninits,
uniquename=init,
dashed=false]{biblatex}
我按照以下网站的教程进行操作:https://www.davideaversa.it/blog/manage-videogames-bibliography-latex/
因此我添加了两个参考书目,如下所示:
\bibliography{bibliography}
\addbibresource{ludography.bib}
并像这样打印它们:
\printbibliography[title={Bibliography},nottype=software]{}
\printbibliography[title={Ludography},type=software]
我添加了以下新的引用命令以便在文中引用视频游戏:
\DeclareCiteCommand{\citegame}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifentrytype{software}{%
\printfield{title}%
\setunit{\addspace}%
\printtext[parens]{%
\printnames{author}%
\setunit{\addcomma\space}%
\printfield{year}}}{\GenericError{}{Not a game entry}{}{}}}
{\multicitedelim}
{\usebibmacro{postnote}}
它工作正常,但它在文本中的显示方式不包括典型的 IEEE 参考编号,例如 [4]。- .bib
entry
@software{bioshockinfinite,
author = {{Irrational Games}},
title = {BioShock: Infinite},
url = {http://www.bioshockinfinite.com/main.php},
version = {1.1.25},
date = {2013-03-26},
}
将显示为生化奇兵无限(Irrational Games,2013)在文中以及例如
[4] 非理性游戏.生化奇兵无限。版本 1.1.25。2013年3月26日。
在游戏学中。
第一个问题:我该如何编辑\DeclareCiteCommand
才能让数字显示在文本中?它应该显示生化奇兵无限(Irrational Games,2013 年)[4]。该数字还应充当游戏目录中条目的超链接,就像普通\cite
命令一样。
第二个问题:我如何将出版商添加到图书目录的条目中?当我像在正常书目中一样将其.bib
作为“ publisher = {{abc}}
”添加到文件中时,它不会显示出来。
答案1
这里尝试稍微重新定义一下,\gamecite
以便能够同时产生<title> (<author>, <year>)
和数字引用。
<title> (<author>, <year>)
首先,我们将打印分离\gamecite
到 bibmacro 中,以便于理解。然后,\citegame
如果合适,只需调用新的 bibmacro,就可以使用 打印数字引用标签cite:print:subentry:full
。
理想情况下,人们会尝试将其集成到正常的\autocite
和\cite
命令中,这样就不需要新的命令了,但是style=ieee,
,基于的style=numeric-comp,
,这是极其难的。
请注意,此解决方案需要最新版本的biblatex
。它已使用 v3.16(2020-12-31)进行了测试,但它也适用于 v3.15(2020-08-16)。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[%
backend=biber,
style=ieee,
minnames=3,
maxcitenames=4,
maxbibnames=99,
giveninits,
uniquename=init,
dashed=false,
url=true,
]{biblatex}
\usepackage[colorlinks]{hyperref}
\newbibmacro{gamecite}{%
\printfield[citetitle]{labeltitle}%
\setunit{\addspace}%
\printtext[parens]{%
\printnames{labelname}%
\setunit{\addcomma\space}%
% hack to display the date only as year
\csdef{blx@dateformat@date}{year}%
\mkdaterangeyear{}%
}%
}
\DeclareCiteCommand{\citegame}
{\usebibmacro{prenote}}
{\ifentrytype{software}
{\usebibmacro{gamecite}%
\setunit{\addspace}}
{\GenericError{}{Not a game entry}{}{}}%
\printtext[brackets]{%
\ifbool{bbx:subentry}
{\usebibmacro{cite:print:subentry:full}}
{\usebibmacro{cite:print:labelnumber}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\begin{filecontents}[overwrite]{\jobname.bib}
@software{bioshockinfinite,
author = {{Irrational Games}},
title = {BioShock: Infinite},
url = {http://www.bioshockinfinite.com/main.php},
version = {1.1.25},
date = {2013-03-26},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson}
ipsum \citegame{bioshockinfinite}
\printbibliography
\end{document}