logreq/0000775000175000017500000000000011426306710010501 5ustar jhrjhrlogreq/logreq.sty0000664000175000017500000001405311426306710012536 0ustar jhrjhr% $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 logreq/README0000664000175000017500000000316311426306710011364 0ustar jhrjhr$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.def0000664000175000017500000000312411426306710012452 0ustar jhrjhr% $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/0000775000175000017500000000000011426306710012317 5ustar jhrjhrlogreq/examples/02-index.tex0000664000175000017500000000334711426306710014376 0ustar jhrjhr\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.xml0000664000175000017500000000530411426306710017221 0ustar jhrjhr ]> 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 logreq/examples/04-biblatex+bibtex+refsections.run.xml0000664000175000017500000001317211426306710021454 0ustar jhrjhr ]> 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 logreq/examples/05-biblatex+biber.run.xml0000664000175000017500000000455611426306710016751 0ustar jhrjhr ]> 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 logreq/examples/03-biblatex+bibtex8.tex0000664000175000017500000000344011426306710016415 0ustar jhrjhr\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.xml0000664000175000017500000000415111426306710015144 0ustar jhrjhr ]> 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.tex0000664000175000017500000000221211426306710014335 0ustar jhrjhr\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.tex0000664000175000017500000000737011426306710020654 0ustar jhrjhr\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.xml0000664000175000017500000000610611426306710015175 0ustar jhrjhr ]> 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 logreq/examples/05-biblatex+biber.tex0000664000175000017500000000261011426306710016133 0ustar jhrjhr\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}