diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty | 342 |
1 files changed, 342 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty b/Master/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty new file mode 100644 index 00000000000..e0ef72d96d4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty @@ -0,0 +1,342 @@ +%% +%% This is file `rerunfilecheck.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rerunfilecheck.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2009, 2010 by Heiko Oberdiek <oberdiek@uni-freiburg.de> +%% +%% 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. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and 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". +%% +%% This Current Maintainer of this work is Heiko Oberdiek. +%% +%% This work consists of the main source file rerunfilecheck.dtx +%% and the derived files +%% rerunfilecheck.sty, rerunfilecheck.pdf, rerunfilecheck.ins, +%% rerunfilecheck.drv, rerunfilecheck-example.cfg, +%% rerunfilecheck-test1.tex. +%% +\begingroup + \catcode123 1 % { + \catcode125 2 % } + \def\x{\endgroup + \expandafter\edef\csname ReFiCh@AtEnd\endcsname{% + \catcode35 \the\catcode35\relax + \catcode64 \the\catcode64\relax + \catcode123 \the\catcode123\relax + \catcode125 \the\catcode125\relax + }% + }% +\x +\catcode35 6 % # +\catcode64 11 % @ +\catcode123 1 % { +\catcode125 2 % } +\def\TMP@EnsureCode#1#2{% + \edef\ReFiCh@AtEnd{% + \ReFiCh@AtEnd + \catcode#1 \the\catcode#1\relax + }% + \catcode#1 #2\relax +} +\TMP@EnsureCode{39}{12}% ' +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{42}{12}% * +\TMP@EnsureCode{44}{12}% , +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{58}{12}% : +\TMP@EnsureCode{59}{12}% ; +\TMP@EnsureCode{60}{12}% < +\TMP@EnsureCode{61}{12}% = +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{93}{12}% ] +\TMP@EnsureCode{96}{12}% ` +\g@addto@macro\ReFiCh@AtEnd{\endinput} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{rerunfilecheck}% + [2010/01/25 v1.3 Rerun checks for auxiliary files (HO)] +\RequirePackage{kvoptions}[2009/07/17] +\SetupKeyvalOptions{% + family=rerunfilecheck,% + prefix=ReFiCh@% +} +\newcommand*{\RerunFileCheckSetup}{% + \setkeys{rerunfilecheck}% +} +\DeclareBoolOption{mainaux} +\DeclareBoolOption{partaux} +\DeclareBoolOption{starttoc} +\DeclareBoolOption{index} +\DeclareBoolOption{glossary} +\define@key{rerunfilecheck}{aux}[true]{% + \RerunFileCheckSetup{% + mainaux={#1},% + partaux={#1},% + starttoc={#1},% + index={#1},% + glossary={#1}% + }% +} +\InputIfFileExists{rerunfilecheck.cfg}{}{} +\ProcessKeyvalOptions* +\def\ReFiCh@DisableOption{% + \DisableKeyvalOption[% + action=warning,% + package=rerunfilecheck% + ]{rerunfilecheck}% +} +\RequirePackage{infwarerr}[2007/09/09] +\RequirePackage{pdftexcmds}[2009/04/10] +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@filemdfivesum\endcsname\relax + \@PackageInfoNoLine{rerunfilecheck}{% + Feature \string\pdfmdfivesum\space is not available\MessageBreak + (e.g. pdfTeX or LuaTeX with package `pdftexcmds').\MessageBreak + Therefore file contents cannot be checked efficiently\MessageBreak + and the loading of the package is aborted% + }% + \newcommand*{\RerunFileCheck}[3]{}% + \renewcommand*{\RerunFileCheckSetup}[1]{}% + \expandafter\ReFiCh@AtEnd +\fi +\ifReFiCh@partaux + \let\ReFiCh@org@include\@include + \def\@include#1 {% + \if@filesw + \RerunFileCheck{#1.aux}{}{}% + \fi + \ReFiCh@org@include{#1} % + }% +\fi +\ifReFiCh@mainaux + \AtBeginDocument{% + \ReFiCh@mainauxfalse + }% + \ifReFiCh@mainaux + \AtEndOfPackage{% + \RerunFileCheck{\jobname.aux}{}{}% + }% + \else + \if@filesw + \@PackageWarningNoLine{rerunfilecheck}{% + Main aux file check is disabled,\MessageBreak + because the file is already opened.\MessageBreak + Load the package before \string\begin{document}% + }% + \fi + \fi +\fi +\ifReFiCh@starttoc + \let\ReFiCh@org@starttoc\@starttoc + \def\@starttoc#1{% + \if@filesw + \RerunFileCheck{\jobname.#1}{% + \@ifundefined{tf@#1}{% + }{% + \immediate\closeout\csname tf@#1\endcsname + }% + }{}% + \fi + \ReFiCh@org@starttoc{#1}% + }% +\fi +\ifReFiCh@index + \ifx\makeindex\@empty + \@PackageWarningNoLine{rerunfilecheck}{% + Option `index' ignored,\MessageBreak + because \string\makeindex\space has already been called% + }% + \else + \def\ReFiCh@temp{% + \newwrite\@indexfile + \immediate\openout\@indexfile=\jobname.idx % + \def\index{% + \@bsphack + \begingroup + \@sanitize + \@wrindex + }% + \typeout{Writing index file \jobname.idx}% + \let\makeindex\@empty + }% + \ifx\ReFiCh@temp\makeindex + \def\makeindex{% + \newwrite\@indexfile + \RerunFileCheck{\jobname.idx}{% + \immediate\closeout\@indexfile + }{% + Rerun LaTeX/makeindex to get index right% + }% + \immediate\openout\@indexfile=\jobname.idx % + \def\index{% + \@bsphack + \begingroup + \@sanitize + \@wrindex + }% + \typeout{Writing index file \jobname.idx}% + \let\makeindex\@empty + }% + \else + \@PackageInfoNoLine{rerunfilecheck}{% + Option `index': unsupported version of \string\makeindex + }% + \fi + \fi +\fi +\ifReFiCh@glossary + \ifx\makeglossary\@empty + \@PackageWarningNoLine{rerunfilecheck}{% + Option `glossary' ignored,\MessageBreak + because \string\makeglossary\space has already been called% + }% + \else + \def\ReFiCh@temp{% + \newwrite\@glossaryfile + \immediate\openout\@glossaryfile=\jobname.glo % + \def\glossary{% + \@bsphack + \begingroup + \@sanitize + \@wrglossary + }% + \typeout{Writing glossary file \jobname.glo }% + \let\makeglossary\@empty + }% + \ifx\ReFiCh@temp\makeglossary + \def\ReFiCh@temp{% + \newwrite\@glossaryfile + \RerunFileCheck{\jobname.glo}{% + \immediate\closeout\@glossaryfile + }{% + Rerun LaTeX/makeindex to get glossary right% + }% + \immediate\openout\@glossaryfile=\jobname.glo % + \def\glossary{% + \@bsphack + \begingroup + \@sanitize + \@wrglossary + }% + \typeout{Writing glossary file \jobname.glo}% + \let\makeglossary\@empty + }% + \else + \@PackageInfoNoLine{rerunfilecheck}{% + Option `glossary': unsupported version of \string\makeglossary + }% + \fi + \fi +\fi +\ReFiCh@DisableOption{mainaux} +\ReFiCh@DisableOption{partaux} +\ReFiCh@DisableOption{starttoc} +\ReFiCh@DisableOption{index} +\ReFiCh@DisableOption{glossary} +\ReFiCh@DisableOption{aux} +\RequirePackage{atveryend}[2009/12/07] +\RequirePackage{uniquecounter}[2009/12/18] +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@filesize\endcsname\relax + \def\ReFiCh@CheckSum{% + \pdf@filemdfivesum + }% +\else + \def\ReFiCh@CheckSum#1{% + \pdf@filemdfivesum{#1}% + \ReFiCh@Separator + \pdf@filesize{#1}% + }% +\fi +\def\ReFiCh@Separator{;} +\def\ReFiCh@NoFile{<no file>} +\UniqueCounterNew{rerunfilecheck} +\newcommand*{\RerunFileCheck}{% + \UniqueCounterCall{rerunfilecheck}\ReFiCh@RerunFileCheck +} +\def\ReFiCh@RerunFileCheck#1{% + \expandafter\ReFiCh@@RerunFileCheck\csname ReFiCh@#1\endcsname +} +\def\ReFiCh@@RerunFileCheck#1#2#3#4{% + \xdef#1{\ReFiCh@CheckSum{#2}}% + \ifx#1\ReFiCh@Separator + \global\let#1\ReFiCh@NoFile + \fi + \AtVeryEndDocument{% + \begingroup + #3% + \edef\x{\ReFiCh@CheckSum{#2}}% + \ifx\x\ReFiCh@Separator + \let\x\ReFiCh@NoFile + \fi + \ifx#1\x + \@PackageInfoNoLine{rerunfilecheck}{% + File `#2' has not changed.\MessageBreak + Checksum: \x + }% + \else + \ifnum + \ReFiCh@IsAux#2\relax.aux\relax\@nil + \ifx#1\ReFiCh@NoFile 1\else 0\fi + \ifx\x\ReFiCh@AuxEmptyUnix 1% + \else + \ifx\x\ReFiCh@AuxEmptyDos 1\fi + \fi + =111 % + \@PackageInfoNoLine{rerunfilecheck}{% + File `#2' is empty .aux file.\MessageBreak + Before: #1\MessageBreak + After: \space\x + }% + \else + \@PackageWarningNoLine{rerunfilecheck}{% + File `#2' has changed.% + \ifx\\#4\\% + \space Rerun% + \else + \MessageBreak + #4% + \fi + }% + \@PackageInfoNoLine{rerunfilecheck}{% + Checksums for `#2':\MessageBreak + Before: #1\MessageBreak + After: \space\x + }% + \fi + \fi + \endgroup + }% +} +\def\ReFiCh@IsAux#1.aux\relax#2\@nil{% + \ifx\hbox#2\hbox + 0% + \else + 1% + \fi +} +\def\ReFiCh@AuxEmptyUnix{A94A2480D3289E625EEA47CD1B285758;8}% +\@onelevel@sanitize\ReFiCh@AuxEmptyUnix +\def\ReFiCh@AuxEmptyDos{A62A15ECE803E2EBE94952FCC9933BC0;9}% +\@onelevel@sanitize\ReFiCh@AuxEmptyDos +\ReFiCh@AtEnd +\endinput +%% +%% End of file `rerunfilecheck.sty'. |