2

I am writing a paper like the following one, and bibtex creates cites inside of cites:

\documentclass{article}
\begin{document}

cite1~\cite{abc:oopsla2005} 
cite2~\cite{martinAl:oopsla2005}

\bibliographystyle{plain}
\bibliography{bib,crossref}

\end{document}

Where bib.bib contains:

@InProceedings{martinAl:oopsla2005,
author = {Michael Martin and Benjamin Livshits and Monica S. Lam},
title = {Finding application errors and security flaws using {PQL}: a program query language},
crossref = {oopsla2005},
pages = {365--383},
}

and crossref contains:

@Proceedings{oopsla2005,
key = {OOPSLA 2005},
booktitle =  {Proceedings of the 20th {ACM SIGPLAN} Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2005)},
title =      {Proceedings of the 20th {ACM SIGPLAN} Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2005)},
year =      2005,
address =      {San Diego, California, USA},
month =        oct,
publisher =     acm,
note =         sigplan # {, 40(11)}       
}

So, when I create the pdf file, I get:

[1] M. Martin, B. Livshits, M. S. Lam, Finding application errors and security flaws using PQL: a program query language, in: [3], pp. 365–383. ACM SIGPLAN Notices, 40(11).

[2] C. Allan, P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, O. Lhot ́ak, O. de Moor, D. Sereni, G. Sittampalam, J. Tibble, Adding trace matching with free variables to AspectJ, in: [3], pp. 345–364. ACM SIGPLAN Notices, 40(11).

where [3] is:

[3] OOPSLA 2005, Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2005), ACM Press, San Diego, California, USA, 2005. ACM SIGPLAN Notices, 40(11).

I would like to extend cites 1 and 2 to show the full content of these references. If I can show full references, I expect Latex/Bibtex removes reference 3.

Is it possible to set some parameters in Latex to achieve my goal? (I cannot use a line command option because my Latex file is compiled in the journal server)

In other words, I just want to get:

[1] M. Martin, B. Livshits, M. S. Lam, Finding application errors and security flaws using PQL: a program query language, in Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2005), ACM Press, San Diego, California, USA, 2005. ACM SIGPLAN Notices, 40(11).

[2] C. Allan, P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, O. Lhot ́ak, O. de Moor, D. Sereni, G. Sittampalam, J. Tibble, Adding trace matching with free variables to AspectJ, in Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2005), ACM Press, San Diego, California, USA, 2005. ACM SIGPLAN Notices, 40(11).

3
  • If command line is not an option, you have to move the bibliographic information in the reference which is crossrefed in the other references.
    – Guido
    Jul 12 '14 at 20:38
  • 1
    Welcome to TeX.SX!. I think you need to increase the value of something like mincrossrefs to stop this process from occurring. However, it is a while since I used bibtex and I am not sure if it depends on your bibliographical style. It would help a very great deal if you would post a minimal working example (MWE). It will be much easier for us to reproduce your situation and suggest solutions when we see compilable code, starting with \documentclass{...} and ending with \end{document}.
    – cfr
    Jul 13 '14 at 0:03
  • Hi I edited the question to detail my problem. Jul 14 '14 at 1:05
1

bibtex has a command line switch (i.e., min-crossrefs=<number> to control the minimum number of a crossref is used to be included in the bibliography.

If one cannot control the option when bibtex is run, there are a few options.

You can run

bibtex -min-crossrefs=500 <file>

on your own computer to generate the bibliography in a <file>.bbl file, and then replace

\bibliographystyle{plain}
\bibliography{bib}

with the content of the generated .bbl file, or by \input{<file>.bbl}.

A second option is to use bibexport to generate a .bib where all crossrefs have been resolved and their data is included in the (appropriate) entries. This can be achieved by the following:

bibexport -n -o new-bib.bib <file>  

then -n is to remove the crossrefed entries from the bibliography, and -o is to give a name to the output, in this case new-bib.bib. Please use texdoc bibexport for full documentation of bibexport.

Then change

\bibliography{bib}

to

\bibliography{new-bib}  
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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