Anzeige:
Ergebnis 1 bis 13 von 13

Thema: numerierte Formel in Tabelle?

  1. #1
    Registrierter Benutzer
    Registriert seit
    05.08.2011
    Beiträge
    22

    numerierte Formel in Tabelle?

    Hallo,
    ich habe folgendes Problem: Ich möchte ein paar chemische Formeln so anordnen, wie es das folgende Minimalbeispiel zeigt.

    Code:
    \documentclass[11pt,a4paper]{scrreprt} 
    \usepackage{amsmath, amssymb, tabularx}
    \begin{document}
    
    \begin{tabular}{lrcl}
    Anode: & $\frac{1}{2}O_{2}+2e^{-}$ & $\longrightarrow$ & $O^{2-}$ \\
    Kathode: & $H_{2}+O^{2-}$ & $\longrightarrow$ & $H_{2}O+2e^{-}$ \\
    Gesamtreaktion: & $H_{2}+\frac{1}{2}O_{2}$ & $\longrightarrow$ & $H_{2}O$ \\
    \end{tabular}
    
    \end{document}
    Mein Problem ist nun noch die Nummerierung der Formeln. Dies gelingt mir einfach nicht, da man \begin{equation} nicht in der Tabelle einsetzen kann.

    \begin{eqnarray} scheidet zur Verwendung leider aus, da es alles an der mittleren Spalte zentriert, wodurch es für meinen Zweck mehr als komisch aussieht.

    Mit dem \quad-Befehl in der Equation-Umgebung geht leider auch nicht, da ich damit die einzelnen Zeilen nicht gerade untereinander bekomme.

    Würde mich sehr über eine Idee zur Lösung dieses Problems freuen.

  2. #2
    Registrierter Benutzer
    Registriert seit
    17.02.2010
    Beiträge
    685
    Aus der Hüfte geschossen (ohne es getestet zu haben, trotz MB), könntest
    Du es mit der alignat-Umgebung versuchen. Das sollte das Gewünschte liefern.


    Ergänzung: Naja, so ganz passt es nicht (die linke Spalte müsste "nur" noch
    linksbündig ausgerichtet werden):

    Code:
    \documentclass[fleqn,11pt,a4paper]{scrreprt}
    \usepackage{amsmath, amssymb, tabularx}
    \begin{document}
    
    \begin{tabular}{lrcl}
    Anode: & $\frac{1}{2}O_{2}+2e^{-}$ & $\longrightarrow$ & $O^{2-}$ \\
    Kathode: & $H_{2}+O^{2-}$ & $\longrightarrow$ & $H_{2}O+2e^{-}$ \\
    Gesamtreaktion: & $H_{2}+\frac{1}{2}O_{2}$ & $\longrightarrow$ & $H_{2}O$ \\
    \end{tabular}
    
    \begin{alignat}{3}
    \text{Anode:} & \frac{1}{2}O_{2}+2e^{-} & \longrightarrow & O^{2-} \\
    \text{Kathode:} & H_{2}+O^{2-} & \longrightarrow & H_{2}O+2e^{-} \\
    \text{Gesamtreaktion:} & H_{2}+\frac{1}{2}O_{2} & \longrightarrow & H_{2}O
    \end{alignat}
    
    \end{document}
    Und noch ein kleiner Literaturtip: mathmode.pdf von Herbert Voß, vielleicht findest Du dort etwas Zielführendes.
    Geändert von LuPi (12-08-2011 um 07:15 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    05.08.2011
    Beiträge
    22
    danke für deine Mühen, doch genau das mit dem linksbündig ist das Problem, denn sonst kann man mit eqnarray das gleiche wie mit alignat erzeugen.

    Hat jemand eine idee wie man die linke Spalte am linken Rand ausgerichtet bekommt?

  4. #4
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Code:
    \documentclass[11pt,a4paper]{scrreprt} 
    \usepackage{amsmath, amssymb, tabularx}
    \usepackage{showframe,lipsum}
    \usepackage{hyperref}
    \newcommand{\tagarray}{%
    \refstepcounter{equation}%
    (\theequation)%
    }
    
    \begin{document}
    \begin{equation}
    1+1=2\label{1}
    \end{equation}
    
    \noindent\begin{tabularx}{\linewidth}{@{}lrcl>{\raggedleft\arraybackslash}X@{}}
    Anode: & $\frac{1}{2}O_{2}+2e^{-}$ & $\longrightarrow$ & $O^{2-}$ & \tagarray\label{2}\\
    Kathode: & $H_{2}+O^{2-}$ & $\longrightarrow$ & $H_{2}O+2e^{-}$ &\tagarray\label{3}\\
    Gesamtreaktion: & $H_{2}+\frac{1}{2}O_{2}$ & $\longrightarrow$ & $H_{2}O$ &\tagarray\label{4}
    \end{tabularx}
    
    \begin{equation}
    1+1=2\label{5}
    \end{equation}
    \lipsum[1]
    \ref{1}\qquad\ref{2}\qquad\ref{3}\qquad\ref{4}\qquad\ref{5}
    \end{document}
    Es sollte bald mit dem Paket breqn und der bereitgestellten Umgebung darray klappen.

    Marco

  5. #5
    Registrierter Benutzer
    Registriert seit
    05.08.2011
    Beiträge
    22
    Vielen, vielen Dank an Mechanicus für den Code, er funktioniert super und sieht genau so aus wie ich es mir vorgestellt habe.

    Nur etwas Kleines stört mich noch: Die Gleichungsnummern in der Tabelle sind leicht nach unten gerutscht, also nicht mehr auf einer Zeile mit der Gleichung. Kann man die irgendwie das Stück wieder hochrücken? Ich habe aber auch keine Idee warum die da überhaupt so leicht versetzt sind.

  6. #6
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,
    Nutze den Code
    Code:
    \newcommand{\tagarray}{%
    \mbox{}\refstepcounter{equation}%
    $(\theequation)$%
    }
    Warum das aber abrutscht ist mir auch gerade unklar?

    Marco
    Geändert von mechanicus (12-08-2011 um 18:05 Uhr)

  7. #7
    Registrierter Benutzer
    Registriert seit
    05.08.2011
    Beiträge
    22
    super, es funktioniert 1A!
    Danke für deine schnelle Hilfe

  8. #8
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    falls dennoch jemand weiß, warum es im obigen Beispiel abrutscht, wäre ich dankbar für eine Erklärung.

    Marco

  9. #9
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.859
    Moin Marco,
    afaics liegt es daran, was hyperref aus \refstepcounter macht. Zum Vergleich:
    Code:
    \documentclass{minimal}
    \usepackage{hyperref}
    \newcommand{\tagarray}{%
    \refstepcounter{equation}%
    (\theequation)%
    }
    \begin{document}
    \begin{tabular}{@{}rp{2cm}@{}}
    a & \tagarray\\
    b & \tagarray\\
    \end{tabular}
    \end{document}
    (weitere) Mögliche Abhilfen bezogen auf Dein eigenes Beispiel mit tabularx:
    • hyperref weglassen,
    • die öffnende Klammer in der \tagarray-Definition vor \refstepcounter ziehen (spart die \mbox),
    • statt tabularx tabular* mit r- statt X-Spalte (und entsprechendem @{\extracolsep{\fill}} davor),
    • tabularx dazu überreden, statt p- eine m-Spalte zu nehmen
      Code:
      \renewcommand\tabularxcolumn[1]{m{#1}}

    auch eine Nachfrage beim Paketautor dürfte nicht schaden.

    @Gulaschkanone: Du solltest Dir vllt auch Pakete wie mhchem ansehen, afair werden chemische Symbole generell aufrecht gesetzt.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  10. #10
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von rais Beitrag anzeigen
    Moin Marco,
    afaics liegt es daran, was hyperref aus \refstepcounter macht.
    stimmt. Habe mal refstepcounter abegeändert:
    Code:
    \makeatletter
    \def\refstepcounter#1{%
    \ifvmode\else\leavevmode\fi%ergaenzt
      \ifHy@pdfstring
      \else
        \H@refstepcounter{#1}%
        \edef\This@name{#1}%
        \ifx\This@name\name@of@slide
        \else
          \if@skiphyperref
          \else
            \if@hyper@item
              \stepcounter{Item}%
              \hyper@refstepcounter{Item}%
              \@hyper@itemfalse
            \else
              \hyper@refstepcounter{#1}%
            \fi
          \fi
        \fi
      \fi
    }
    \makeatother
    Dann funktioniert es


    Gruß
    Marco
    Geändert von mechanicus (14-08-2011 um 13:03 Uhr)

  11. #11
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von mechanicus Beitrag anzeigen
    Dann funktioniert es
    Kommentar von Heiko (Maintainer von hyperref) dazu in dctt [1]:
    Diese Zeile sollte auf *keinen* Fall in \refstepcounter stehen,
    da dass einen Mode-Wechsel verursacht. Wenn ein Mode-Wechsel
    nötig ist, sollte er außerhalb von \refstepcounter erfolgen.
    [1] https://groups.google.com/group/de.c...ab122fd449bfd2

  12. #12
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Das wollte ich gerade schreiben

    Gruß
    Marco

  13. #13
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Zitat Zitat von rais Beitrag anzeigen
    afair werden chemische Symbole generell aufrecht gesetzt.
    Das ist richtig. IUPAC (Green Book 3. Auflage S. 49) empfielt:
    The symbols for the chemical elements are (in most cases) derived from their Latin names and [...] should always be printed in Roman (upright) type.
    Ich würde daher folgendes empfehlen:

    Code:
    \documentclass[11pt,a4paper]{scrreprt} 
    \usepackage{tabularx}
    \usepackage{showframe}
    \usepackage{chemmacros}
    \usepackage{hyperref}
    \newcommand{\tagarray}{%
      \leavevmode\refstepcounter{equation}%
      (\theequation)}
    
    \begin{document}
    
    \noindent\begingroup% damit die Änderungen an chemformula lokal bleiben
    \chemsetup[chemformula]{compound-sep=0pt}
    \begin{tabularx}{\linewidth}{@{}lrcl>{\raggedleft\arraybackslash}X@{}}
     Anode:          & \ch{1/2 O2 + 2 e- & -> & O^2-}       & \tagarray\label{1}\\
     Kathode:        & \ch{H2 + O^2-     & -> & H2O + 2 e-} & \tagarray\label{2}\\
     Gesamtreaktion: & \ch{H2 + 1/2 O2   & -> & H2O}        & \tagarray\label{3}
    \end{tabularx}
    \endgroup
    
    \end{document}
    Gruß
    Clemens

Stichworte

Lesezeichen

Berechtigungen

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