Como citar o autor e o ano no biblatex-mla?

Como citar o autor e o ano no biblatex-mla?

Gostaria de saber se existe uma maneira eficiente de citar o autor e o ano, semelhante ao que você obtém com, biblatexpor exemplo, \textciteAutor (ano), ao usar biblatex-mla. No momento estou usando um método bastante ineficiente:

\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}

Se alguém souber como fazer isso de forma mais eficiente, sugestões serão muito apreciadas.

Responder1

Uma rápida olhada na biblatex-mladocumentação sugere que esse tipo de referência autor-ano não é um padrãocitaçãocomando no que diz respeito às diretrizes do MLA, então presumo que seja por isso que tal comando não é fornecido.

Você pode criar seu próprio comando com:

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

Isto tem pelo menos uma falha: por padrão, não funcionará hyperref- o que pode não ser grande coisa. Ele também não será "rastreado" pelo MLA ibid-tracker - não tenho certeza se isso é bom ou ruim. Você precisa decidir o que a saída desta sequência deve fazer:

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

Acho que depende de como você usa esse comando. Minha vaga lembrança das regras do MLA (desde meus tempos de graduação, muitos anos atrás) é que o MLA espera que você "coloque entre colchetes" sua citação mais ou menos assim: name ... <ideas from "name"> ... (page). Nesse caso, o rastreamento provavelmente é uma coisa boa.

Portanto, outra solução é criar seu próprio comando mais ortodoxo via \DeclareCiteCommand. Aqui está um bem básico:

\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}}}

Aqui, por padrão, hyperreffuncionará e o comando não será rastreado. Você pode alterar o rastreamento removendo o \citeresetna \aycitedefinição.

Aqui está um exemplo completo:

\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}

informação relacionada