我目前(再次)面临一些有关参考书目布局的障碍。
我的研究所的正式规定要求将组织添加到在线资源中,如果在主标题前有大写字母,则应使用斜体(而网站的文章标题应该是纯文本)。
然而,当谈到参考书目变化时,我真的很困惑,因为我不确定我的任何更改是否也会影响其他条目类型,因此我想知道您是否可以帮助我。
因此,为了便于组织,应更改位置以及将纯文本改为小写字母。不过,这仅适用于在线资源。
抱歉,谢谢!
这是我的 MWE(我试图尽可能地减少它,但是有几个设置已经生效,所以我不得不添加它们):
\documentclass[12pt]{scrartcl}
\usepackage[left=2.50cm, right=2.50cm, top=2.50cm, bottom=2.00cm, footskip=1cm]{geometry}
\usepackage[onehalfspacing]{setspace}
\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[ngerman]{isodate}
\usepackage[ngerman]{datetime}
%----------------------------------------------------------------------------
% BIB
%----------------------------------------------------------------------------
\usepackage[
backend=biber,
style=ext-authoryear,
sorting=nyvt,
maxnames=25,
innamebeforetitle=true,
usetranslator=true,
alldates=terse,
labeldate=year,
dashed=false,
isbn=false
]{biblatex}
\usepackage[hidelinks]{hyperref}
\DefineBibliographyStrings{german}{%
andothers = {et al\adddot},
editor = {Hg\adddot},
editors = {Hg\adddot},
urlseen = {letzter Abruf},
}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite=false]{
\pertype{article}
\step[fieldsource=entrysubtype, match=\regexp{\Anewspaper\Z}, final]
\step[fieldsource=journal, final]
\step[fieldset=author, origfieldval, final]
\step[fieldsource=author, match=\regexp{\A(.*)\Z}, replace=\regexp{\{$1\}}]
\step[fieldset=author+an, fieldvalue={1=journalauthor}]
\step[fieldset=options, fieldvalue={journalauthor}]
}
}
}
\newtoggle{bbx@journalauthor}
\DeclareEntryOption[boolean]{journalauthor}[true]{%
\settoggle{bbx@journalauthor}{#1}}
\renewcommand{\mkbibnamefamily}[1]{%
\ifitemannotation{journalauthor}
{\mkbibemph{#1}}
{\textsc{#1}}}
\DeclareDelimFormat[bib]{nametitledelim}{\addcolon\space}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}
\DeclareFieldAlias{translatortype}{editortype}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,unpublished,online]
{title}{#1\isdot}
\DeclareFieldFormat
[thesis]
{title}{\mkbibemph{#1}\isdot} % thesis title italic
% no period after addon titles
\renewcommand*{\titleaddonpunct}{\addspace}
\DeclareFieldFormat{titleaddon}{\mkbibbrackets{#1}}
\DeclareFieldAlias{booktitleaddon}{titleaddon}
\DeclareFieldAlias{maintitleaddon}{titleaddon}
\newbibmacro{online:editor+maintitle}{%
\printnames{editor}%
\setunit*{\addcolon\space}%
\usebibmacro{maintitle}}
\usepackage{xpatch}
\xpatchbibdriver{online}
{\usebibmacro{byeditor+others}}
{\usebibmacro{online:editor+maintitle}}
{}{}
\xpatchbibmacro{editorstrg}{\bibstring}{\bibcpstring}{}{}
\xpatchbibmacro{editorstrg}{\bibstring}{\bibcpstring}{}{}
\renewbibmacro*{in:}{%
\iftoggle{bbx@journalauthor}
{}
{\printtext{%
\bibstring{in}\intitlepunct}}}
\DeclareNameAlias{ineditor}{sortname}
\renewcommand*{\volnumdelim}{\addcomma\space}
% set online sources as per IOA
\renewbibmacro*{addendum+pubstate}{%
\setunit{\space}%
\printfield{addendum}%
\newunit\newblock
\printfield{pubstate}}
\urlstyle{same}%
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\addcolon\space#1}}
\makeatletter
\renewbibmacro*{cite:labeldate+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[extblx@inner\blx@delimcontext delims]{%
\printtext[bibhyperref]{%
\iftoggle{bbx@journalauthor}
{\printfield{issue}%
\setunit{\addcomma\space}%
\printtext[\blx@delimcontext labeldate]{%
\printdateextra}}
{\printtext[\blx@delimcontext labeldate]{%
\printlabeldateextra}}}}}}
\makeatother
\renewcommand\postnotedelim{\addcolon\addspace}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{multipostnote}{\mknormrange{#1}}
\begin{filecontents*}{\jobname.bib}
@online{NetGtas.,
author = {Net-Gtas},
title = {Testimonial Videos of Survivors},
url = {https://www.global-peace.go.jp/en/picture/index.php},
urldate = {2019-06-23},
maintitle = {National Peace Memorial Halls for the Atomic Bomb Victims in Hiroshima and Nagasaki},
organization = {{Net-Gtas Global Network}}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
%----------------------------------------------------------------------------
\begin{document}
\nocite{*}
\printbibliography[heading=bibintoc,title={Literaturverzeichnis}]
\end{document}
答案1
由于您已经online
用自定义online:editor+maintitle
宏修补了驱动程序,我建议只修改此宏以插入organization
,然后清除organization
,以便以后不再打印。
您可以调整organization
列表格式以仅online
添加小型大写字母的条目类型。
因此你可以添加这个:
\DeclareListFormat[online]{organization}{%
\textsc{%
\usebibmacro{list:delim}{#1}%
#1\isdot
\usebibmacro{list:andothers}}}
并改变它(您可能需要调整顺序和标点符号以完全符合您的要求):
\newbibmacro{online:editor+maintitle}{%
\printlist{organization}%
\clearlist{organization}%
\setunit*{\addcolon\space}%
\printnames{editor}%
\setunit*{\addcolon\space}%
\usebibmacro{maintitle}}
平均能量损失
\documentclass[12pt]{scrartcl}
\usepackage[left=2.50cm, right=2.50cm, top=2.50cm, bottom=2.00cm, footskip=1cm]{geometry}
\usepackage[onehalfspacing]{setspace}
\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[ngerman]{isodate}
\usepackage[ngerman]{datetime}
%----------------------------------------------------------------------------
% BIB
%----------------------------------------------------------------------------
\usepackage[
backend=biber,
style=ext-authoryear,
sorting=nyvt,
maxnames=25,
innamebeforetitle=true,
usetranslator=true,
alldates=terse,
labeldate=year,
dashed=false,
isbn=false
]{biblatex}
\usepackage[hidelinks]{hyperref}
\DefineBibliographyStrings{german}{%
andothers = {et al\adddot},
editor = {Hg\adddot},
editors = {Hg\adddot},
urlseen = {letzter Abruf},
}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite=false]{
\pertype{article}
\step[fieldsource=entrysubtype, match=\regexp{\Anewspaper\Z}, final]
\step[fieldsource=journal, final]
\step[fieldset=author, origfieldval, final]
\step[fieldsource=author, match=\regexp{\A(.*)\Z}, replace=\regexp{\{$1\}}]
\step[fieldset=author+an, fieldvalue={1=journalauthor}]
\step[fieldset=options, fieldvalue={journalauthor}]
}
}
}
\newtoggle{bbx@journalauthor}
\DeclareEntryOption[boolean]{journalauthor}[true]{%
\settoggle{bbx@journalauthor}{#1}}
\renewcommand{\mkbibnamefamily}[1]{%
\ifitemannotation{journalauthor}
{\mkbibemph{#1}}
{\textsc{#1}}}
\DeclareDelimFormat[bib]{nametitledelim}{\addcolon\space}
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}
\DeclareFieldAlias{translatortype}{editortype}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,unpublished,online]
{title}{#1\isdot}
\DeclareFieldFormat
[thesis]
{title}{\mkbibemph{#1}\isdot} % thesis title italic
% no period after addon titles
\renewcommand*{\titleaddonpunct}{\addspace}
\DeclareFieldFormat{titleaddon}{\mkbibbrackets{#1}}
\DeclareFieldAlias{booktitleaddon}{titleaddon}
\DeclareFieldAlias{maintitleaddon}{titleaddon}
\newbibmacro{online:editor+maintitle}{%
\printlist{organization}%
\clearlist{organization}%
\setunit*{\addcolon\space}%
\printnames{editor}%
\setunit*{\addcolon\space}%
\usebibmacro{maintitle}}
\usepackage{xpatch}
\xpatchbibdriver{online}
{\usebibmacro{byeditor+others}}
{\usebibmacro{online:editor+maintitle}}
{}{}
\xpatchbibmacro{editorstrg}{\bibstring}{\bibcpstring}{}{}
\xpatchbibmacro{editorstrg}{\bibstring}{\bibcpstring}{}{}
\renewbibmacro*{in:}{%
\iftoggle{bbx@journalauthor}
{}
{\printtext{%
\bibstring{in}\intitlepunct}}}
\DeclareNameAlias{ineditor}{sortname}
\renewcommand*{\volnumdelim}{\addcomma\space}
% set online sources as per IOA
\renewbibmacro*{addendum+pubstate}{%
\setunit{\space}%
\printfield{addendum}%
\newunit\newblock
\printfield{pubstate}}
\urlstyle{same}%
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\addcolon\space#1}}
\makeatletter
\renewbibmacro*{cite:labeldate+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[extblx@inner\blx@delimcontext delims]{%
\printtext[bibhyperref]{%
\iftoggle{bbx@journalauthor}
{\printfield{issue}%
\setunit{\addcomma\space}%
\printtext[\blx@delimcontext labeldate]{%
\printdateextra}}
{\printtext[\blx@delimcontext labeldate]{%
\printlabeldateextra}}}}}}
\makeatother
\renewcommand\postnotedelim{\addcolon\addspace}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{multipostnote}{\mknormrange{#1}}
\DeclareListFormat[online]{organization}{%
\textsc{%
\usebibmacro{list:delim}{#1}%
#1\isdot
\usebibmacro{list:andothers}}}
\begin{filecontents*}{\jobname.bib}
@online{NetGtas.,
author = {Net-Gtas},
title = {Testimonial Videos of Survivors},
url = {https://www.global-peace.go.jp/en/picture/index.php},
urldate = {2019-06-23},
maintitle = {National Peace Memorial Halls for the Atomic Bomb Victims in Hiroshima and Nagasaki},
organization = {{Net-Gtas Global Network}}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
%----------------------------------------------------------------------------
\begin{document}
\nocite{*}
\printbibliography[heading=bibintoc,title={Literaturverzeichnis}]
\end{document}