mathtools: Umdefinieren von DeclarePairedDelimiter-Befehlen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: mathtools: Umdefinieren von DeclarePairedDelimiter-Befehlen

von guy.brush™ » So 12. Mai 2013, 15:33

Hallo,

super, vielen Dank dir! Da haette ich auch fast von alleine drauf kommen koennen :).

Wer noch einen Alternativvorschlag hat oder wer (beliebte) Pakete oder Funktionen kennt, die mit einem Befehlsnamen "\set" kollidieren wuerden, kann dies gerne noch posten, Interesse meinerseits ist immer da ;). Ich stelle das Thema aber schon einmal auf "beantwortet", da die Loesung von Johannes_B funktioniert.

Den Link zu \edef vs. \let schaue ich mir auch noch einmal an, wobei ich in der genauen Mechanik von \def, \edef, \let etc. noch gar nicht viel darueber weiss.

von Johannes_B » Fr 10. Mai 2013, 07:12

So ganz spontan würd ich es so machen:
\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{mathtools}
\usepackage{amsmath}


\DeclarePairedDelimiterX{\set}[2]{\lbrace}{\rbrace}%      % Menge
  {#1 \;\delimsize\vert\; #2}


%Makroname ersetzt
\DeclarePairedDelimiterX{\setx}[2]{\lbrace}{\rbrace}%      % Menge
  {#1 : #2}

\let\set\setx

\begin{document}

\[
  Y
    := \set*{x \in X}{\sum_{i = 0}^{n} x \cdot f(i) = 42}
\]

\end{document} 

Hier findest du noch andere Möglichkeiten bzw. Unterschiede und Gemeinsamkeiten. Ich persönlich kenne mich damit nicht aus, werde mir das jetzt aber mal entspannt zu Gemüte führen.

mathtools: Umdefinieren von DeclarePairedDelimiter-Befehlen

von guy.brush™ » Fr 10. Mai 2013, 01:45

Hallo,

mein Problem ist folgendes: Ich habe mittlerweile in Header Dateien meine Standarddefinitionen fuer fast alle moeglichen Dinge (aus der mathematischen Welt) abgelegt, unter anderem eine fuer Mengen. Jetzt moechte ich von dieser Standarddefinition abweichen. Fuer die Definition von Mengen habe ich \DeclarePairedDelimiterX aus dem mathtools Paket verwendet und scheinbar gibt es hier kein "RedeclarePairedDelimiter".

Hier ein kleines Beispiel:
\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{mathtools}
\usepackage{amsmath}

% Das steht irgendwo in einer Headerdatei
\DeclarePairedDelimiterX{\set}[2]{\lbrace}{\rbrace}%		% Menge
  {#1 \;\delimsize\vert\; #2}


% Änderung der Definition in der jeweiligen Datei bzw. in dem jeweiligen Projekt
\DeclarePairedDelimiterX{\set}[2]{\lbrace}{\rbrace}%		% Menge
  {#1 : #2}

\begin{document}

\[
  Y
    := \set*{x \in X}{\sum_{i = 0}^{n} x \cdot f(i) = 42}
\]

\end{document}
Wenn ihr das durchlaufen lasst, wird es eine Fehlermeldung geben, da "\set" schon zuvor definiert worden ist. Gibt es jetzt eine angenehme Methode, fuer ein einzelnes Projekt auch derartige Befehle umzudefinieren? Ansonsten finde ich \DeclarePairedDelimiter und \DeclarePairedDelimiterX eine echt tolle Sache.


Nebenbei: Ist "\set" ein guter Name fuer den Befehl? Er war scheinbar nicht belegt, aber es klingt nach einem Standardwort im Englischen und ich war verwundert, dass keines meiner vielen Pakete es bisher definiert hat.


Viele Gruesse

guy.brush

Nach oben