Seite 1 von 1

Referenzieren von Formeln

Verfasst: Do 3. Jul 2014, 10:54
von radfahrer
Hallo liebe Forenteilnehmer,

ich habe Probleme mit dem Referenzieren von Formeln und bitte um Hilfe.
Die Formelnummerierung und das Auslesen des caption funktionieren nicht.
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern,amsmath,amsthm,amssymb,hyperref,float}


\newfloat{formel}{H}{for}
\floatname{formel}{Formel}
\newcommand{\formula}[3]{ 
  \begin{formel} 
  \begin{equation} 
  \label{#2}#3 \notag %\nonumber 
  \end{equation} 
  \caption{#1} 
  \end{formel}}


\begin{document}

\section{Test}

\subsection{Referenz}
Hier soll auf auf die Formel Nr.: \ref{eq:binom} \glqq \nameref{eq:binom}\grqq\ auf Seite \pageref{eq:binom} und auf die Formel Nr.: \ref{eq:binom1} \glqq \nameref{eq:binom1}\grqq\ auf Seite \pageref{eq:binom1} verwiesen werden

\newpage

\subsection{Hier sind die Formeln}
\formula{Binomischer Lehrsatz}{eq:binom}{(x + y)^n=\sum_{k=0}^{n}{n\choose k}x^{n-k}\cdot y^k,n\in\mathbb N_0}
\formula{Erste binomische Formel}{eq:binom1}{(a+b)^2=a^2+2ab+b^2} 

\subsection{Problematik}
Aber weder zählt die Formelnummerierung hoch (sie bleibt konsequent bei 1 stehen), noch wird das caption der Formel ausgelesen (Es wird der Name der Überschrift verwendet)
 
\end{document}

Verfasst: Do 3. Jul 2014, 12:18
von esdd
Setze \label hinter \caption
\documentclass{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern,amsmath,amsthm,amssymb,hyperref,float} 


\newfloat{formel}{H}{for} 
\floatname{formel}{Formel} 
\newcommand{\formula}[3]{ 
   \begin{formel} 
   \begin{equation} 
   #3 \notag %\nonumber  
   \end{equation} 
   \caption{#1}\label{#2} 
   \end{formel}} 


\begin{document} 

\section{Test} 

\subsection{Referenz} 
 Hier soll auf auf die Formel Nr.: \ref{eq:binom} \glqq \nameref{eq:binom}\grqq\ auf Seite \pageref{eq:binom} und auf die Formel Nr.: \ref{eq:binom1} \glqq \nameref{eq:binom1}\grqq\ auf Seite \pageref{eq:binom1} verwiesen werden 

\newpage 

\subsection{Hier sind die Formeln} 
\formula{Binomischer Lehrsatz}{eq:binom}{(x + y)^n=\sum_{k=0}^{n}\binom{n}{k}x^{n-k}\cdot y^k,n\in\mathbb N_0} 
\formula{Erste binomische Formel}{eq:binom1}{(a+b)^2=a^2+2ab+b^2} 

\subsection{Problematik} 
 Aber weder zählt die Formelnummerierung hoch (sie bleibt konsequent bei 1 stehen), noch wird das caption der Formel ausgelesen (Es wird der Name der Überschrift verwendet) 
   
\end{document}
Siehe auch Warum muss in einer table oder figure Umgebung \label nach \caption gesetzt werden?

Gruß
Elke

PS Ändere {n\choose k} zu \binom{n}{k}

Verfasst: Do 3. Jul 2014, 12:53
von esdd
Du kannst auch auf das Paket float verzichten und dir mit KOMA-Script Mitteln eine nicht gleitende formel- Umgebung definieren:
\documentclass{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern,amsmath,amsthm,amssymb,hyperref}
\DeclareNewTOC[
  nonfloat,
  type=formel,
  name=Formel
]{for}

\newcommand{\formula}[3]{
  \begin{formel-}
    \[#3\]
    \caption{#1}\label{#2}
  \end{formel-}
} 

\begin{document} 

\section{Test} 

\subsection{Referenz} 
 Hier soll auf auf die Formel Nr.: \ref{eq:binom} "`\nameref{eq:binom}"' auf Seite \pageref{eq:binom} und auf die Formel Nr.: \ref{eq:binom1} "`\nameref{eq:binom1}"' auf Seite \pageref{eq:binom1} verwiesen werden 

\clearpage

\subsection{Hier sind die Formeln} 
\formula{Binomischer Lehrsatz}{eq:binom}{(x + y)^n=\sum_{k=0}^{n}\binom{n}{k}x^{n-k}\cdot y^k,n\in\mathbb N_0} 
\formula{Erste binomische Formel}{eq:binom1}{(a+b)^2=a^2+2ab+b^2} 

\subsection{Problematik} 
 Aber weder zählt die Formelnummerierung hoch (sie bleibt konsequent bei 1 stehen), noch wird das caption der Formel ausgelesen (Es wird der Name der Überschrift verwendet) 
\end{document} 
Gruß
Elke

Verfasst: Do 3. Jul 2014, 13:01
von radfahrer
Hallo Elke,

das ist echt super. Vorallem der Verzicht auf das Float gefällt mir sehr.

Jetzt läuft es wie es sollte.
Danke schön! :)