Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have a question that I haven't been able to solve, even though I got through the documentation , web pages and apacite.bst code (although I'm quite new with this stuff). The problem is as follows:

Using apacite citation style package, I'd like

\citeA{ref} argued that the value of ... 

to be rendered as

Borges and collaborators (2006) argued that the value of ...

and at the same time, if the citation is not textual, the code

was proved \cite{ref}.

should be rendered as

was proved (Borges et al., 2006).

In summary, when a citation results in an "et al.", I would like it to have different outputs whether it is a text citation (and colaborators) or a normal citation (et al.).

Already tested renewcommand \BOthers but it affects both types of citation.

Can you help me?

share|improve this question

1 Answer 1

up vote 2 down vote accepted

In the definition of \BOthers, we may test wether we're inside a \citeA citation command or not and typeset the appropriate string. Looking into apacite.sty, the internal \@BAY macro (the "after year" string) is a good test candidate -- its definition is \BBCP in "citeA" citations, and empty otherwise. For convenience, I use the etoolbox package and its \ifdefstring macro to amend the definition of \BOthers.

\documentclass{article}

\usepackage{apacite}

\usepackage{etoolbox}

\makeatletter
\AtBeginDocument{%
  \renewcommand{\BOthers}[1]{%
    \ifdefstring{\@BAY}{\BBCP}{%
      and collaborators\hbox{}%
    }{%
      et al.\hbox{}%
    }%
  }%
}
\makeatother

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A. and B and C and D and E and F},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\begin{document}

\citeA{A01} argued~\dots

\dots\ was proved \cite{A01}.

\bibliographystyle{apacite}
\bibliography{\jobname}

\end{document}

enter image description here

share|improve this answer
    
Thank you lockstep! It works perfect. Plus, I got the following (also working) solution from the apacite package \let\oldcite\cite \def\cite{% \renewcommand{\BOthers}[1]{et al.\hbox{}} \oldcite } \let\oldciteA\citeA \def\citeA{% \renewcommand{\BOthers}[1]{and collaborators} \oldciteA } Anyway, excelent answer from you and got my problem solved! –  Miguel Borges Aug 9 '12 at 8:12
    
@MiguelBorges Make sure if your solution also works with commands like \fullciteauthor used in the text body. –  lockstep Aug 9 '12 at 8:22
    
Since it only redefines those two commands, I suspect it won't work with \fullciteauthor... Your solution seems more comprehensive then. Again, thanks. –  Miguel Borges Aug 9 '12 at 9:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.