cite 명령에 번역자 정보 추가

cite 명령에 번역자 정보 추가

cite 명령에 번역자 정보를 추가하려고 합니다(참고문헌 자체에 대한 필요에 따라 이미 수정했습니다).

출판물에 저자나 편집자가 없으면 번역자는 인용으로 인쇄됩니다. 이는 올바른 것입니다. 또한 번역자라는 정보를 추가하고 싶습니다. (저는 독일어를 사용하고 있어서 번역기 정보는 독일어로 출력됩니다 Übers..) 예

for textcite: 성 (Übers.) (2010: 1-2)

for parencite: (성 (Übers.) 2010: 1-2)

참고문헌 예시 항목:

@incollection{Kern.2010-EarlyChineseLiterature,
    translator = {Kern, Martin},
    booktitle = {The Cambridge History of Chinese Literature},
    date = {2010-04-01},
    isbn = {978-1-139-09541-9},
    pages = {1--115},
    publisher = {Cambridge University Press},
    title = {Early Chinese Literature, Beginnings Through Western Han},
    }

(이것은 단지 예일 뿐입니다)

MWE:


%----------------------------------------------------------------------------
%   LAYOUT
%----------------------------------------------------------------------------
\documentclass[
  12pt,
  a4paper,
  headings=standardclasses,
  listof=totoc,
  numbers=noenddot
]{scrartcl}

\usepackage[hmargin=2.5cm, top=2.5cm, bottom=2cm, 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,
  datamodel=customstyles,
  maxnames=25,
  innamebeforetitle=true,
  usetranslator=true,
  alldates=terse,
  labeldate=year,
  dashed=false,
  doi=false,
  isbn=false,
  url=false
]{biblatex}
\AtEveryBibitem{%
  \clearlist{language}%
  \clearfield{pagetotal}%
}
\addbibresource{library.bib}
\usepackage[hidelinks, pdfencoding=auto]{hyperref}
\usepackage{microtype}% avoid bib formatting issues

% editor in parentheses
\DeclareDelimFormat{editortypedelim}{\addspace} 
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}
\DeclareFieldAlias{translatortype}{editortype}

%----------------------------------------------------------------------------
%   MAIN
%----------------------------------------------------------------------------

\begin{document}
\textcite[][1--2]{Kern.2010-EarlyChineseLiterature}

\parencite[][1--2]{Kern.2010-EarlyChineseLiterature}

\autocite[][1--2]{Kern.2010-EarlyChineseLiterature}

\cite[][1--2]{Kern.2010-EarlyChineseLiterature}
\nocite{*} 
\clearpage
\printbibliography

\end{document}

답변1

우리는 다음의 아이디어를 적용할 수 있습니다.BibLaTex - 인용 및 참고문헌의 표시 편집기(라벨 이름). 기본적으로 우리는 가지고 있는 labelnamesource이름 유형( author/ editor/ )을 확인 translator하고 해당 작업에 적합한 bibmacro를 사용합니다. 그런 다음 확장된 이름을 인쇄하도록 재정의 cite하면 됩니다 .tetxcite

\documentclass[
  12pt,
  a4paper,
]{scrartcl}

\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}

\usepackage[
  backend=biber,
  style=ext-authoryear,
  sorting=nyvt,
  datamodel=customstyles,
  maxnames=25,
  innamebeforetitle=true,
  usetranslator=true,
  alldates=terse,
  labeldate=year,
  dashed=false,
  doi=false,
  isbn=false,
  url=false
]{biblatex}
\AtEveryBibitem{%
  \clearlist{language}%
  \clearfield{pagetotal}%
}

\usepackage[hidelinks, pdfencoding=auto]{hyperref}
\usepackage{microtype}% avoid bib formatting issues

% editor in parentheses
\DeclareDelimFormat{editortypedelim}{\addspace} 
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}
\DeclareFieldAlias{translatortype}{editortype}

\newbibmacro{cite:labelname}{%
  \printnames{labelname}%
  \iffieldequalstr{labelnamesource}{author}
    {\setunit{\printdelim{authortypedelim}}%
     \usebibmacro{authorstrg}}
    {\iffieldequalstr{labelnamesource}{editor}
       {\setunit{\printdelim{editortypedelim}}%
        \usebibmacro{editor+othersstrg}}
       {\iffieldequalstr{labelnamesource}{translator}
         {\setunit{\printdelim{editortypedelim}}%
          \usebibmacro{translator+othersstrg}}
         {}}}}

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\printdelim{nonameyeardelim}}}
       {\usebibmacro{cite:labelname}%
        \setunit{\printdelim{nameyeardelim}}}%
     \usebibmacro{cite:labeldate+extradate}}
    {\usebibmacro{cite:shorthand}}}

\makeatletter
\renewbibmacro*{textcite}{%
  \ifnameundef{labelname}
    {\iffieldundef{shorthand}
       {\usebibmacro{cite:label}%
        \setunit{%
          \global\booltrue{cbx:parens}%
          \printdelim{nonameyeardelim}%
          \csuse{extblx@citedelim@\blx@delimcontext @inner@open}}%
        \ifnumequal{\value{citecount}}{1}
          {\usebibmacro{prenote}}
          {}%
        \usebibmacro{cite:labeldate+extradate}}
       {\usebibmacro{cite:shorthand}}}
    {\usebibmacro{cite:labelname}%
     \setunit{%
       \global\booltrue{cbx:parens}%
       \printdelim{nameyeardelim}%
       \csuse{extblx@citedelim@\blx@delimcontext @inner@open}}%
     \ifnumequal{\value{citecount}}{1}
       {\usebibmacro{prenote}}
       {}%
     \usebibmacro{citeyear}}}
\makeatother

\begin{filecontents}[overwrite]{\jobname.bib}
@incollection{Kern.2010-EarlyChineseLiterature,
    translator = {Kern, Martin},
    booktitle = {The Cambridge History of Chinese Literature},
    date = {2010-04-01},
    isbn = {978-1-139-09541-9},
    pages = {1--115},
    publisher = {Cambridge University Press},
    title = {Early Chinese Literature, Beginnings Through Western Han},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\textcite[][1--2]{Kern.2010-EarlyChineseLiterature}

\parencite[][1--2]{Kern.2010-EarlyChineseLiterature}

\autocite[][1--2]{Kern.2010-EarlyChineseLiterature}

\cite[][1--2]{Kern.2010-EarlyChineseLiterature}
\nocite{*} 
\clearpage
\printbibliography

\end{document}

Kern(Übers.) (2010, S. 1–2) (Kern [Übers.] 2010, S. 1–2) (Kern [Übers.] 2010, S. 1–2) Kern (Übers.) 2010, S .1–2

관련 정보