biblatex-mla에서 저자와 연도를 모두 어떻게 인용합니까?

biblatex-mla에서 저자와 연도를 모두 어떻게 인용합니까?

를 사용할 때 biblatex' Author (연도) '를 사용하여 얻는 것과 유사하게 저자와 연도를 모두 인용하는 효율적인 방법이 있는지 궁금합니다 . 지금은 매우 비효율적인 방법을 사용하고 있습니다.\textcitebiblatex-mla

\begin{filecontents*}{test.bib}
    title     = {{Seinte Katerine}},
    editor  = {S.R.T.O. d'Ardenne and E.J. Dobson},
    year      = {1981},
    publisher = {Oxford University Press},
    address   = {Oxford}
\end{filecontents*}

\documentclass{article}
\usepackage[style=mla,backend=bibtex8]{biblatex}
\bibliography{test}

\begin{document}
    According to \citeauthor{katherine} (\citeyear{katherine})...
\end{document}

이 작업을 보다 효율적으로 수행하는 방법을 아는 사람이 있다면 제안해 주시면 감사하겠습니다.

답변1

문서 를 잠깐 살펴보면 biblatex-mla이런 종류의 저자 연도 참조가 표준이 아님을 알 수 있습니다.소환MLA 지침에 따라 명령이 적용되므로 이것이 그러한 명령이 제공되지 않는 이유라고 생각합니다.

다음을 사용하여 자신만의 명령을 만들 수 있습니다.

\newcommand\citeauthyear[1]{\citeauthor{#1} (\citeyear{#1})}

여기에는 적어도 한 가지 단점이 있습니다. 기본적으로는 작동하지 않습니다 hyperref. 이는 큰 문제가 아닐 수도 있습니다. 또한 MLA ibid-tracker에 의해 "추적"되지 않습니다. 이것이 좋은 것인지 나쁜 것인지는 잘 모르겠습니다. 이 시퀀스의 출력이 수행할 작업을 결정해야 합니다.

\citeauthyear{<key1>} wrote about this \autocite{<key1>}

이 명령을 어떻게 사용하느냐에 따라 다르다고 생각합니다. MLA 규칙에 대한 나의 막연한 기억은(수년 전 학부시절부터) MLA가 인용문을 다음과 같이 "괄호"로 묶기를 기대한다는 것입니다 name ... <ideas from "name"> ... (page). 그렇다면 추적이 아마도 좋은 것일 것입니다.

따라서 또 다른 해결책은 \DeclareCiteCommand. 다음은 매우 기본적인 것입니다:

\DeclareCiteCommand{\aycite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
    \usebibmacro{cite:mla:authyear}}%
  {}%
  {\usebibmacro{postnote}\citereset}

\newbibmacro*{cite:mla:authyear}%
  {\printtext[bibhyperref]{%
      \printnames{labelname}\space
      \printtext[parens]{\printdate}}}

여기서는 기본적으로 hyperref작동하며 명령은 추적되지 않습니다. 정의 \citereset에서 를 제거하여 추적을 변경할 수 있습니다 \aycite.

완전한 예는 다음과 같습니다.

\begin{filecontents*}{\jobname.bib}
@book{katherine,
    title     = {{Seinte Katerine}},
    editor  = {S.R.T.O. d'Ardenne and E.J. Dobson},
    year      = {1981},
    publisher = {Oxford University Press},
    address   = {Oxford}
}
\end{filecontents*}

\documentclass{article}
\usepackage[style=mla,backend=bibtex8]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{xcolor}
\usepackage[colorlinks, allcolors=red]{hyperref}

\DeclareCiteCommand{\aycite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
    \usebibmacro{cite:mla:authyear}}%
  {}%
  {\usebibmacro{postnote}\citereset}

\newbibmacro*{cite:mla:authyear}%
  {\printtext[bibhyperref]{%
      \printnames{labelname}\space
      \printtext[parens]{\printdate}}}

% This version does not get "tracked" by `biblatex-mla`
\newcommand\citeauthyear[1]{\citeauthor{#1} (\citeyear{#1})}

\begin{document}
\parindent0pt

% Baseline citation
\autocite[100]{katherine} \citereset


% These two paragraphs are equivalent
According to \citeauthor{katherine} (\citeyear{katherine}); \ldots
\autocite[100]{katherine} \citereset

According to \citeauthyear{katherine}; \ldots
\autocite[100]{katherine} \citereset


% These two commands paragraphs produce identical results; if you'd
% rather get the \aycite command tracked, take out the \citereset
% commands in the \aycite definition
According to \aycite{katherine}; \ldots
\autocite[100]{katherine}
\citereset

According to \aycite{katherine}; \ldots
\citereset% <-- this is the difference between this paragraph and the one above
\autocite[100]{katherine}

\printbibliography
\end{document}

관련 정보