
カスタム bibstrings を追加し、 language を使用しましたngerman
。before bibstrings の定義をngerman
空白のままにしておくと、希望どおりの日付形式が印刷されます。DD.MM.YYYY
ただし、 LanguageMappingngerman
または を使用するとgerman
、DD/MM/YYYY として表示されます。これはなぜでしょうか。また、正しい形式を表示する正しい方法は何ですか。
LBXファイル:
\ProvidesFile{custombibstrings.lbx}[2019 SoSe]
\DeclareBibliographyStrings{%
inherit = {ngerman},
andothers = {{et al\adddot}{et al\adddot}},
byeditor = {{herausgegeben von}{hg\adddotspace von}},
bytranslator = {{übersetzt von} {{\"u}bers\adddotspace von}},
editor = {{Herausgeber}{Hg\adddot}},
editors = {{Herausgeber}{Hg\adddot}},
urlseen = {{letzter Abruf}{letzter Abruf}},
paragraph = {{Paragraph}{\S}},
subparagraph = {{Absatz}{Abs\adddot}},
article = {{Artikel}{Art\adddot}},
bydirector = {{unter der Regie von}{unter der Regie von}},
byproducer = {{produziert von}{produziert von}},
volume = {{Vol\adddot}{Vol\adddot}},
seriesseason = {{Staffel}{Staffel}},
episode = {{Episode}{Episode}},
duration = {{Spieldauer}{Spieldauer}},
fsk = {{FSK}{FSK}},
}
ムウェ
% arara: lualatex: { shell: true, synctex: true }
% arara: biber
% arara: lualatex: { shell: true, synctex: true }
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@online{Amano.2011,
author = {Amano, Fumiko},
title = {Testimonial Videos of Survivors},
url = {https://www.global-peace.go.jp/OTHER/ot_german_pic_syousai.php?gbID=920&dt=161012173049},
date = {2011-11-18},
urldate = {2019-08-23},
maintitle = {National Peace Memorial Halls for the Atomic Bomb Victims in Hiroshima and Nagasaki},
organization = {{Net-Gtas Global Network}},
keywords = {primary}
}
\end{filecontents*}
\documentclass[
12pt,
a4paper,
headings=standardclasses,
listof=totoc,
numbers=noenddot
]{scrartcl}
\usepackage{showframe}
\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}
\usepackage[match,MogaHMinEx90]{luatexja-preset}
\setmainjfont{MogaHMinEx90}
\usepackage{luatexja-ruby}
\ltjsetparameter{jacharrange={-3}} % punctuation is Latin
\usepackage[
backend=biber,
style=ext-authoryear,
sorting=nyvt,
datamodel=customstyles,
maxnames=25,
innamebeforetitle=true,
usetranslator=true,
alldates=terse,
labeldate=year,
dashed=false,
isbn=false
]{biblatex}
\addbibresource{\jobname.bib}
\usepackage[hidelinks, pdfencoding=auto]{hyperref}
\begin{filecontents}{customstyles.dbx}
\DeclareDatamodelEntrytypes{video}
\DeclareDatamodelFields[type=field,datatype=literal]{
duration,
format,
type,
}
\DeclareDatamodelFields[type=list,datatype=name]{
director,
producer,
}
\DeclareDatamodelFields[type=field, datatype=verbatim]{
fsk,
seriesseason,
episode,
}
\DeclareDatamodelEntryfields[video]{
duration,
director,
episode,
format,
fsk,
producer,
seriesseason,
type,
}
\end{filecontents}
% regarded in custombibstrings
\NewBibliographyString{bydirector,duration,episode,format,fsk,paragraph,subparagraph,article,byproducer,seriesseason}
\DeclareLanguageMapping{german}{custombibstrings}
\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}]
}
}
}
% smallcaps
\newtoggle{bbx@journalauthor}
\DeclareEntryOption[boolean]{journalauthor}[true]{%
\settoggle{bbx@journalauthor}{#1}}
\renewcommand{\mkbibnamefamily}[1]{%
\ifitemannotation{journalauthor}
{\mkbibemph{#1}}
{\textsc{#1}}}
\newtoggle{bbx@director}
\DeclareEntryOption[boolean]{director}[true]{%
\settoggle{bbx@director}{#1}}
\renewcommand{\mkbibnamefamily}[1]{%
\ifitemannotation{director}
{\mkbibemph{#1}}
{\textsc{#1}}}
\newtoggle{bbx@producer}
\DeclareEntryOption[boolean]{producer}[true]{%
\settoggle{bbx@producer}{#1}}
\renewcommand{\mkbibnamefamily}[1]{%
\ifitemannotation{producer}
{\mkbibemph{#1}}
{\textsc{#1}}}
\DeclareDelimFormat[bib]{nametitledelim}{\addcolon\space}
% editor in parentheses
\DeclareDelimFormat{editortypedelim}{\addspace}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}
\DeclareFieldAlias{translatortype}{editortype}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,online]
{title}{#1\isdot}
\DeclareFieldFormat
[thesis,unpublished]
{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}
\DeclareFieldAlias{journaltitleaddon}{titleaddon}
\DeclareFieldAlias{lawtitleaddon}{titleaddon}
\DeclareFieldAlias{subtitleaddon}{titleaddon}
\newbibmacro{online:editor+maintitle}{% organization in front of 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}}
\DeclareListFormat[online,law]{organization}{% organization in caps
\textsc{%
\usebibmacro{list:delim}{#1}%
#1\isdot
\usebibmacro{list:andothers}}}
\urlstyle{same}%
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\addcolon\space#1}}
%----------------------------------------------------------------------------
% CITING
%----------------------------------------------------------------------------
\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}}
%----------------------------------------------------------------------------
% MAIN
%----------------------------------------------------------------------------
\begin{document}
\nocite{*}
\printbibliography[heading=bibintoc,title={Literaturverzeichnis}]
\end{document}
答え1
ファイル.lbx
には、少なくとも 2 つの定義が常に含まれていなければなりません。
- 参考文献文字列(と
\DeclareBibliographyStrings
) - および参考文献追加(主に日付の処理、序数の形式など
\DeclareBibliographyExtras
)。
ファイル.lbx
には参考文献の追加定義がありません。私のbiblatex
もこれについて不満を述べています。.log
Package biblatex Warning: Using fallback definition for \mkbibdateshort. (biblatex) The command should be defined in the .lbx file. (biblatex) If you see this message, the .lbx file could not be (biblatex) loaded, is faulty or does not contain a definition (biblatex) for \mkbibdateshort. Package biblatex Warning: Using fallback definition for \mkbibdateshort. (biblatex) The command should be defined in the .lbx file. (biblatex) If you see this message, the .lbx file could not be (biblatex) loaded, is faulty or does not contain a definition (biblatex) for \mkbibdateshort.
基本的に新しい.lbx
ファイルを作成するため、別の言語から参考文献の追加情報を継承するか、必要なコマンドをすべて最初から定義する必要があります。この場合、 から継承するのがngerman
最善\InheritBibliographyExtras{ngerman}
の選択肢のようです。 で定義を上書きすることもできます\DeclareBibliographyExtras
。
参考文献の文字列でも状況は同様ですが、継承はinherit = {ngerman},
の特殊なキーと値のペアによって提供されます\DeclareBibliographyStrings
。
custombibstrings.lbx
読みやすいように、汎用ファイル名に言語名を追加することを強くお勧めしますcustombibstrings-ngerman.lbx
(もちろん、より説明的な名前を思い付くことができれば、custombibstrings
それも役立つかもしれません...)
\ProvidesFile{custombibstrings-ngerman.lbx}[2019 SoSe]
\InheritBibliographyExtras{ngerman}
\DeclareBibliographyStrings{%
inherit = {ngerman},
andothers = {{et al\adddot}{et al\adddot}},
byeditor = {{herausgegeben von}{hg\adddotspace von}},
bytranslator = {{übersetzt von} {übers\adddotspace von}},
editor = {{Herausgeber}{Hg\adddot}},
editors = {{Herausgeber}{Hg\adddot}},
urlseen = {{letzter Abruf}{letzter Abruf}},
paragraph = {{Paragraph}{\S}},
subparagraph = {{Absatz}{Abs\adddot}},
article = {{Artikel}{Art\adddot}},
bydirector = {{unter der Regie von}{unter der Regie von}},
byproducer = {{produziert von}{produziert von}},
volume = {{Vol\adddot}{Vol\adddot}},
seriesseason = {{Staffel}{Staffel}},
episode = {{Episode}{Episode}},
duration = {{Spieldauer}{Spieldauer}},
fsk = {{FSK}{FSK}},
}
当然、次のものが必要になります
\DeclareLanguageMapping{ngerman}{custombibstrings-ngerman}
このファイルとこの1行を変更すると、MWEは以下を生成します。
編集{\"u}bers\adddotspace von
に変更されましたübers\adddotspace von
。