Estoy escribiendo mi tesis de maestría y citando en estilo APA. A continuación se muestra una imagen de cómo se ve ahora:
Si bien en general se ve bien, me gustaría modificar el año y ponerlo entre paréntesis. Además borra la coma que viene después del autor pero deja la que viene después del año para que la versión final quede así:
Ruoff et al. (1953), pág. dieciséis
Debido a que copié el código para llevarlo a la versión casi final, no sé cómo modificarlo más para llevarlo a la forma deseada.
El código que tengo en el preámbulo es el siguiente:
\documentclass[12pt]{report}
\usepackage{natbib}
\makeatletter
\newcommand*{\ibid}{Ibid.}
\let\@predcite\@empty
\let\@currcite\@empty
\def\citef{\kernel@ifnextchar[\citef@{\citef@[]}}
\def\citef@[#1]{\kernel@ifnextchar[{\citef@@[{#1}]}{\citef@@[][{#1}]}}
\def\citef@@[#1][#2]#3{%
\def\@currcite{#3}%
\unskip
\ifx\@currcite\@predcite
\footnote{#1 \ifx\tempa\@empty\unskip\fi%
\ibid\ifx\tempb\@empty\else\NAT@cmt #2\fi}%
\else%
\footnote{\citealp[#1][#2]{#3}}%
\fi
\gdef\@predcite{#3}%
}
\makeatother
\bibliographystyle{apalike}
Además, cito así en el texto (esto es para el ejemplo que se muestra en la imagen de arriba):
\citef[p. 16]{ruoff53}
De antemano muchas gracias por tu consejo. ¡Tu ayuda es muy apreciada!
EDITAR:
Después de los consejos de Bernard, ahora tengo el siguiente código:
¿Puedes darme más pistas? Cambié el cuerpo de mi texto a lo siguiente, pero parece ser un completo desastre...
\documentclass[12pt]{report}
\setcounter{tocdepth}{4}
\setcounter{secnumdepth}{4}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa,backend=biber]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{biblio.bib}
\usepackage{rotating}
\makeatletter
\newcommand*{\ibid}{Ibid.}
\let\@predcite\@empty
\let\@currcite\@empty
\def\citef{\kernel@ifnextchar[\citef@{\citef@[]}}
\def\citef@[#1]{\kernel@ifnextchar[{\citef@@[{#1}]}{\citef@@[][{#1}]}}
\def\citef@@[#1][#2]#3{%
\def\@currcite{#3}%
\unskip
\ifx\@currcite\@predcite
\footnote{#1 \ifx\tempa\@empty\unskip\fi%
\ibid\ifx\tempb\@empty\else\NAT@cmt #2\fi}%
\else%
\footnote{\citealp[#1][#2]{#3}}%
\fi
\gdef\@predcite{#3}%
}
\makeatother
\begin{document}
\chapter{Introduction}
\input{ma_chapters/introduction}
.
.
.
.
\bibliographystyle{apalike}
\bibliography{biblio}
Respuesta1
Suponiendo que esté de acuerdo con el apalike
estilo de la bibliografía, el natbib
paquete de administración de citas y BibTeX en general, puede crear una nueva macro que implemente el formato de llamada de citas que desee.
\newcommand\mycite[2][]{\citeauthor{#2}\ (\citeyear{#2})\ifx#1\undefined\else, #1\fi}
Si no se especifica el primer argumento opcional, no se imprime nada después \citeyear{#2}
; en efecto, si no se proporciona ningún argumento opcional, \mycite
se comporta como \citet
lo haría.
\documentclass[12pt]{report}
\usepackage{filecontents}
\begin{filecontents}{biblio.bib}
@article{ruoff,
author = "A. Ruoff and B. Woof and C. Zoot",
title = "Thoughts",
journal= "Circularity Today",
year = 1953,
}
\end{filecontents}
\usepackage{natbib}
\bibliographystyle{apalike}
\newcommand\mycite[2][]{%
\citeauthor{#2}\ (\citeyear{#2})\ifx#1\undefined\else, #1\fi}
\begin{document}
\mycite[p.~16]{ruoff} % with optional argument
\mycite{ruoff} % without optional argument -- no comma is printed
\citet{ruoff} % compare with output of "\citet"
\bibliography{biblio}
\end{document}
Apéndice: Para colocar estas leyendas de citas en una nota al pie, puede usar una macro como \myfootcite
, definida de la siguiente manera:
\newcommand\myfootcite[2][]{\footnote{\mycite[#1]{#2}.}}
Si no desea el punto ("punto") al final del material de la nota al pie, simplemente omita el .
después {#2}
.
Segunda adenda, para dar cabida a la solicitud del OP de una macro de citas que imprima "Ibid". si la última entrada es la misma que la del comando de cita anterior:
En comparación con la solución anterior, todo lo que se requiere es agregar una prueba si la clave de la cita actual es la misma que la utilizada en la cita anterior. El siguiente código proporciona dos macros de usuario: \tcite
, para citas en el texto, y \fcite
, para citas en notas al pie.
\documentclass[12pt]{report}
\usepackage[textheight=2in]{geometry} %% just for this example
\usepackage{filecontents}
\begin{filecontents}{biblio.bib}
@article{ruoff,
author = "A. Ruoff and B. Woof and C. Zoot",
title = "Thoughts",
journal= "Circularity Today",
year = 1953,
}
@article{abc,
author = "Anna Andersen and Bertha Branson and Carla Carlsson",
title = "Further Thoughts",
journal= "Circularity Today",
year = 2053,
}
\end{filecontents}
\usepackage{natbib}
\bibliographystyle{apalike}
\def\prevcite{} % initialize \prevcite
%% macro for in-text citation
\newcommand\tcite[2][]{%
\def\newcite{#2}
\ifx\prevcite\newcite
Ibid.%
\else%
\gdef\prevcite{#2}% update \prevcite
\citeauthor{#2}\ (\citeyear{#2})%
\fi
\ifx#1\undefined\else, #1\fi}
%% macro for in-footnote citation
\newcommand\fcite[2][]{\footnote{\tcite[#1]{#2}}}
\begin{document}
bla bla\fcite{ruoff}
more bla bla\fcite[p.~75]{ruoff}
still more bla bla\fcite[p.~101]{abc}
further bla bla\fcite{abc}
final bla bla\fcite[p.~999]{abc}
\bibliography{biblio}
\end{document}
Respuesta2
Una forma de hacer las cosas con biblatex-apa
. Puedes emular los comandos de natbib con la natbib
opción:
\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa, backend=biber, natbib]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{biblio.bib}
\usepackage{filecontents}
\begin{filecontents}{biblio.bib}
@article{ruoff,
author = "A. Ruoff and B. Woof and C. Zoot",
title = "Thoughts",
journal= "Circularity Today",
year = 1953,
}
\end{filecontents}
\renewcommand*{\nameyeardelim}{\addspace}
%
\usepackage{xpatch}
\makeatletter
\newbibmacro*{cite}{%
\iffieldequals{namehash}{\cbx@lasthash}
% Multiple cites in one command
{\setunit{\compcitedelim}%
\usebibmacro{cite:plabelyear+extrayear}}%
% \bibcloseparen%
% Single cite
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor
{\usebibmacro{cite:noname}%
\setunit{\ifbool{cbx:np}%
{\nameyeardelim}%
{\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
\usebibmacro{cite:plabelyear+extrayear}%
\bibcloseparen%
\savefield{namehash}{\cbx@lasthash}}
% Normal cite
{\ifnameundef{shortauthor}
{\printnames[labelname][-\value{listtotal}]{labelname}}%
{\cbx@apa@ifnamesaved
{\printnames{shortauthor}}
{\printnames[labelname][-\value{listtotal}]{author}\addspace\printnames[sabrackets]{shortauthor}}}%
\setunit{\ifbool{cbx:np}%
{\nameyeardelim}%
{\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
\usebibmacro{cite:plabelyear+extrayear}%
\bibcloseparen%
\savefield{namehash}{\cbx@lasthash}}}%
\setunit{\multicitedelim}}
\makeatother
\begin{document}
\chapter{Introduction}
\cite[p.~16]{ruoff} % with optional argument
\textcite{ruoff} % without optional argument -- no comma is printed
\citet{ruoff} % compare with output of "\citet"
\printbibliography
\end{document}