1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
% \iffalse meta-comment
%
%% (C) 2006 Paul Ebermann
%%
%% Package robustcommand - robuste Kommandos, die nicht
%% automatisch berschreiben.
%%
%% Die Datei robustcommand.dtx sowie die dazugehrige
%% robustcommand.ins sowie die damit generierte
%% robustcommand.sty stehen unter der
%% "LaTeX Project Public License" (LPPL, zu finden
%% unter http://www.latex-project.org/lppl/, sowie
%% auch in den meisten TeX-Distributionen in
%% texmf/docs/latex/base/lppl*.txt), Version 1.3b oder
%% spter (nach Wahl des Verwenders).
%%
%% Der 'maintenance-status' ist (zur Zeit) 'author-maintained'.
%%
%% Das heit u.a., die Dateien drfen frei vertrieben werden,
%% bei nderungen (durch andere Personen als Paul Ebermann)
%% ist aber der Name der Datei zu ndern.
%
% \fi
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[2003/12/01]
%<package>\ProvidesPackage{robustcommand}
%<package> [2006/03/23 v0.1 Robuste Kommandos (PE)]
%
%<*driver>
\documentclass[draft,ngerman]{ltxdoc}
\usepackage{robustcommand}
\usepackage{pauldoc}
\begin{document}
\DocInput{robustcommand.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{5}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
% Digits \0\1\2\3\4\5\6\7\8\9
% Exclamation \! Double quote \" Hash (number) \#
% Dollar \$ Percent \% Ampersand \&
% Acute accent \' Left paren \( Right paren \)
% Asterisk \* Plus \+ Comma \,
% Minus \- Point \. Solidus \/
% Colon \: Semicolon \; Less than \<
% Equals \= Greater than \> Question mark \?
% Commercial at \@ Left bracket \[ Backslash \\
% Right bracket \] Circumflex \^ Underscore \_
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
% \changes{v0.0}{2006/03/22}{Erste Fassung}
%
% \GetFileInfo{robustcommand.sty}
%
%
% \title{Das \pack{robustcommand}-Package -- Erweiterungen von \cs{DeclareRobustCommand}\thanks{%
% Dieses Dokument gehrt zu \pack{robustcommand}~\fileversion,
% vom~\filedate.}}
% \author{Paul Ebermann\thanks{\texttt{Paul-Ebermann@gmx.de}}}
%
% \maketitle
%
% \tableofcontents
%
% \section{Benutzerdoku}
% Im \LaTeX-Kernel gibt es den Befehl '\DeclareRobustCommand', welcher
% ein robustes Kommando definiert. Leider beachtet dies -- im Gegensatz
% zu '\newcommand' -- nicht, ob ein entsprechendes Makro schon vorhanden
% ist, und berschreibt es einfach, so dass man versehentlich Makros
% berschreiben kann.
%
% \DescribeMacro{\robust@new@command}
% Dieses Package schliet diese Lcke mit dem Kommando
%
% '\robust@new@command'\marg{kommando}\oarg{param-num}\oarg{default}\marg{defn}
%
% Dies definiert \meta{kommando}, falls noch nicht vorhanden, als robustes
% Makro (mit kurzen Argumenten) mit Definition \meta{defn}. Falls \meta{kommando}
% schon existiert, gibt es eine Fehlermeldung.
%
% Dies ist also wie '\newcommand*' oder '\DeclareRobustCommand*' zu verwenden,
% eine \emph{Nicht-Stern-Variante} gibt es nicht.
%
% Der Makro-Name enthlt '@'-Zeichen, so dass er nur in Package-Dateien verwendet
% werden kann. Normalerweise ist er auch sonst nicht notwendig.
%
% \StopEventually{\PrintChanges\PrintIndex}
%
% \section{Implementation}
%
% \begin{macrocode}
%<*package>
% \end{macrocode}
%
% \begin{macro}{\robust@new@command} \noindent\marg{kommando}\oarg{default}\oarg{params}\marg{defn}
%
% \begin{macrocode}
\newcommand*{\robust@new@command}[1]
{%
% \end{macrocode}
% Die berprfung und Fehlermeldung realisieren wir, indem wir \meta{kommando}
% einmal mittels '\newcommand*' definieren. Das gibt eine Fehlermeldung, falls
% \meta{kommando} schon definiert war.
% \begin{macrocode}
\newcommand*{#1}{}%
% \end{macrocode}
% Ansonsten nutzen wir jetzt einfach '\DeclareRobustCommand*', welches auch noch die
% weiteren Argumente (\meta{default}, \meta{params}, \meta{defn}) liest.
% \begin{macrocode}
\DeclareRobustCommand*{#1}%
}
% \end{macrocode}
% \end{macro}
%
% Das war schon alles.
% \begin{macrocode}
\endinput
%</package>
% \end{macrocode}
%
% \Finale
%\endinput
%%% Folgendes ist nur fr meinen Editor.
%%%
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
|