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