Nummerierung von mehreren Formelkategorien

Formelsatz für Mathematik, Naturwissenschaften und Technik


Nilson

Nummerierung von mehreren Formelkategorien

Beitrag von Nilson »

Hallo,

ich habe hierzu leider keine Lösung im Netz gefunden:
Ich würde gerne verschiedene Klassen von Formeln definieren, und diese dann von Anfang an durchzählen lassen. Verschiene Kategorien von Formeln sind z.B. A (für auxiliary) C (für Constant) oder T (für Table).
Es wäre super, wenn die Nummerierung so aussehen würde(Beispiel):

5x+7b (A27)

27 (C12)

f(bla) (T3)

4+14x (A28)

War das einigermassen verständlich?

Vielen Dank schon mal!


Nilson

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Hier einmal nur mit zwei Formelklassen:
\documentclass{article}
\usepackage{amsmath}
\newcounter{auxiliary}
\renewcommand*{\theauxiliary}{A\arabic{auxiliary}}
\makeatletter
\newenvironment{auxiliary}{%
  \let\c@equation\c@auxiliary% Hinweis: \c@foo ist der LaTeX-Zähler foo
  \let\p@equation\p@auxiliary% \label-prefix
  \let\cl@equation\cl@auxiliary% Reset-Liste
  \let\theequation\theauxiliary% Ausgabe
}{}
\newcounter{constant}
\renewcommand*{\theconstant}{C\arabic{constant}}
\newenvironment{constant}{%
  \let\c@equation\c@constant% Hinweis: \c@foo ist der LaTeX-Zähler foo
  \let\p@equation\p@constant% \label-prefix
  \let\cl@equation\cl@constant% Reset-Liste
  \let\theequation\theconstant% Ausgabe
}{}
\makeatother
\begin{document}
\setcounter{auxiliary}{26}
\setcounter{constant}{11}

Siehe \eqref{aux:a} und \eqref{aux:b} oder \eqref{const:a}.
\begin{auxiliary}
  \begin{equation}
    5x+7b
  \end{equation}
\end{auxiliary}
\begin{constant}
  \begin{equation}
    27
  \end{equation}
\end{constant}
\begin{auxiliary}
  \begin{equation}
    4+14x
  \end{equation}
\end{auxiliary}
\end{document}
Die dritte Klasse sollte kein Problem sein.
Zuletzt geändert von KOMA am Di 20. Jul 2010, 20:18, insgesamt 1-mal geändert.

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Hallo,

hier ein Ansatz (etwas hackish, aber könnte durchaus recht robust sein):
\documentclass{minimal}

\usepackage{etoolbox}
\usepackage{amsmath}

\newcommand*{\neweqclass}[1]{\newcounter{eqclass#1}}

\makeatletter
\newenvironment*{eqclass}[1]{%
  \letcs\c@equation{c@eqclass#1}%
  \renewcommand*{\theequation}{#1\arabic{equation}}%
}{}
\makeatother

\neweqclass{A}
\neweqclass{C}
\neweqclass{T}

\begin{document}

\eqref{eq:1}

\begin{eqclass}{A}
  \begin{equation}
    5x+7b
  \end{equation}
\end{eqclass}

\begin{eqclass}{C}
  \begin{equation}
    27
  \end{equation}
\end{eqclass}

\begin{eqclass}{T}
  \begin{equation}
    f(bla)
  \end{equation}
\end{eqclass}

\begin{eqclass}{A}
  \begin{equation}
    \label{eq:1}
    4+14x
  \end{equation}
\end{eqclass}

\end{document}

Nilson

Super! Danke!

Beitrag von Nilson »

Hey Koma, hey phi,

vielen Dank für die schnellen und ausführlichen Antworten. Beide Lösungen funktionieren wunderbar bisher. Ich bin beeindruckt von der Hilfsbereitschaft!
Danke für Eure Mühen nochmal,


Nils

skater
Forum-Guru
Forum-Guru
Beiträge: 356
Registriert: Do 12. Mär 2009, 14:34
Wohnort: Berlin

Re: Super! Danke!

Beitrag von skater »

Nilson hat geschrieben:Beide Lösungen funktionieren wunderbar bisher. Ich bin beeindruckt von der Hilfsbereitschaft!
Ich interpretiere das jetzt mal so, dass die Frage damit beantwortet ist. Deshalb ändere ich den Status auch zu »beantwortet«.

Etwas, was bitte das nächste mal du machen mögest.

Nilson

Beitrag von Nilson »

Ja, Pardon, wusste nicht, dass man das machen muss. Vielen Dank!

Antworten