맞춤형 Bibstring으로 인한 날짜 형식 변경

맞춤형 Bibstring으로 인한 날짜 형식 변경

맞춤 턱받이 문자열을 추가하고 언어를 사용했습니다 ngerman. bibstrings 앞 의 정의를 비워두면 ngerman원하는 대로 날짜 형식이 인쇄됩니다. DD.MM.YYYY

ngerman그러나 LanguageMapping 또는 를 사용하면 germanDD/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}},
}

MWE

% 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에는 항상 최소한 두 가지에 대한 정의가 포함되어야 합니다.

  1. 참고문헌문자열(와 함께 \DeclareBibliographyStrings)
  2. 그리고 참고문헌엑스트라(주로 날짜 처리, 서수 형식 등 \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다른 언어에서 참고문헌 추가 기능을 상속하거나 필요한 모든 명령을 처음부터 정의해야 합니다. 귀하의 경우에는 ngermanwith를 상속받는 것이 \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}

이 파일과 이 한 줄로 MWE가 생성하는 내용이 변경되었습니다.

아마노 후미코(2011.11.18): 생존자들의 증언 영상. Net-Gtas 글로벌 네트워크: 히로시마와 나가사키의 원폭 피해자를 위한 국립 평화 기념관. https://www.global-peace.go.jp/OTHER/ot german pic syousai.php?gbID=920&dt=161012173049 (letzter Abruf: 23.08.2019).

편집하다{\"u}bers\adddotspace von로 변경 übers\adddotspace von.

관련 정보