Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Problem mit \newenvironment

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.05.2007
    Beiträge
    24

    Problem mit \newenvironment

    Hallo!

    Ich wollte die 'align' Umgebung in einer neuen Umgebung verwenden, leider funktioniert das nicht so wie ich gedacht hatte.

    Bei diesem Code
    Code:
    \documentclass{article}
    \usepackage{amsmath}
    
    \newenvironment{alignb}{\begin{align}}{\end{align}}
    
    \begin{document}
    
      \begin{alignb}
        F &= d + 5\, \alpha\\
        g &= f +3 \alpha
      \end{alignb}
      
    \end{document}
    bekomme ich folgenden Fehler:
    Code:
    ERROR: LaTeX Error: \begin{align} on input line 9 ended by \end{alignb}.
    
    --- TeX said ---
    
    See the LaTeX manual or LaTeX Companion for explanation.
    Type  H   for immediate help.
     ...                                              
                                                      
    l.12   \end{alignb}
                       
    --- HELP ---
    From the .log file...
    
    Your command was ignored.
    Type  I    to replace it with another command,
    or    to continue without it.
    Das selbe mit 'equation' funktioniert jedoch?!

    Vielleicht kann mich ja einer von euch erleuchten was da schief geht...

    Danke!

    [edit]
    Noch ein Nachtrag:

    Der Fehler tritt auch mit den anderen in amsmath deffinierten Umgebungen auf.
    [/edit]
    Geändert von cgogolin (11-05-2007 um 21:42 Uhr)

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

    folgende Modifikation funktioniert:

    Code:
    \newenvironment{alignb}{\align}{\endalign}
    Siehe amsmath-FAQ bzw. technote.

    Grüße,

    Stefan

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.05.2007
    Beiträge
    24
    Ah, sehr gut, das ist schon mal was!

    Jetzt ist es nur so, dass ich eigentlich nicht 'align' sondern 'align*' verwenden wollte.
    (Ich hatte das nur verschwiegen, um das Beispiel möglichst einfach zu halten.)

    Leider funktioniert
    Code:
    \newenvironment{alignb}{\align*}{\endalign*}
    natürlich nicht.

    Gibt es auch eine Möglichkeit das zu bewerkstelligen?

  4. #4
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534
    Eine Alternative zur Umgebungsdefinition wäre ein Makro dafür, also in der Art:

    Code:
    \newcommand{\alignb}[1]{\begin{align*}#1\end{align*}}
    ...
    \alignb{
        F &= d + 5\, \alpha\\
        g &= f +3 \alpha
    }
    Das Codestück ist dann natürlich nicht mehr als Umgebung wahrnehmbar! Die de-tex-faq rät daher von solcherlei workarounds ab (8.2.6).

    Stefan

  5. #5
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von cgogolin Beitrag anzeigen
    Leider funktioniert
    Code:
    \newenvironment{alignb}{\align*}{\endalign*}
    natürlich nicht.
    Nimm

    Code:
    \newenvironment{alignb}{\csname align*\endcsname}{\csname endalign*\endcsname}
    stattdessen.

    Liebe Grüße,
    Axel

  6. #6
    Registrierter Benutzer
    Registriert seit
    11.05.2007
    Beiträge
    24
    So mach ichs!

    Danke! und wieder was dazu gelernt...

Lesezeichen

Berechtigungen

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