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.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to redefine \cite{} so that text like


gets replaced by


I tried the following:


However, this does not work with multiple arguments to \cite{}.

For instance, I would like

\cite{blah1, blah2}  

to be replaced by

\cite{blah1:short, blah2:short}

as well.

Any suggestions?

share|improve this question
Hi Prakash, welcome to TeX.sx! I've formatted your code snippets, which you can also do yourself by selecting them and pressing the {} button (or pressing Ctrl+k. I've also removed the "Thanks" at the end of the question, which is common practice on this site. – Jake Oct 25 '11 at 1:15
up vote 8 down vote accepted

Assuming that you do not use packages that redefine \cite (like cite.sty), try this:

    {\@citea\def\@citea{,\penalty\@m\ }%
     \@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}%
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}}
share|improve this answer
that works! thanks, Boris :) – Prakash Oct 25 '11 at 2:42
@Prakash: If you find the answer helpful, you should upvote it. If you feel your question is answered, you can and should mark it as such by clicking the tick mark next to the answer. – Jake Oct 25 '11 at 2:57
@Jake: Sure. Just did. – Prakash Oct 25 '11 at 14:11

Your Answer


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.