Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2
Paket nach vorn verschoben

25 Jan '17, 17:54

gast3's gravatar image

gast3
(ausgesetzt)

Statt mit `\let` und Umschaufeln der Definition in eine interne Anweisung zu hantieren, empfehle ich die Verwendung des Paket [`xpatch`](http://www.ctan.org/pkg/xpatch) zur Erweiterung der Definition von `LinearSystems` und `LinearSystems*`: \documentclass{article} \usepackage{amsmath} \usepackage{environ} \usepackage{xpatch} \makeatletter \newcommand{\LinearSystems@SetupLets}{% \let\col=&% \let\+=+% \let\-=-% \let\===% } \newcommand{\LinearSystems@SetupCatcodes}{% \catcode`\&=\active \catcode`\+=\active \catcode`\-=\active \catcode`\==\active } \newcommand{\LinearSystems@Setup}{} \begingroup \LinearSystems@SetupCatcodes \gdef\LinearSystems@Setup{% \LinearSystems@SetupLets \LinearSystems@SetupCatcodes \newcommand&[1][0pt]{\col\hspace{##1}\col}% \def+{\col\+{}{}\col}% \def-{\col\-{}{}\col}% \def={\col\={}{}\col}% } \endgroup \NewEnviron{LinearSystems}[1]{\begin{alignat}{#1}\BODY\end{alignat}} \NewEnviron{LinearSystems*}[1]{\begin{alignat*}{#1}\BODY\end{alignat*}} \usepackage{xpatch} \xpretocmd{\LinearSystems}{\LinearSystems@Setup}{}{} \expandafter\xpretocmd\csname LinearSystems*\endcsname{\LinearSystems@Setup}{}{} \makeatother \begin{document} \begin{LinearSystems}{3} 4x_1 + x_2 = 1\\ \-x_1 + x_2 = \-2 \end{LinearSystems} \begin{LinearSystems*}{3} 4x_1 + x_2 = 1\\ \-x_1 + x_2 = \-2 \end{LinearSystems*} \end{document} Das ist nicht nur einfacher, sondern auch sicherer. Wer will kann im letzten Argument von `\xpretocmd` noch eine Fehlerbehandlung für den Fall einfügen, dass das Patchen aus irgendwelchen Gründen nicht funktioniert.
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

25 Jan '17, 17:53

gast3's gravatar image

gast3
(ausgesetzt)

Statt mit `\let` und Umschaufeln der Definition in eine interne Anweisung zu hantieren, empfehle ich die Verwendung des Paket [`xpatch`](http://www.ctan.org/pkg/xpatch) zur Erweiterung der Definition von `LinearSystems` und `LinearSystems*`: \documentclass{article} \usepackage{amsmath} \usepackage{environ} \makeatletter \newcommand{\LinearSystems@SetupLets}{% \let\col=&% \let\+=+% \let\-=-% \let\===% } \newcommand{\LinearSystems@SetupCatcodes}{% \catcode`\&=\active \catcode`\+=\active \catcode`\-=\active \catcode`\==\active } \newcommand{\LinearSystems@Setup}{} \begingroup \LinearSystems@SetupCatcodes \gdef\LinearSystems@Setup{% \LinearSystems@SetupLets \LinearSystems@SetupCatcodes \newcommand&[1][0pt]{\col\hspace{##1}\col}% \def+{\col\+{}{}\col}% \def-{\col\-{}{}\col}% \def={\col\={}{}\col}% } \endgroup \NewEnviron{LinearSystems}[1]{\begin{alignat}{#1}\BODY\end{alignat}} \NewEnviron{LinearSystems*}[1]{\begin{alignat*}{#1}\BODY\end{alignat*}} \usepackage{xpatch} \xpretocmd{\LinearSystems}{\LinearSystems@Setup}{}{} \expandafter\xpretocmd\csname LinearSystems*\endcsname{\LinearSystems@Setup}{}{} \makeatother \begin{document} \begin{LinearSystems}{3} 4x_1 + x_2 = 1\\ \-x_1 + x_2 = \-2 \end{LinearSystems} \begin{LinearSystems*}{3} 4x_1 + x_2 = 1\\ \-x_1 + x_2 = \-2 \end{LinearSystems*} \end{document} Das ist nicht nur einfacher, sondern auch sicherer. Wer will kann im letzten Argument von `\xpretocmd` noch eine Fehlerbehandlung für den Fall einfügen, dass das Patchen aus irgendwelchen Gründen nicht funktioniert.