From 74f67a5d54a613355ce08a8233455ecdee5aeac2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 10 Sep 2010 21:19:23 +0000 Subject: new package logreq, required by biblatex (report from herbs, 10sep10) git-svn-id: svn://tug.org/texlive/trunk@19640 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/logreq/README | 42 ++++ .../doc/latex/logreq/examples/01-basic.run.xml | 77 +++++++ .../doc/latex/logreq/examples/01-basic.tex | 63 ++++++ .../doc/latex/logreq/examples/02-index.run.xml | 117 ++++++++++ .../doc/latex/logreq/examples/02-index.tex | 99 +++++++++ .../logreq/examples/03-biblatex+bibtex8.run.xml | 95 +++++++++ .../latex/logreq/examples/03-biblatex+bibtex8.tex | 79 +++++++ .../04-biblatex+bibtex+refsections.run.xml | 183 ++++++++++++++++ .../examples/04-biblatex+bibtex+refsections.tex | 190 +++++++++++++++++ .../logreq/examples/05-biblatex+biber.run.xml | 86 ++++++++ .../latex/logreq/examples/05-biblatex+biber.tex | 66 ++++++ Master/texmf-dist/tex/latex/logreq/logreq.def | 35 +++ Master/texmf-dist/tex/latex/logreq/logreq.sty | 237 +++++++++++++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc | 1 + Master/tlpkg/tlpsrc/logreq.tlpsrc | 0 16 files changed, 1371 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/logreq/README create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/01-basic.run.xml create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/01-basic.tex create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/02-index.run.xml create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/02-index.tex create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.run.xml create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.tex create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.run.xml create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.tex create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.run.xml create mode 100644 Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.tex create mode 100644 Master/texmf-dist/tex/latex/logreq/logreq.def create mode 100644 Master/texmf-dist/tex/latex/logreq/logreq.sty create mode 100644 Master/tlpkg/tlpsrc/logreq.tlpsrc diff --git a/Master/texmf-dist/doc/latex/logreq/README b/Master/texmf-dist/doc/latex/logreq/README new file mode 100644 index 00000000000..d4f2436e938 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/README @@ -0,0 +1,42 @@ +$Id: README,v 1.0 2010/08/04 18:56:41 lehman stable $ + +ABOUT + +The logreq package helps to automate a typical LaTeX workflow that +involves running LaTeX several times, running tools such as BibTeX +or makeindex, and so on. It will log requests like "please rerun +LaTeX" or "please run BibTeX on file X" to an external XML file +which lists all open tasks in a machine-readable format. Compiler +scripts and integrated LaTeX editing environments may parse this +file to determine the next steps in the workflow in a way that is +more efficient than parsing the main log file. In sum, the package +will do two things: 1) enable package authors to use LaTeX commands +to issue requests, 2) collect all requests from all packages and +write them to an external XML file at the end of the document. + +LICENSE + +Copyright (c) 2010 Philipp Lehman. Permission is granted to copy, +distribute and/or modify this software under the terms of the LaTeX +Project Public License (LPPL), version 1.3. The LPPL maintenance +status of this software is 'maintained'. The current maintainer is +Philipp Lehman. This software is provided 'as is', without warranty +of any kind, either expressed or implied, including, but not limited +to, the implied warranties of merchantability and fitness for a +particular purpose. + +REQUIREMENTS + +- e-TeX +- etoolbox 1.9 or later +- keyval + +DOCUMENTATION + +Unfortunately, there is no formal documentation for this package at +the moment. For the time being, have a look at the examples which +ship with the package and read this draft: + +https://sourceforge.net/apps/mediawiki/biblatex/index.php?title=Workflow_Automation + +A real manual will be added soon. diff --git a/Master/texmf-dist/doc/latex/logreq/examples/01-basic.run.xml b/Master/texmf-dist/doc/latex/logreq/examples/01-basic.run.xml new file mode 100644 index 00000000000..ca1eb870fb2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/01-basic.run.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + latex + + + bibtex + + bibtex + 01-basic + + + 01-basic.bbl + + + 01-basic.aux + + + bibfile1.bib + bibfile2.bib + bibfile3.bib + + + plainnat.bst + + + + latex + + 01-basic.aux + + + 01-basic.bbl + + + diff --git a/Master/texmf-dist/doc/latex/logreq/examples/01-basic.tex b/Master/texmf-dist/doc/latex/logreq/examples/01-basic.tex new file mode 100644 index 00000000000..ab22edd8c59 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/01-basic.tex @@ -0,0 +1,63 @@ +\documentclass{minimal} +\usepackage{logreq} + +% basic examples + +% shorthand for simple "rerun latex" requests +% (for any package which requires another latex run) + +\ltxrequest{sample}{1}{} + +% typical bibtex request +% (e.g., if natbib.sty were to support logreq) + +% sample code: + +% ... +% \usepackage{natbib} +% \begin{document} +% ... +% \bibliographystyle{plainnat} +% \bibliography{bibfile1,bibfile2,bibfile3} +% \end{document} + +% workflow: + +% latex file (-> both requests active) +% bibtex file +% latex file (-> latex request active, bibtex request inactive) +% latex file (-> both requests inactive) + +\logrequest[package=natbib,priority=5,active=1]{ + \generic{bibtex} + \cmdline{ + \binary{bibtex} + \infile{\jobname} + } + \provides[type=dynamic]{ + \file{\jobname.bbl} + } + \requires[type=dynamic]{ + \file{\jobname.aux} + } + \requires[type=editable]{ + \file{bibfile1.bib} + \file{bibfile2.bib} + \file{bibfile3.bib} + } + \requires[type=static]{ + \file{plainnat.bst} + } +} + +\ltxrequest{natbib}{1}{ + \provides[type=dynamic]{ + \file{\jobname.aux} + } + \requires[type=dynamic]{ + \file{\jobname.bbl} + } +} + +\begin{document} +\end{document} diff --git a/Master/texmf-dist/doc/latex/logreq/examples/02-index.run.xml b/Master/texmf-dist/doc/latex/logreq/examples/02-index.run.xml new file mode 100644 index 00000000000..e03c0619f77 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/02-index.run.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + makeindex + + makeindex + + 02-index.idx + + + 02-index.idx + + + 02-index.ind + + + 02-index.ind + + + 02-index.idx + + + + makeindex + + makeindex + + 02-index.ndx + + + 02-index.ndx + + + 02-index.nnd + + + 02-index.nnd + + + 02-index.ndx + + + + makeindex + + makeindex + + 02-index.tdx + + + 02-index.tdx + + + 02-index.tnd + + + 02-index.tnd + + + 02-index.tdx + + + + latex + + 02-index.idx + 02-index.ndx + 02-index.tdx + + + 02-index.ind + 02-index.nnd + 02-index.tnd + + + diff --git a/Master/texmf-dist/doc/latex/logreq/examples/02-index.tex b/Master/texmf-dist/doc/latex/logreq/examples/02-index.tex new file mode 100644 index 00000000000..6444c2fd238 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/02-index.tex @@ -0,0 +1,99 @@ +\documentclass{minimal} +\usepackage{logreq} + +% indexing example +% (e.g., if index.sty were to support logreq) + +% sample preamble: + +% \usepackage{index} +% \newindex{default}{idx}{ind}{Subject Index} +% \newindex{names}{ndx}{nnd}{Name Index} +% \newindex{titles}{tdx}{tnd}{Title Index} + +% workflow: + +% latex file +% makeindex -o file.ind file.idx (= makeindex file) +% makeindex -o file.nnd file.ndx +% makeindex -o file.tnd file.tdx +% latex file + +\logrequest[package=index,priority=8,active=0]{% + \generic{makeindex} + \cmdline{ + \binary{makeindex} + \option{-o example.ind} + \infile{\jobname.idx} + } + \input{ + \file{\jobname.idx} + } + \output{ + \file{\jobname.ind} + } + \provides[type=dynamic]{ + \file{\jobname.ind} + } + \requires[type=dynamic]{ + \file{\jobname.idx} + } +} + +\logrequest[package=index,priority=8,active=0]{% + \generic{makeindex} + \cmdline{ + \binary{makeindex} + \option{-o example.nnd} + \infile{\jobname.ndx} + } + \input{ + \file{\jobname.ndx} + } + \output{ + \file{\jobname.nnd} + } + \provides[type=dynamic]{ + \file{\jobname.nnd} + } + \requires[type=dynamic]{ + \file{\jobname.ndx} + } +} + +\logrequest[package=index,priority=8,active=0]{% + \generic{makeindex} + \cmdline{ + \binary{makeindex} + \option{-o example.tnd} + \infile{\jobname.tdx} + } + \input{ + \file{\jobname.tdx} + } + \output{ + \file{\jobname.tnd} + } + \provides[type=dynamic]{ + \file{\jobname.tnd} + } + \requires[type=dynamic]{ + \file{\jobname.tdx} + } +} + +\ltxrequest{index}{0}{ + \provides[type=dynamic]{ + \file{\jobname.idx} + \file{\jobname.ndx} + \file{\jobname.tdx} + } + \requires[type=dynamic]{ + \file{\jobname.ind} + \file{\jobname.nnd} + \file{\jobname.tnd} + } +} + +\begin{document} +\end{document} diff --git a/Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.run.xml b/Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.run.xml new file mode 100644 index 00000000000..4db0f6e350c --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.run.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + bibtex + + bibtex8 + + + + 03-biblatex+bibtex8 + + + 03-biblatex+bibtex8.aux + + + 03-biblatex+bibtex8.bbl + + + 03-biblatex+bibtex8.bbl + + + 03-biblatex+bibtex8.aux + 03-biblatex+bibtex8-blx.bib + + + bibfile1 + bibfile2 + bibfile3 + + + biblatex.bst + latin9.csf + + + + latex + + 03-biblatex+bibtex8.aux + 03-biblatex+bibtex8-blx.bib + + + 03-biblatex+bibtex8.bbl + + + biblatex.def + authoryear.bbx + standard.bbx + authoryear.cbx + biblatex.cfg + american.lbx + english.lbx + + + diff --git a/Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.tex b/Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.tex new file mode 100644 index 00000000000..495ea364f73 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/03-biblatex+bibtex8.tex @@ -0,0 +1,79 @@ +\documentclass{minimal} +\usepackage{logreq} + +% biblatex example +% (this is a mockup of code which will be used in biblatex >= 0.9b) + +% sample preamble: + +% \usepackage[latin9]{inputenc} +% \usepackage[american]{babel} +% \usepackage[style=authoryear,backend=bibtex8,mincrossrefs=1,bibencoding=inputenc]{biblatex} +% \bibliography{bibfile1,bibfile2,bibfile3} + +% workflow: + +% latex file (-> both requests active) +% bibtex file +% latex file (-> both requests inactive) + +% additional bibtex passes may be required to resolve xrefs, +% additional latex passes may be required to resolve labels; +% i.e., the workflow may get as complex as this: + +% latex file (-> both requests active) +% bibtex file +% latex file (-> both requests active) +% bibtex file +% latex file (-> latex request active, bibtex request inactive) +% latex file (-> both requests inactive) + +\logrequest[package=biblatex,priority=5,active=1]{ + \generic{bibtex} + \cmdline{ + \binary{bibtex8} + \option{--wolfgang} + \option{--min_crossrefs 1} + \option{--csfile latin9.csf} + \infile{\jobname} + } + \input{ + \file{\jobname.aux} + } + \output{ + \file{\jobname.bbl} + } + \provides[type=dynamic]{ + \file{\jobname.bbl} + } + \requires[type=dynamic]{ + \file{\jobname.aux} + \file{\jobname-blx.bib} + } + \requires[type=editable]{ + \let\do=\file + \docsvlist{bibfile1,bibfile2,bibfile3} + } + \requires[type=static]{ + \file{biblatex.bst} + \file{latin9.csf} + } +} + +\ltxrequest{biblatex}{1}{ + \provides[type=dynamic]{ + \file{\jobname.aux} + \file{\jobname-blx.bib} + } + \requires[type=dynamic]{ + \file{\jobname.bbl} + } + \requires[type=static]{ + \let\do=\file + \docsvlist{biblatex.def,authoryear.bbx,standard.bbx,authoryear.cbx, + biblatex.cfg,american.lbx,english.lbx} + } +} + +\begin{document} +\end{document} diff --git a/Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.run.xml b/Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.run.xml new file mode 100644 index 00000000000..280f9199459 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.run.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + bibtex + + bibtex + + 04-biblatex+bibtex+refsections + + + 04-biblatex+bibtex+refsections.aux + + + 04-biblatex+bibtex+refsections.bbl + + + 04-biblatex+bibtex+refsections.bbl + + + 04-biblatex+bibtex+refsections.aux + 04-biblatex+bibtex+refsections-blx.bib + + + bibfile1 + bibfile2 + bibfile3 + + + biblatex.bst + + + + bibtex + + bibtex + + 04-biblatex+bibtex+refsections1-blx + + + 04-biblatex+bibtex+refsections1-blx.aux + + + 04-biblatex+bibtex+refsections1-blx.bbl + + + 04-biblatex+bibtex+refsections1-blx.bbl + + + 04-biblatex+bibtex+refsections1-blx.aux + 04-biblatex+bibtex+refsections-blx.bib + + + bibfile1 + bibfile3 + + + biblatex.bst + + + + bibtex + + bibtex + + 04-biblatex+bibtex+refsections2-blx + + + 04-biblatex+bibtex+refsections2-blx.aux + + + 04-biblatex+bibtex+refsections2-blx.bbl + + + 04-biblatex+bibtex+refsections2-blx.bbl + + + 04-biblatex+bibtex+refsections2-blx.aux + 04-biblatex+bibtex+refsections-blx.bib + + + bibfile4 + bibfile6 + bibfile2 + + + biblatex.bst + + + + bibtex + + bibtex + + 04-biblatex+bibtex+refsections3-blx + + + 04-biblatex+bibtex+refsections3-blx.aux + + + 04-biblatex+bibtex+refsections3-blx.bbl + + + 04-biblatex+bibtex+refsections3-blx.bbl + + + 04-biblatex+bibtex+refsections3-blx.aux + 04-biblatex+bibtex+refsections-blx.bib + + + bibfile5 + bibfile6 + + + biblatex.bst + + + + latex + + 04-biblatex+bibtex+refsections.aux + 04-biblatex+bibtex+refsections1-blx.aux + 04-biblatex+bibtex+refsections2-blx.aux + 04-biblatex+bibtex+refsections3-blx.aux + 04-biblatex+bibtex+refsections-blx.bib + + + 04-biblatex+bibtex+refsections.bbl + 04-biblatex+bibtex+refsections1-blx.bbl + 04-biblatex+bibtex+refsections2-blx.bbl + 04-biblatex+bibtex+refsections3-blx.bbl + + + biblatex.def + numeric.bbx + standard.bbx + numeric.cbx + biblatex.cfg + american.lbx + english.lbx + + + diff --git a/Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.tex b/Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.tex new file mode 100644 index 00000000000..cf7b3f509b4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/04-biblatex+bibtex+refsections.tex @@ -0,0 +1,190 @@ +\documentclass{minimal} +\usepackage{logreq} + +% biblatex example +% (this is a mockup of code which will be used in biblatex >= 0.9b) + +% sample code: + +% \usepackage{biblatex} +% \bibliography{bibfile1,bibfile2,bibfile3} +% \begin{document} +% ... +% \begin{refsection}[bibfile1,bibfile3] +% ... +% \end{refsection} +% ... +% \begin{refsection}[bibfile4,bibfile6,bibfile2] +% ... +% \end{refsection} +% ... +% \begin{refsection}[bibfile5,bibfile6] +% ... +% \end{refsection} +% \end{document} + +% workflow: + +% latex file (-> all requests active) +% bibtex file +% bibtex file1-blx +% bibtex file2-blx +% bibtex file3-blx +% latex file (-> all requests inactive) + +% additional bibtex passes may be required to resolve xrefs, +% additional latex passes may be required to resolve labels; +% i.e., the workflow may get as complex as this: + +% latex file (-> all requests active) +% bibtex file +% bibtex file1-blx +% bibtex file2-blx +% bibtex file3-blx +% latex file (-> all requests inactive) +% bibtex file +% bibtex file1-blx +% bibtex file2-blx +% bibtex file3-blx +% latex file (-> latex request active, bibtex requests inactive) +% latex file (-> both requests inactive) + +\logrequest[package=biblatex,priority=5,active=1]{ + \generic{bibtex} + \cmdline{ + \binary{bibtex} + \option{--min_crossrefs 2} + \infile{\jobname} + } + \input{ + \file{\jobname.aux} + } + \output{ + \file{\jobname.bbl} + } + \provides[type=dynamic]{ + \file{\jobname.bbl} + } + \requires[type=dynamic]{ + \file{\jobname.aux} + \file{\jobname-blx.bib} + } + \requires[type=editable]{ + \let\do=\file + \docsvlist{bibfile1,bibfile2,bibfile3} + } + \requires[type=static]{ + \file{biblatex.bst} + } +} + +\logrequest[package=biblatex,priority=5,active=1]{ + \generic{bibtex} + \cmdline{ + \binary{bibtex} + \option{--min_crossrefs 2} + \infile{\jobname1-blx} + } + \input{ + \file{\jobname1-blx.aux} + } + \output{ + \file{\jobname1-blx.bbl} + } + \provides[type=dynamic]{ + \file{\jobname1-blx.bbl} + } + \requires[type=dynamic]{ + \file{\jobname1-blx.aux} + \file{\jobname-blx.bib} + } + \requires[type=editable]{ + \let\do=\file + \docsvlist{bibfile1,bibfile3} + } + \requires[type=static]{ + \file{biblatex.bst} + } +} + +\logrequest[package=biblatex,priority=5,active=1]{ + \generic{bibtex} + \cmdline{ + \binary{bibtex} + \option{--min_crossrefs 2} + \infile{\jobname2-blx} + } + \input{ + \file{\jobname2-blx.aux} + } + \output{ + \file{\jobname2-blx.bbl} + } + \provides[type=dynamic]{ + \file{\jobname2-blx.bbl} + } + \requires[type=dynamic]{ + \file{\jobname2-blx.aux} + \file{\jobname-blx.bib} + } + \requires[type=editable]{ + \let\do=\file + \docsvlist{bibfile4,bibfile6,bibfile2} + } + \requires[type=static]{ + \file{biblatex.bst} + } +} + +\logrequest[package=biblatex,priority=5,active=1]{ + \generic{bibtex} + \cmdline{ + \binary{bibtex} + \option{--min_crossrefs 2} + \infile{\jobname3-blx} + } + \input{ + \file{\jobname3-blx.aux} + } + \output{ + \file{\jobname3-blx.bbl} + } + \provides[type=dynamic]{ + \file{\jobname3-blx.bbl} + } + \requires[type=dynamic]{ + \file{\jobname3-blx.aux} + \file{\jobname-blx.bib} + } + \requires[type=editable]{ + \let\do=\file + \docsvlist{bibfile5,bibfile6} + } + \requires[type=static]{ + \file{biblatex.bst} + } +} + +\ltxrequest{biblatex}{1}{ + \provides[type=dynamic]{ + \file{\jobname.aux} + \file{\jobname1-blx.aux} + \file{\jobname2-blx.aux} + \file{\jobname3-blx.aux} + \file{\jobname-blx.bib} + } + \requires[type=dynamic]{ + \file{\jobname.bbl} + \file{\jobname1-blx.bbl} + \file{\jobname2-blx.bbl} + \file{\jobname3-blx.bbl} + } + \requires[type=static]{ + \let\do=\file + \docsvlist{biblatex.def,numeric.bbx,standard.bbx,numeric.cbx, + biblatex.cfg,american.lbx,english.lbx} + } +} + +\begin{document} +\end{document} diff --git a/Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.run.xml b/Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.run.xml new file mode 100644 index 00000000000..6d18d9b94db --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.run.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + biber + + biber + 05-biblatex+biber + + + 05-biblatex+biber.bcf + + + 05-biblatex+biber.bbl + + + 05-biblatex+biber.bbl + + + 05-biblatex+biber.bcf + + + bibfile1 + bibfile2 + bibfile3 + + + + latex + + 05-biblatex+biber.bcf + + + 05-biblatex+biber.bbl + + + biblatex.def + numeric.bbx + standard.bbx + numeric.cbx + biblatex.cfg + american.lbx + english.lbx + + + diff --git a/Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.tex b/Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.tex new file mode 100644 index 00000000000..a3e558dea19 --- /dev/null +++ b/Master/texmf-dist/doc/latex/logreq/examples/05-biblatex+biber.tex @@ -0,0 +1,66 @@ +\documentclass{minimal} +\usepackage{logreq} + +% biblatex example +% (this is a mockup of code which will be used in biblatex >= 0.9b) + +% sample preamble: + +% \usepackage[backend=biber]{biblatex} +% \bibliography{bibfile1,bibfile2,bibfile3} + +% workflow: + +% latex file (-> both requests active) +% biber file +% latex file (-> both requests inactive) + +% The Biber (> 0.5.3) workflow will be straightforward even if +% there are refsection environments, but additional latex passes +% may be required to resolve labels: + +% latex file (-> both requests active) +% bibtex file +% latex file (-> latex request active, biber request inactive) +% latex file (-> both requests inactive) + +\logrequest[package=biblatex,priority=5,active=1]{ + \generic{biber} + \cmdline{ + \binary{biber} + \infile{\jobname} + } + \input{ + \file{\jobname.bcf} + } + \output{ + \file{\jobname.bbl} + } + \provides[type=dynamic]{ + \file{\jobname.bbl} + } + \requires[type=dynamic]{ + \file{\jobname.bcf} + } + \requires[type=editable]{ + \let\do=\file + \docsvlist{bibfile1,bibfile2,bibfile3} + } +} + +\ltxrequest{biblatex}{1}{ + \provides[type=dynamic]{ + \file{\jobname.bcf} + } + \requires[type=dynamic]{ + \file{\jobname.bbl} + } + \requires[type=static]{ + \let\do=\file + \docsvlist{biblatex.def,numeric.bbx,standard.bbx,numeric.cbx, + biblatex.cfg,american.lbx,english.lbx} + } +} + +\begin{document} +\end{document} diff --git a/Master/texmf-dist/tex/latex/logreq/logreq.def b/Master/texmf-dist/tex/latex/logreq/logreq.def new file mode 100644 index 00000000000..f114e40159d --- /dev/null +++ b/Master/texmf-dist/tex/latex/logreq/logreq.def @@ -0,0 +1,35 @@ +% $Id: logreq.def,v 1.0 2010/08/04 16:12:57 lehman stable $ + +\renewcommand*{\LogreqDTDVersion}{1.0} +\ProvidesFile{logreq.def} +[\lrq@rcsid $Id: logreq.def,v 1.0 2010/08/04 16:12:57 lehman stable $ + logreq spec v\LogreqDTDVersion] + +\DeclareLogreqContainer{requests}{(internal | external)*} +\DeclareLogreqContainer{internal}{(generic, (provides | requires)*)} +\DeclareLogreqContainer{external}{(generic, cmdline?, input?, output?, (provides | requires)*)} +\DeclareLogreqContainer{cmdline}{(binary, (option | infile | outfile)*)} +\DeclareLogreqContainer{input}{(file)+} +\DeclareLogreqContainer{output}{(file)+} +\DeclareLogreqContainer{provides}{(file)+} +\DeclareLogreqContainer{requires}{(file)+} + +\DeclareLogreqElement{generic}{(#PCDATA)} +\DeclareLogreqElement{binary}{(#PCDATA)} +\DeclareLogreqElement{option}{(#PCDATA)} +\DeclareLogreqElement{infile}{(#PCDATA)} +\DeclareLogreqElement{outfile}{(#PCDATA)} +\DeclareLogreqElement{file}{(#PCDATA)} + +\DeclareLogreqAttribute{requests}{version}{CDATA #REQUIRED} +\DeclareLogreqAttribute{internal}{package}{CDATA #REQUIRED} +\DeclareLogreqAttribute{internal}{priority}{(9) #REQUIRED} +\DeclareLogreqAttribute{internal}[1]{active}{(0 | 1) #REQUIRED} +\DeclareLogreqAttribute{external}{package}{CDATA #REQUIRED} +\DeclareLogreqAttribute{external}{priority}{(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8) #REQUIRED} +\DeclareLogreqAttribute{external}[1]{active}{(0 | 1) #REQUIRED} +\DeclareLogreqAttribute{provides}{type}{(static | dynamic | editable) #REQUIRED} +\DeclareLogreqAttribute{requires}{type}{(static | dynamic | editable) #REQUIRED} +\DeclareLogreqAttribute{file}{type}{CDATA #IMPLIED} + +\endinput diff --git a/Master/texmf-dist/tex/latex/logreq/logreq.sty b/Master/texmf-dist/tex/latex/logreq/logreq.sty new file mode 100644 index 00000000000..f64a97f5527 --- /dev/null +++ b/Master/texmf-dist/tex/latex/logreq/logreq.sty @@ -0,0 +1,237 @@ +% $Id: logreq.sty,v 1.0 2010/08/04 16:12:57 lehman stable $ + +% Copyright (c) 2010 Philipp Lehman. +% +% Permission is granted to copy, distribute and/or modify this +% software under the terms of the LaTeX Project Public License +% (LPPL), version 1.3. +% +% The LPPL maintenance status of this software is 'maintained'. +% +% This software is provided 'as is', without warranty of any kind, +% either expressed or implied, including, but not limited to, the +% implied warranties of merchantability and fitness for a +% particular purpose. + +\def\lrq@rcsid$#1: #2 #3 #4 #5${#4 v#3} + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{logreq} +[\lrq@rcsid $Id: logreq.sty,v 1.0 2010/08/04 16:12:57 lehman stable $ + xml request logger] +\RequirePackage{etoolbox} +\RequirePackage{keyval} + +\let\lrq@tempa\@empty +\def\do#1{% + \edef\lrq@tempa{\lrq@tempa + \catcode\number`#1=\the\catcode`#1\relax}% + \@makeother#1} +\do\<\do\>\do\?\do\!\do\/\do\=\do\" +\let\do\noexpand +\AtEndOfPackage{\lrq@tempa\undef\lrq@tempa} + +\def\lrq@version$#1: #2 ${#2} +\edef\lrq@version{\lrq@version$Revision: 1.0 $} + +\newcount\lrq@indent +\def\lrq@nl{^^J} +\def\lrq@tab{\lrq@tab@i\lrq@indent} +\def\lrq@tab@i#1{% + \ifnumgreater{#1}\z@ + {\space\space + \expandafter\lrq@tab@i + \expandafter{\the\numexpr#1-\@ne}} + {}} +\let\lrq@hook@data\@empty +\def\lrq@hook@init{% + \lrq@indent\@ne + \let\comment\lrq@xml@comment} + +\def\lrq@xml@sig{} +\edef\lrq@xml@ver{} + +\def\lrq@xml@comment#1{% + \xappto\lrq@hook@data{\lrq@tab\lrq@nl}} + +\def\lrq@xml@container#1#2#3{% + \begingroup + \lrq@parseattributes{#1}{#2}% + \xappto\lrq@hook@data{\lrq@tab<#1\lrq@attribs>\lrq@nl}% + \advance\lrq@indent\@ne#3\advance\lrq@indent\m@ne + \xappto\lrq@hook@data{\lrq@tab\lrq@nl}% + \endgroup} + +\def\lrq@xml@element#1#2#3{% + \begingroup + \lrq@parseattributes{#1}{#2}% + \xappto\lrq@hook@data{\lrq@tab<#1\lrq@attribs>#3\lrq@nl}% + \endgroup} + +\def\lrq@xml@setup{% + \begingroup + \lrq@indent\@ne + \let\do\lrq@dtd@doelement + \dolistloop\lrq@lst@elm + \xdef\lrq@hook@data{% + \lrq@nl + \lrq@xml@sig\lrq@nl + \lrq@xml@ver\lrq@nl + \lrq@nl + \lrq@nl + \lrq@nl\lrq@hook@data}% + \endgroup +} + +\def\lrq@dtd@doelement#1{% + \ifcsdef{lrq@lst@att@#1}% + {\xappto\lrq@hook@dtd{\lrq@tab\lrq@nl}} + {}} + +\def\lrq@dtd@doattribute#1{% + \xappto\lrq@hook@dtd{\lrq@tab#1\lrq@nl}} + +\def\lrq@writeout{% + \PackageInfo{logreq}{% + Writing requests to '\@reqoutput'\@gobble}% + \begingroup + \openin\@mainaux\@reqoutput\relax + \ifeof\@mainaux + \lrq@writeout@ii + \else + \endlinechar\m@ne + \readline\@mainaux to \lrq@tempa + \ifeof\@mainaux + \lrq@writeout@ii + \else + \readline\@mainaux to \lrq@tempa + \edef\lrq@xml@sig{\detokenize\expandafter{\lrq@xml@sig}}% + \ifx\lrq@xml@sig\lrq@tempa + \readline\@mainaux to \lrq@tempa + \edef\lrq@xml@ver{\noexpand\detokenize{\lrq@xml@ver}}% + \edef\lrq@xml@ver{\lrq@xml@ver}% + \ifx\lrq@xml@ver\lrq@tempa + \else + \PackageWarning{logreq}{% + File '\@reqoutput' created\MessageBreak + by different version of logreq.\MessageBreak + Overwriting file}% + \fi + \lrq@writeout@ii + \else + \lrq@writeout@i + \PackageError{logreq} + {File '\@reqoutput' not created by logreq} + {This file was apparently not created by logreq.\MessageBreak + I'm aborting now}% + \fi + \fi + \fi} + +\def\lrq@writeout@i{% + \closein\@mainaux + \endgroup} + +\def\lrq@writeout@ii{% + \lrq@writeout@i + \lrq@xml@setup + \immediate\openout\@mainaux\@reqoutput\relax + \immediate\write\@mainaux{\lrq@hook@data}% + \immediate\closeout\@mainaux} + +\AtEndDocument{\AfterEndDocument{\lrq@writeout}} + +\protected\def\lrq@container{\lrq@parser\lrq@xml@container} +\protected\def\lrq@element{\lrq@parser\lrq@xml@element} + +\def\lrq@parser#1#2{% + \@ifnextchar[%] + {\lrq@parser@i{#1}{#2}} + {\lrq@parser@i{#1}{#2}[]}} + +\def\lrq@parser@i#1#2[#3]#4{% + #1{#2}{#3}{#4}} + +% {}{} + +\newrobustcmd*{\DeclareLogreqContainer}{\lrq@defparser\lrq@container} +\@onlypreamble\DeclareLogreqContainer + +\newrobustcmd*{\DeclareLogreqElement}{\lrq@defparser\lrq@element} +\@onlypreamble\DeclareLogreqElement + +\def\lrq@defparser#1{% + \begingroup\@makeother\#% + \lrq@defparser@i{#1}} + +\def\lrq@defparser@i#1#2#3{% + \endgroup + \eappto\lrq@hook@init{% + \def\expandafter\noexpand\csname#2\endcsname{% + \noexpand#1{#2}}}% + \listadd\lrq@lst@elm{#2}% + \begingroup + \lrq@indent\@ne + \xappto\lrq@hook@dtd{\lrq@tab\lrq@nl}% + \endgroup} + +% {}[]{}{} + +\newrobustcmd*{\DeclareLogreqAttribute}[1]{% + \@ifnextchar[%] + {\lrq@defattibute{#1}} + {\lrq@defattibute{#1}[]}} +\@onlypreamble\DeclareLogreqAttribute + +\def\lrq@defattibute#1[#2]#3{% + \ifblank{#2} + {\define@key{lrq@att@#1}{#3}} + {\define@key{lrq@att@#1}{#3}[#2]}% + {\eappto\lrq@attribs{ #3="##1"}}% + \begingroup\@makeother\#% + \lrq@defattibute@i{#1}{#3}} + +\def\lrq@defattibute@i#1#2#3{% + \endgroup + \listcseadd{lrq@lst@att@#1}{#2 #3}} + +\def\lrq@parseattributes#1#2{% + \let\lrq@attribs\@empty + \setkeys{lrq@att@#1}{#2}} + +% {}{}{} + +\protected\def\lrq@request#1#2#3{% + \begingroup + \setbox\@tempboxa=\hbox{% + \let\if@safe@actives\iftrue + \let\protect\string + \lrq@hook@init + #1[#2]{#3}}% + \endgroup} + +% package interface + +% {}{}{} + +\newrobustcmd*{\ltxrequest}[3]{% + \lrq@request\internal{package={#1},priority=9,active={#2}}{\generic{latex}#3}} + +% [package=,priority=,active=<0|1>]{} + +\newrobustcmd*{\logrequest}[2][]{% + \lrq@request\external{#1}{#2}} + +% initialization + +\newcommand*{\@reqoutput}{\jobname.run.xml} +\newcommand*{\LogreqDTDVersion}{} +\input{logreq.def} + +\endinput diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 2bfccbef4e0..de0ecba73d1 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -191,7 +191,7 @@ my @TLP_working = qw( libertine librarian libris limap linearA linegoal lineno linguex lipsum listbib listing listings listings-ext listliketab listofsymbols lithuanian liturg lkproof lm - locality logic logical-markup-utils logpap lps lsc + locality logic logical-markup-utils logpap logreq lps lsc lshort-bulgarian lshort-chinese lshort-dutch lshort-english lshort-finnish lshort-french lshort-german lshort-italian lshort-japanese lshort-korean lshort-mongol lshort-persian diff --git a/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc index 7ac7a5f405a..2fc9d34c73f 100644 --- a/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc @@ -48,6 +48,7 @@ depend iopart-num depend jneurosci depend jurabib depend listbib +depend logreq depend margbib depend multibib depend munich diff --git a/Master/tlpkg/tlpsrc/logreq.tlpsrc b/Master/tlpkg/tlpsrc/logreq.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3