From 658051cf9e3a9f7e1a47c3346c3c00997885ae98 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 19 Jul 2009 18:20:09 +0000 Subject: new latex package properties (12jul09) git-svn-id: svn://tug.org/texlive/trunk@14321 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/properties/properties.sty | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/properties/properties.sty (limited to 'Master/texmf-dist/tex/latex/properties') diff --git a/Master/texmf-dist/tex/latex/properties/properties.sty b/Master/texmf-dist/tex/latex/properties/properties.sty new file mode 100644 index 00000000000..458b707fc59 --- /dev/null +++ b/Master/texmf-dist/tex/latex/properties/properties.sty @@ -0,0 +1,68 @@ +% UTF8 +% +% Paket fuer Properties +% +% Properties-Datei laden: +% \loadDefaultProperties lädt Datei \jobname.properties und +% falls vorhanden \jobname.local.properties +% dabei werden die vorher definierten Werte überschrieben. +% \loadOtherProperties{xxx} lädt Datei xxx.properties und +% falls vorhanden xxx.local.properties +% dabei werden die vorher definierten Werte überschrieben. +% +% Werte ermitteln: +% \getDefaultProperty{key} ermittelt den Wert für key. +% \getOtherProperty{xxx}{key} ermittelt den Wert für key und verwendet +% dabei xxx.properties. +% +% Werte setzen: +% \setDefaultProperty{key}{value} setzt für key den Wert value. +% \setOtherProperty{xxx}{key}{value} setzt für key den Wert value und verwendet +% dabei xxx.properties. +% +% (c) Michael Niedermair (m.g.n@gmx.de) +% +% Lizenz: LaTeX Project Public License +% +% $Id: properties.sty 7 2009-06-30 11:07:26Z michael $ +% +% ------------------------------------- +\ProvidesPackage{properties}[% + 2009/06/30 v0.2 Properties (Nm)] +% +\RequirePackage{datatool} +% +\newcommand*\PROP@jobname{\jobname} +\newcommand*\PROP@extension{properties} +\newcommand*\PROP@local{local} +% +% #1 name +% #2 filename +\newcommand*\PROP@loadProperties[2]{% + \IfFileExists{#2.\PROP@extension}{% + \PackageInfo{properties}{Loading #2.\PROP@extension}% + \DTLsetseparator{=}% + \DTLloaddb[noheader,keys={key,value}]{#2}{#2.\PROP@extension}% + \DTLforeach{#2}{\PROP@key=key,\PROP@value=value}{% + \edef\@tempa{\noexpand\@namedef{#1@\PROP@key}{\PROP@value}}% + \@tempa% + }% + }{% + \PackageInfo{properties}{#2.\PROP@extension\space not found}% + }% +}% +% +\newcommand*\loadDefaultProperties{% + \loadOtherProperties{\PROP@jobname}% +} +\newcommand*\loadOtherProperties[1]{% + \PROP@loadProperties{#1}{#1}% + \PROP@loadProperties{#1}{#1.\PROP@local}% +} +% +\newcommand*\getDefaultProperty[1]{\getOtherProperty{\PROP@jobname}{#1}} +\newcommand*\setDefaultProperty[2]{\setOtherProperty{\PROP@jobname}{#1}{#2}} +\newcommand*\getOtherProperty[2]{\@nameuse{#1@#2}} +\newcommand*\setOtherProperty[3]{\@namedef{#1@#2}{#3}} +% +\endinput -- cgit v1.2.3