Nach langem Testen einer lange verfolgten Idee So, hier nun eine Lösung, die ganz gut funktioniert. Es kann ein paketunabhängiger Befehlssatz erstellt werden, der mit einem persönlichen Prefix versehen ist. Da die angedachte Lösung einer zentralen Prefix-Reservierung [link text][1] vermutlich nicht funktionieren wird, habe ich hier auf die Lösung gesetzt, daß jeder Autor seinen Prefix für sein Dokument selbst setzt, die eventuell gleichlautenden Prefixe externer Pakete damit übernimmt und sie, falls er sie benutzt, am Ende aktualisierte Fassung.
Informationen im Abstract des Dokumentes angezeigt bekommt und ggf umdefinieren oder ausser Kraft setzen kann. Falls ein Prefix doppelt definiert wird, erscheint eine Fehlermeldung. kompilierten Dokumentes.
Freundliche Kritik willkommen :-)
[1]: http://texwelt.de/blog/latex3-news/#comment-2117
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{filecontents}
\begin{filecontents}{command.sty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ****************************************
% * COMMAND.COM
COMMAND.STY
% ****************************************
%Matthias Borck-Elsner
%matthias @ kleinesnetzwerk.net
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.2
%% of this license or (at your option) any later version.
%% The lambe version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%Befehlsinterpreter mit Tex/Latex
%Thanks to TEXWELT's stefan and clemens
\ProvidesPackage{command}
[2014/04/17 v1.1 Individual interpreters with prefixes and notes]
\RequirePackage{xcolor}
\newcommand{\auth}[1]{#1}
\newcounter{para}
\newcommand{\params}[1]{}
\newcounter{usecommands}
\newcommand{\tb}{\textbackslash}%
\newcommand{\showcommands}{\setcounter{usecommands}{1}}%
\newcommand\newcomstype[1]{%
\newcounter{#1com}%
\expandafter\newwrite\csname the#1coms\endcsname%
thecoms\endcsname%
\expandafter\immediate\expandafter\openout%
\csname the#1coms\endcsname=command.#1\relax%
thecoms\endcsname=command.pub\relax%
\expandafter\newcommand\csname#1com\endcsname[1]{%
\stepcounter{#1com}%
{%
\ifnum\value{usecommands}=1 \textcolor{red}{\small\textsuperscript{%
\raisebox{1ex}{\hbox{\kern-0.0em #1 \csname
the#1com\endcsname\kern-0.0em}}%
}}\fi%
}%
\expandafter\immediate\expandafter\write\csname the#1coms\endcsname
thecoms\endcsname
{ \noexpand\textsuperscript{\noexpand\textcolor{red}{#1\csname
the#1com\endcsname}}\ \unexpanded{\tb #1##1\parskip=0pt\par}}
#1##1\parskip=0pt}\noexpand\par}
}%
\expandafter\newcommand\csname display#1commands\endcsname{%
\vspace{1\baselineskip}%
\expandafter\immediate\expandafter\closeout%
%%%%%%%%%%%%%%%%%%%%%
\expandafter\newcommand\csname#1\endcsname[3]{%
\def\params{##2}
\expandafter\newcommand\expandafter{\csname#1##1\endcsname}[\params]{##3%
\csname the#1coms\endcsname%
\par\small\textbf{command.#1}\par%
\input command.#1%
}%
%%%%%%%%%%%%%%%%%%%%%
\expandafter\newcommand\csname #1\endcsname[3]{%
\expandafter\newcommand\expandafter{\csname#1##1\endcsname}{##2
\csname #1com\endcsname{##1\{\expandafter\verb+##2+\}\%##3}}}%eigenes,neues #1com\endcsname{##1[##2]\{##3\}}}}%eigenes,neues Kommando erzeugen
%%%%%%%%%%%%%%%%%%%%%
}%
\newcomstype{pub}
\expandafter\newcommand\csname displaycommands\endcsname{%
\vspace{1\baselineskip}%
\expandafter\immediate\expandafter\closeout%
\csname thecoms\endcsname%
\par\small\textbf{commands}\par%
\input command.pub %
\vspace{1\baselineskip}}
%Neue Befehlstypen und -definitionen können sowohl im .sty-file, als auch in
%der Präamble oder mitten im Dokument formuliert werden
\newcomstype{jim}
\newcomstype{luk}
\newcomstype{waas}
\newcomstype{mbe}
\jim{firstname}{1}{\textcolor{blue}{#1}}%
\jim{lastname}{1}{\textcolor{blue}{#1}}%
\jim{address}{4}{\texttt{#1 #2 #3 #4}}%
\luk{firstname}{1}{\textcolor{blue}{#1}}%
\luk{lastname}{1}{\textcolor{blue}{#1}}%
\luk{address}{4}{\texttt{#1 #2 #3 #4}}%
\waas{firstname}{1}{\textcolor{blue}{#1}}%
\waas{lastname}{1}{\textcolor{blue}{#1}}%
\waas{address}{4}{\texttt{#1 #2 #3 #4}}%
%%Neue Befehlstypen und -definitionen können sowohl im .sty-file, als auch in
%der Präamble oder mitten im Dokument formuliert werden
\endinput%
\end{filecontents}
\usepackage{command}
\title{command.sty \\ Individual interpreters \title{command.sty\\Individual commands with prefixes and notes}
notes }
\author{Matthias Borck-Elsner (\auth{mbe})}
Borck-Elsner}
\parindent=0pt
%this part might come up as an individual package
\pub{firstname}{\textbf{Public}}{bfseries for firstname}
\pub{lastname}{\textbf{Public}}{bfseries for lastname}
\mbe{lastname}{\textbf{Borck-Elsner}}{bfseries for lastname}
%%endof
\showcommands
%\showcommands
\begin{document}
\maketitle
\section{Test}
\pubfirstname\\
\mbelastname\\
\displaypubcommands
\displaymbecommands
\abstract{In diesem Text sieht man die Anwendung von
\verb+command.sty+ . Individuelle Befehle können mit einem Prefix
versehen, die Anzahl und die Formatierung der Parameter vorgegeben
und die Befehle im Text angewendet werden.
Mit \verb+\showcommands+ werden angewendete Befehle im Text gekennzeichnet und mit
\verb+\displaycommands+ am Ende des Dokuments in Form von Anmerkungen
aufgelistet. Jeder Befehl erhält dabei eine eindeutige Namensgebung und wird
in der Liste mit Name, Parameterzahl und Definition angezeigt.}
\section{Jim Knopf}
\jimfirstname{Jim} \jimlastname{Knopf}\jimaddress{333}{Lummerland}{Bahnhof}{1}
\begin{quote}''Seinen Namen \jimlastname{Knopf} bekam er, als Frau \waaslastname{Waas} auf sein nicht zu stopfendes Loch in der
Hose voller Verzweiflung einen Knopf nähte, damit Jim es einfach auf- und
zuknöpfen kann. Seinen Vornamen \jimfirstname{Jim} hat \lukfirstname{Lukas} ihm gegeben, weil der Junge, wie er
sagt, 'einfach so aussieht'.''\end{quote}
[http://de.wikipedia.org]
\displaycommands
\end{document}