mathtools: Umdefinieren von DeclarePairedDelimiter-Befehlen

Formelsatz für Mathematik, Naturwissenschaften und Technik


guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

mathtools: Umdefinieren von DeclarePairedDelimiter-Befehlen

Beitrag von guy.brush™ »

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
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

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.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

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.
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Antworten