summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/properties/properties.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/properties/properties.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/properties/properties.sty')
-rw-r--r--macros/latex/contrib/properties/properties.sty68
1 files changed, 68 insertions, 0 deletions
diff --git a/macros/latex/contrib/properties/properties.sty b/macros/latex/contrib/properties/properties.sty
new file mode 100644
index 0000000000..458b707fc5
--- /dev/null
+++ b/macros/latex/contrib/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