% \iffalse meta-comment % % Copyright (C) 2012 by Robin Schneider % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % 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 Robin Schneider. % % This work consists of the files counttexruns.dtx and counttexruns.ins % and the derived filebase counttexruns.sty. % % \fi % % \iffalse %<*driver> \ProvidesFile{counttexruns.dtx} % %%% See file 'counttexruns.dtx' for copyright and licence. %\NeedsTeXFormat{LaTeX2e}[1998/12/01] %\ProvidesPackage{counttexruns} %<*package> [2012/08/31 v1.00a Count compilations of a document] % % %<*driver> \documentclass[english]{ltxdoc} \newcommand{\PackageURL}{https://github.com/ypid/latex-packages/tree/master/counttexruns} \newcommand{\PackageCTANURL}{http://www.ctan.org/pkg/counttexruns} \newcommand{\PackageAuthor}{Robin Schneider} \newcommand{\PackageAuthorEmail}{ypid23@aol.de} \newcommand{\PackageName}{\PrintPackage{count\TeX runs}} \newcommand{\PrintPackage}[1]{\textsf{#1}} \usepackage{counttexruns} \usepackage{ babel, csquotes, xcolor, url, hypdoc, ifthen, } \GetFileInfo{counttexruns.dtx} \hypersetup{ pdftitle={A manual for \PackageName}, pdfauthor={\PackageAuthor{} <\PackageAuthorEmail>}, pdfsubject={\fileinfo}, baseurl={\PackageURL}, pdfkeywords={This document corresponds to \PackageName~\fileversion, dated \filedate} } \title{The \PackageName{} package\thanks{This document corresponds to \PackageName~\fileversion, dated \filedate.}} \author{\PackageAuthor \\ \texttt{\href{mailto:\PackageAuthorEmail?subject=LaTeX package counttexruns}% {\PackageAuthorEmail}% }% } \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{counttexruns.dtx} \PrintChanges \PrintIndex \end{document} % % \fi % % \CheckSum{52} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \changes{1.00}{2012/08/27}{Initial version} % \changes{1.00a}{2012/08/31}{Minor details fixed} % % \DoNotIndex{\RequirePackage, \DeclareOption, \ProcessOptions} % \DoNotIndex{\PackageWarning, \MessageBreak} % \DoNotIndex{\DeclareStringOption, \ProcessLocalKeyvalOptions} % \DoNotIndex{\DeclareRobustCommand, \newcommand, \renewcommand} % \DoNotIndex{\newenvironment} % \DoNotIndex{\if, \else, \fi, \ifcase, \or, \ifthenelse, \AND, \value, \relax} % \DoNotIndex{\%, \IfFileExists, \immediate, \arabic} %% ^^A \% is ignored ... % \DoNotIndex{\@currname, \newcounter, \setcounter} % \DoNotIndex{\endinput} % % \maketitle % % \phantomsection % \addcontentsline{toc}{section}{\abstractname} % \begin{abstract} % The \PackageName{} package counts how often a \LaTeX{} document is % compiled.\\ % Location on CTAN: \url{\PackageCTANURL} \\ % Fork me on GitHub: \url{\PackageURL} \end{abstract} % % \tableofcontents % % \section{Introduction} % From a statistical perspective you maybe want to know how often you compiled % a document. This is exactly the task I wrote this package for. For a few % years I used a bash script and -shell-escape to do this but I decided to % write this small package to do the trick a little nicer. % % \section{Usage} % Just load the package placing % \begin{quote} % |\usepackage{counttexruns}| % \end{quote} % in the preamble of your \LaTeXe{} source file. % % The counter will be stored in a file with the same prefix as your document % (|\jobname|) but with the file extension \enquote{.ctr}. You can change the % default extension by setting it as package option like this: % \begin{quote} % |\usepackage[extension=ctr]{counttexruns}| % \end{quote} % % \DescribeMacro{\thecounttexruns} % To print the count you can use the macro |\thecounttexruns|. You can also use % and even change the \LaTeX{} counter \enquote{counttexruns}. This will not disturb % \PackageName. % % By the way this documentation was \thecounttexruns{} % time\ifthenelse{\equal{\value{counttexruns}}{1}}{}{s} compiled during % development. % % You can use the package \PrintPackage{ifthen} for checking if a counter is % one: \\ |time\ifthenelse{\equal{\value{counttexruns}}{1}}{}{s}| % % % \StopEventually{} % % \section{Implementation} % \iffalse %<*package> % \fi % \begin{macro}{\thecounttexruns} % First a new counter and file handle is declared. % The |\newcounter| will also declare the macro |\thecounttexruns|. % \begin{macrocode} \newcounter{counttexruns} \newwrite\@counttexrunsfile % \end{macrocode} % Then the package options are processed. % \begin{macrocode} \RequirePackage{kvoptions} \DeclareStringOption[ctr]{extension} \ProcessLocalKeyvalOptions* % \end{macrocode} % \end{macro} % Here it is checked if the file already exists and if that is the case the % number of compile events will be stored in the \LaTeX{} counter % \enquote{counttexruns}. % \begin{macrocode} \IfFileExists{\jobname.\counttexruns@extension}{ \immediate\openin\@counttexrunsfile=\jobname.\counttexruns@extension \immediate\read\@counttexrunsfile to \@counttexruns \immediate\read\@counttexrunsfile to \@counttexruns \immediate\closein\@counttexrunsfile \setcounter{counttexruns}{\@counttexruns} }{} % \end{macrocode} % Here the counter \enquote{counttexruns} is increment by one. % \begin{macrocode} \stepcounter{counttexruns} % \end{macrocode} % At this point the new count is written back to the file. % \begin{macrocode} \immediate\openout\@counttexrunsfile=\jobname.\counttexruns@extension \catcode`\%=11\relax \immediate\write\@counttexrunsfile{%% This file '\jobname.\counttexruns@extension' was generated by the package counttexruns} \catcode`\%=14\relax \immediate\write\@counttexrunsfile{\arabic{counttexruns}} \immediate\closeout\@counttexrunsfile % \end{macrocode} % Well, thats is~\dots % \begin{macrocode} \endinput % \end{macrocode} % % \iffalse % % \fi % % \Finale \endinput