Use bibliography numbers and citation from other file
Save the following in your working directory as xc.sty
:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xc}
[2011/09/02 v0.1 eXternal Citations (DPC+EG)]
\def\externalcitedocument{\@ifnextchar[\XC@{\XC@[]}}
\def\XC@[#1]#2{{%
\makeatletter
\def\XC@prefix{#1}%
\XC@next#2.aux\relax\\}}
\def\XC@next#1\relax#2\\{%
\edef\XC@list{#2}%
\XC@loop{#1}}
\def\XC@aux{%
\ifx\XC@list\@empty\else\expandafter\XC@explist\fi}
\def\XC@explist{\expandafter\XC@next\XC@list\\}
\def\XC@loop#1{\openin\@inputcheck#1\relax
\ifeof\@inputcheck
\PackageWarning{xc}{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}%
\expandafter\XC@aux
\else
\PackageInfo{xc}{IMPORTING LABELS FROM #1}%
\expandafter\XC@read\fi}
\def\XC@read{%
\read\@inputcheck to\XC@line
\expandafter\XC@test\XC@line...\XC@}
\long\def\XC@test#1#2#3#4\XC@{%
\ifx#1\bibcite
\bibcite{\XC@prefix#2}{#3}%
\else\ifx#1\@input
\edef\XC@list{\XC@list#2\relax}%
\fi\fi
\ifeof\@inputcheck\expandafter\XC@aux
\else\expandafter\XC@read\fi}
\endinput
%%
%% End of file `xc.sty'.
Then say, in your derived.tex
document,
\externalcitedocument{main}
(where main.tex
is the document you are taking the citations from). Now
\cite{xyz}
in derived.tex
will do what you want.
The interface is just the same as xr's: you can also specify a prefix
\externalcitedocument[A-]{main}
and use \cite{A-xyz}
in derived.tex
.
The xc.sty
file has been obtained from xr.sty
with some very simple transformations:
xr
->xc
XR
->XC
\externaldocument
->\externalcitedocument
\newlabel
->\bibcite