summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/properties
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
Initial commit
Diffstat (limited to 'macros/latex/contrib/properties')
l---------macros/latex/contrib/properties/README1
-rw-r--r--macros/latex/contrib/properties/properties.sty68
-rw-r--r--macros/latex/contrib/properties/readme.de24
-rw-r--r--macros/latex/contrib/properties/testprop.tex61
4 files changed, 154 insertions, 0 deletions
diff --git a/macros/latex/contrib/properties/README b/macros/latex/contrib/properties/README
new file mode 120000
index 0000000000..d91d79a1ac
--- /dev/null
+++ b/macros/latex/contrib/properties/README
@@ -0,0 +1 @@
+readme.de \ No newline at end of file
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
diff --git a/macros/latex/contrib/properties/readme.de b/macros/latex/contrib/properties/readme.de
new file mode 100644
index 0000000000..2747bc5539
--- /dev/null
+++ b/macros/latex/contrib/properties/readme.de
@@ -0,0 +1,24 @@
+% $Id: readme.de 7 2009-06-30 11:07:26Z michael $
+%
+% 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
diff --git a/macros/latex/contrib/properties/testprop.tex b/macros/latex/contrib/properties/testprop.tex
new file mode 100644
index 0000000000..14a3bb35b4
--- /dev/null
+++ b/macros/latex/contrib/properties/testprop.tex
@@ -0,0 +1,61 @@
+% UTF8
+%
+% $Id: testprop.tex 7 2009-06-30 11:07:26Z michael $
+%
+\listfiles
+\documentclass[ngerman,a4paper]{scrartcl}
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+
+\usepackage{babel,libertine,sverb,ifthen}
+
+\usepackage{properties}
+
+\begin{verbwrite}{testprop.properties}
+cropmark=true
+autor=Michael Niedermair
+test=Dies ist ein Test!
+\end{verbwrite}
+\begin{verbwrite}{testprop.local.properties}
+cropmark=newlocal
+\end{verbwrite}
+\begin{verbwrite}{xxx.properties}
+name=Michael Niedermair
+\end{verbwrite}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\section{Paket properties.sty}
+
+\minisec{Properties \jobname.properties}
+
+\loadDefaultProperties
+
+
+crop\quad=\quad\getDefaultProperty{cropmark}
+
+nodef\quad=\quad\getDefaultProperty{notdef}
+
+autor\quad=\quad\getDefaultProperty{autor}
+
+test\quad=\quad\getDefaultProperty{test}
+
+Test auf crop = newlocal: \quad\ifthenelse{\equal{\getDefaultProperty{cropmark}}{newlocal}}{JA}{NEIN}\\
+Test auf crop = local: \quad\ifthenelse{\equal{\getDefaultProperty{cropmark}}{local}}{JA}{NEIN}
+
+\minisec{Properties xxx.properties}
+
+\loadOtherProperties{xxx}
+
+name\quad=\quad\getOtherProperty{xxx}{name}
+
+\setOtherProperty{xxx}{name}{Michael G. Niedermair}
+
+Wert setzen:
+
+new: name\quad=\quad\getOtherProperty{xxx}{name}
+
+\end{document}
+