From 6f566f4c50f0a9f580b47c6c30b0f58531baaacf Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 9 Apr 2010 23:57:07 +0000 Subject: new latex package currfile 0.1 (8apr10) git-svn-id: svn://tug.org/texlive/trunk@17776 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/currfile/currfile.sty | 85 +++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/currfile/currfile.sty (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/latex/currfile/currfile.sty b/Master/texmf-dist/tex/latex/currfile/currfile.sty new file mode 100644 index 00000000000..4c0853abe79 --- /dev/null +++ b/Master/texmf-dist/tex/latex/currfile/currfile.sty @@ -0,0 +1,85 @@ +%% Copyright (c) 2010 by Martin Scharrer +%% ----------------------------------------------------------------- +%% +%% 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. +%% The latest version of this license is in +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2008/05/04 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files currfile.dtx, currfile.ins +%% and the derived file currfile.sty. +%% +%% $Id: standalone.dtx 1803 2010-04-03 13:59:44Z martin $ +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{currfile} + [2010/04/08 v0.1 Current input file name and path] +\RequirePackage{kvoptions} +\SetupKeyvalOptions{family=currfile,prefix=currfile@} +\DeclareStringOption[tex]{mainext} +\DeclareStringOption[]{maindir} +\ProcessKeyvalOptions*\relax +\RequirePackage{filehook} +\filehook@prefixwarg\filehook@include@atbegin{% + \currfile@push + \currfile@set{#1}% +} +\filehook@appendwarg\filehook@include@after{% + \currfile@pop +} +\filehook@prefixwarg\filehook@input@atbegin{% + \currfile@push + \currfile@set{#1}% +} +\filehook@appendwarg\filehook@input@atend{% + \currfile@pop +} +\def\currfile@set#1{% + \begingroup + \filename@parse{#1}% + \global\let\currfiledir\filename@area + \global\let\currfilebase\filename@base + \xdef\currfileext{\ifx\filename@ext\relax tex\else\filename@ext\fi}% + \xdef\currfilename{\currfilebase\ifx\currfileext\empty\else.\currfileext\fi}% + \xdef\currfilepath{\currfiledir\currfilename}% + \endgroup +} +\def\currfile@push{% + \xdef\currfile@stack{% + {\currfiledir}% + {\currfilebase}% + {\currfileext}% + \currfile@stack + }% +} +\def\currfile@pop{% + \ifx\currfile@stack\empty + \PackageWarning{currfile}{File stack underflow!}{}{}% + \global\let\currfile@stack\currfile@stackinit + \fi + \expandafter\currfile@pop@\currfile@stack\relax + \relax\relax\relax +} +\def\currfile@pop@#1#2#3#4\relax{% + \gdef\currfiledir{#1}% + \gdef\currfilebase{#2}% + \gdef\currfileext{#3}% + \xdef\currfilename{\currfilebase\ifx\currfileext\empty\else.\currfileext\fi}% + \xdef\currfilepath{\currfiledir\currfilename}% + \gdef\currfile@stack{#4}% +} +\def\currfile@stack{} +\currfile@set{\currfile@maindir\jobname.\currfile@mainext} +\currfile@push +\let\currfile@stackinit\currfile@stack +\endinput +%% +%% End of file `currfile.sty'. -- cgit v1.2.3