summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xcite
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/xcite
Initial commit
Diffstat (limited to 'macros/latex/contrib/xcite')
-rw-r--r--macros/latex/contrib/xcite/README41
-rw-r--r--macros/latex/contrib/xcite/xcite.dtx189
-rw-r--r--macros/latex/contrib/xcite/xcite.ins71
-rw-r--r--macros/latex/contrib/xcite/xcite.pdfbin0 -> 206721 bytes
4 files changed, 301 insertions, 0 deletions
diff --git a/macros/latex/contrib/xcite/README b/macros/latex/contrib/xcite/README
new file mode 100644
index 0000000000..b93b15c7ad
--- /dev/null
+++ b/macros/latex/contrib/xcite/README
@@ -0,0 +1,41 @@
+The xcite lets you use citations keys used in another
+document, just like the package xr does with labels.
+
+This is version 1.0 of the package
+
+Copyright (C) 2011 by Enrico Gregorio
+<Enrico dot Gregorio at univr dot it>
+-------------------------------------------------------
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any
+later version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions
+of LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Enrico Gregorio.
+
+This work consists of the files
+ xcite.dtx
+ xcite.ins
+and the derived file xcite.sty.
+
+To install the distribution:
+
+o run "latex xcite.ins"
+o move "xcite.sty" to locations where LaTeX will find
+ it (the FAQ on CTAN in /help/uktug-FAQ gives more
+ information about this magic place
+
+To produce the documentation in pdf format:
+
+o run "pdflatex xcite.dtx"
+o run "makeindex -s gglo.ist -o xcite.gls xcite.glo"
+o run "pdflatex xcite.dtx"
+
+2011/09/02
+Enrico Gregorio
diff --git a/macros/latex/contrib/xcite/xcite.dtx b/macros/latex/contrib/xcite/xcite.dtx
new file mode 100644
index 0000000000..d341e4399d
--- /dev/null
+++ b/macros/latex/contrib/xcite/xcite.dtx
@@ -0,0 +1,189 @@
+% \iffalse meta-comment
+%
+% Copyright 2011 Enrico Gregorio
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c of this
+% license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Enrico Gregorio.
+%
+% This work consists of the files
+% xcite.dtx
+% xcite.ins
+% and the derived file xcite.sty.
+%
+% \fi
+% \iffalse
+%
+%<*driver>
+\ProvidesFile{xcite.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{xcite}
+%<*package>
+ [2011/09/02 v1.0 eXternal Citations (EG)]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{xcite.dtx}
+ \PrintChanges
+\end{document}
+%</driver>
+% \fi
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \CheckSum{82}
+%
+% \changes{v1.00}{2011/09/02}
+% {First version}
+%
+% \GetFileInfo{xcite.dtx}
+%
+% \title{The \textsf{xcite} package\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.}}
+% \author{Enrico Gregorio\thanks{%
+% This package derives from \textsf{xr} by David Carlisle}\\
+% {\small\texttt{Enrico dot Gregorio at univr dot it}}}
+% \date{\filedate}
+% \maketitle
+%
+% \section{Description}
+% This package implements a system for eXternal Citations.
+% If one document needs to refer to citations in another, say |aaa.tex|,
+% then this package may be loaded in the main file, and the command\\[\topsep]
+% |\externalcitedocument{aaa}|\\[\topsep]
+% given in the preamble.
+%
+% Then you may use |\cite| to refer to anything which has been
+% declared by |\bibitem| in either |aaa.tex| or the main document.
+% You may declare any number of such external documents. Notice that
+% |\bibitem| commands may not appear in |aaa.tex|, but rather in
+% |aaa.bbl| if \textsc{Bib}\negthinspace\TeX{} or Biber are used to
+% generate the bibliography, but this doesn't matter. The important
+% thing is that |aaa.tex| is in final form with all citations resolved
+% and that |aaa.aux| is readable.
+%
+% If any of the external documents, or the main document, use the same
+% citation key then an error will occur as the label will be multiply
+% defined. To overcome this problem |\externalcitedocument| has an
+% optional argument. If you declare\\[\topsep]
+% |\externalcitedocument[A-]{aaa}|\\[\topsep]
+% then all references from |aaa| are prefixed by |A-|. So for
+% instance, if |aaa.tex| had |\bibitem{xyz}|, then this could be
+% referenced with |\cite{A-xyz}|. The prefix need not be |A-|, it can
+% be any string chosen to ensure that all the keys imported from
+% external files are unique. Note however that if your style declares
+% certain active characters (|:| in French, |"| in German) then these
+% characters can not usually be used in |\cite|, and similarly may
+% not be used in the optional argument to |\externalcitedocument|.
+%
+% \section{Acknowledgment}
+% This package is just a straightforward modification of David
+% Carlisle's \textsf{xr} package (based on Jean-Pierre Drucbert's
+% work). The changes consisted in renaming the main command and
+% substituting |\newlabel| with |\bibcite|; the |XR| prefix to
+% internal commands has been changed into |XC|.
+%
+% These modifications are possible because |\newlabel| and |\bibcite|
+% are almost the same command in disguise.
+%
+% This package originated from a question in
+% |TeX.StackExchange.com|.\footnote{\ttfamily
+% http://tex.stackexchange.com/questions/27243/}
+%
+% \StopEventually{}
+%
+% \section{The macros}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Save the optional prefix. Start processing the first |aux| file.
+% \begin{macrocode}
+\newcommand\externalcitedocument[2][]{{%
+ \makeatletter
+ \def\XC@prefix{#1}%
+ \XC@next#2.aux\relax\\}}
+% \end{macrocode}
+%
+% Process the next |aux| file in the list and remove it from the head of
+% the list of files to process.
+% \begin{macrocode}
+\def\XC@next#1\relax#2\\{%
+ \edef\XC@list{#2}%
+ \XC@loop{#1}}
+% \end{macrocode}
+%
+% Check whether the list of |aux| files is empty.
+% \begin{macrocode}
+\def\XC@aux{%
+ \ifx\XC@list\@empty\else\expandafter\XC@explist\fi}
+% \end{macrocode}
+%
+% Expand the list of |aux| files, and call |\XC@next| to process the first
+% one.
+% \begin{macrocode}
+\def\XC@explist{\expandafter\XC@next\XC@list\\}
+% \end{macrocode}
+%
+% If the |aux| file exists, loop through line by line, looking for
+% |\bibcite| and |\@input|. Otherwise process the next file in the
+% list.
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+%
+% Read the next line of the aux file.
+% \begin{macrocode}
+\def\XC@read{%
+ \read\@inputcheck to\XC@line
+% \end{macrocode}
+% The |...| make sure that |\XC@test| always has sufficient arguments.
+% \begin{macrocode}
+ \expandafter\XC@test\XC@line...\XC@}
+% \end{macrocode}
+%
+% Look at the first token of the line.
+% If it is |\bibcite|, do the |\bibcite|. If it is |\@input|, add the
+% filename to the list of files to process. Otherwise ignore.
+% Go around the loop if not at end of file. Finally process the next
+% file in the list.
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \Finale
+%
+
diff --git a/macros/latex/contrib/xcite/xcite.ins b/macros/latex/contrib/xcite/xcite.ins
new file mode 100644
index 0000000000..91dc70f7f6
--- /dev/null
+++ b/macros/latex/contrib/xcite/xcite.ins
@@ -0,0 +1,71 @@
+% Copyright (C) 2011 by Enrico Gregorio
+% <Enrico dot Gregorio at univr dot it>
+% -------------------------------------------------------
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3c of this license or (at your option) any
+% later version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions
+% of LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Enrico Gregorio.
+%
+% This work consists of the files
+% xcite.dtx
+% xcite.ins
+% and the derived file xcite.sty.
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/xcite}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2011 by Enrico Gregorio
+<Enrico dot Gregorio at univr dot it>
+-------------------------------------------------------
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any
+later version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions
+of LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Enrico Gregorio.
+
+This work consists of the files
+ xcite.dtx
+ xcite.ins
+and the derived file xcite.sty.
+
+\endpreamble
+
+\generate{\file{xcite.sty}{\from{xcite.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* xcite.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* xcite.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/xcite/xcite.pdf b/macros/latex/contrib/xcite/xcite.pdf
new file mode 100644
index 0000000000..5d5ad24c1a
--- /dev/null
+++ b/macros/latex/contrib/xcite/xcite.pdf
Binary files differ