Anzeige:
Ergebnis 1 bis 4 von 4

Thema: newcommand: Mehr als 9 Parameter?

  1. #1
    gast22
    Gast

    newcommand: Mehr als 9 Parameter?

    Hallo zusammen,

    ich habe eine Frage, die ich auch nach eingehender Suche hier nicht selbst beantworten kann:

    Ich möchte gern neue Befehle generieren (mit \newcommand{\BefehlA}[10]{bla #1 bla #2 bla #3 ...}), innerhalb derer ich aber mehr als 9 Parameter zu übergeben habe. Jetzt habe ich gelesen, dass man höchstens 9 Paramter nutzen kann. Kann man diese Beschränkung irgendwie umgehen? Oder gibt es einen anderen Befehl, der das kann?

    Vielen Dank im Voraus

  2. #2
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534

    Zahl möglicher Makroparameter

    Hallo Ninchen,

    TeX erlaubt für Makros nur 9 Parameter, das gilt auch für \def.
    Ich schätze, das muss man wohl ganz anders lösen. Zur Not mit zusätzlich global deklarierten Makros, die vor Aufruf des Befehls mit Werten belegt werden.

    Viele Grüße,

    Stefan

  3. #3
    gast22
    Gast
    Hallo Stefan,

    vielen Dank für die Antwort. Ja, das hatte ich schon befürchtet Naja, ich überlege mir etwas anderes, dürfte auch nicht allzu viele Schwierigkeiten machen.

    Dann weiß ich jetzt wenigstens Bescheid

    Viele Grüße

  4. #4
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Ninchen Beitrag anzeigen
    Hallo zusammen,

    ich habe eine Frage, die ich auch nach eingehender Suche hier nicht selbst beantworten kann:

    Ich möchte gern neue Befehle generieren (mit \newcommand{\BefehlA}[10]{bla #1 bla #2 bla #3 ...}), innerhalb derer ich aber mehr als 9 Parameter zu übergeben habe. Jetzt habe ich gelesen, dass man höchstens 9 Paramter nutzen kann. Kann man diese Beschränkung irgendwie umgehen? Oder gibt es einen anderen Befehl, der das kann?
    das ist kein Problem, du musst nur die ersten neun zwischenspeichern.

    Code:
    \makeatletter
    \def\Macro#1#2#3#4#5#6#7#8#9{%
      \def\m@eins{#1}%
      \def\m@Zwei{#2}%
    ...
      \Macro@zwei%
    }
    \def\Makro@zwei#1#2#3#4{%  bsp für 13 Parameter
    %  hier kennst du jetzt über \m@eins... die ersten neun und
    %  mit #1 #2 #3 #4 die nächsten 4
    }
    \makeatother
    Herbert

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •