logreq/ 0000775 0001750 0001750 00000000000 11426306710 010501 5 ustar jhr jhr logreq/logreq.sty 0000664 0001750 0001750 00000014053 11426306710 012536 0 ustar jhr jhr % $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#1>\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#1>\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
logreq/README 0000664 0001750 0001750 00000003163 11426306710 011364 0 ustar jhr jhr $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.
logreq/logreq.def 0000664 0001750 0001750 00000003124 11426306710 012452 0 ustar jhr jhr % $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
logreq/examples/ 0000775 0001750 0001750 00000000000 11426306710 012317 5 ustar jhr jhr logreq/examples/02-index.tex 0000664 0001750 0001750 00000003347 11426306710 014376 0 ustar jhr jhr \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}
logreq/examples/03-biblatex+bibtex8.run.xml 0000664 0001750 0001750 00000005304 11426306710 017221 0 ustar jhr jhr
]>
bibtex
bibtex8
03-biblatex+bibtex8
03-biblatex+bibtex8.aux
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
logreq/examples/04-biblatex+bibtex+refsections.run.xml 0000664 0001750 0001750 00000013172 11426306710 021454 0 ustar jhr jhr
]>
bibtex
bibtex
04-biblatex+bibtex+refsections
04-biblatex+bibtex+refsections.aux
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.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.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.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
logreq/examples/05-biblatex+biber.run.xml 0000664 0001750 0001750 00000004556 11426306710 016751 0 ustar jhr jhr
]>
biber
biber
05-biblatex+biber
05-biblatex+biber.bcf
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
logreq/examples/03-biblatex+bibtex8.tex 0000664 0001750 0001750 00000003440 11426306710 016415 0 ustar jhr jhr \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}
logreq/examples/01-basic.run.xml 0000664 0001750 0001750 00000004151 11426306710 015144 0 ustar jhr jhr
]>
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
logreq/examples/01-basic.tex 0000664 0001750 0001750 00000002212 11426306710 014335 0 ustar jhr jhr \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}
logreq/examples/04-biblatex+bibtex+refsections.tex 0000664 0001750 0001750 00000007370 11426306710 020654 0 ustar jhr jhr \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}
logreq/examples/02-index.run.xml 0000664 0001750 0001750 00000006106 11426306710 015175 0 ustar jhr jhr
]>
makeindex
makeindex
02-index.idx
02-index.idx
02-index.ind
02-index.idx
makeindex
makeindex
02-index.ndx
02-index.ndx
02-index.nnd
02-index.ndx
makeindex
makeindex
02-index.tdx
02-index.tdx
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
logreq/examples/05-biblatex+biber.tex 0000664 0001750 0001750 00000002610 11426306710 016133 0 ustar jhr jhr \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}