Ich würde gerne ausgehend von diesem Beispiel Öffne in Overleaf
\documentclass{minimal} \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*}} \let\LinearSystems@OriginalBegin\LinearSystems \def\LinearSystems{\LinearSystems@Setup\LinearSystems@OriginalBegin} \makeatother \begin{document} \begin{LinearSystems}{3} 4x_1 + x_2 = 1\\ \-x_1 + x_2 = \-2 \end{LinearSystems} \end{document} zwei Varianten der Umgebung Öffne in Overleaf
\NewEnviron{LinearSystems}[1]{\begin{alignat}{#1}\BODY\end{alignat}} \NewEnviron{LinearSystems*}[1]{\begin{alignat*}{#1}\BODY\end{alignat*}} Wie kann ich das umsetzen? |
Statt mit Öffne in Overleaf
\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*}} \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 beantwortet 25 Jan '17, 17:53 gast3 Das gefällt mir sehr gut, danke!
(25 Jan '17, 20:15)
tom75
Wieso nicht einfach
(26 Jan '17, 17:24)
cgnieder
@Clemens: Hast du es ausprobiert? Aufgrund der Arbeitsweise von
(26 Jan '17, 18:40)
gast3
|
Das geht für die Sternversion prinzipiell genauso wie für die normale Version: Öffne in Overleaf
\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}} \let\LinearSystems@OriginalBegin\LinearSystems \def\LinearSystems{\LinearSystems@Setup\LinearSystems@OriginalBegin} \NewEnviron{LinearSystems*}[1]{\begin{alignat*}{#1}\BODY\end{alignat*}} \expandafter\let\expandafter\sLinearSystems@OriginalBegin\csname LinearSystems*\endcsname \@namedef{LinearSystems*}{\LinearSystems@Setup\sLinearSystems@OriginalBegin} \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} Da der Stern in Es sei noch darauf hingewiesen, dass Mit einem Minimum an l3-Syntax geht das übrigens deutlich einfacher: Öffne in Overleaf
\NewEnviron{LinearSystems}[1]{\begin{alignat}{#1}\BODY\end{alignat}} \NewEnviron{LinearSystems*}[1]{\begin{alignat*}{#1}\BODY\end{alignat*}} \usepackage{expl3} \ExplSyntaxOn \cs_new_eq:NN \LinearSystems@OriginalBegin \LinearSystems \cs_new_eq:cc {sLinearSystems@OriginalBegin} {LinearSystems*} \ExplSyntaxOff \def\LinearSystems{\LinearSystems@Setup\LinearSystems@OriginalBegin} \@namedef{LinearSystems*}{\LinearSystems@Setup\sLinearSystems@OriginalBegin} Wenn man an dem Punkt ist, könnte man natürlich auch gleich interne l3-Namen für die beiden beantwortet 25 Jan '17, 17:04 saputello Vielen Dank!
(25 Jan '17, 17:27)
tom75
|