PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Counter für Unterformeln anpassen



MickroC
12-02-2013, 12:13
Hallo zusammen, ich habe folgendes Problem:
Ich möchte mehrere Formeln + Zeichenerklärung zusammenfassen und in einer float-Umgebung automatisch platzieren lassen. Für die gesamte Umgebung soll eine Nummerierung erfolgen, die die Kapitelnummer und den aktuellen float-Zähler beinhaltet (chapter.floatnummer). Die Gleichungen innerhalb sollen dann mit a, b, c, usw. nummeriert werden (z.B. 5.2a), ähnlich wie bei einem subcaption, nur ohne Text und natürlich soll dieser Zähler für jede float-Umgebung neu anfangen.

Ich habe ein Minimalbeispiel angehängt. Hat jemand eine Idee?

klops
12-02-2013, 13:28
Dafür braucht man kein flloat. Neue Gleitumgebungen kann man direkt mit Hilfe von KOMA-Script anlegen. Für die Spezialanforderung mit der geänderten Nummerierung der Gleichungen muss man nur ein paar zusätzliche Anweisungen im begin- und end-Teil der neuen Gleitumgebungen ausführen lassen:
\documentclass[12pt]{scrreprt}% a4paper und oneside sind default
\usepackage[utf8]{inputenc}
% float entfernt
\usepackage{amsmath}

\newcommand*{\mystoredequation}{}% Zur Sicherheit
% Fix an error at earlier versions of tocbasic (by KOMA):
\makeatletter
\@ifpackagelater{tocbasic}{2012/04/05}{}{%
\define@key{tocbasic}{atbegin}{%
\def\tb@nt@atbegin{#1}%
}
\define@key{tocbasic}{atend}{%
\def\tb@nt@atend{#1}%
}
}
\makeatother
% End of fix
\DeclareNewTOC[%
type=myequation,
name=Formel,
float,
% counterwithin=chapter,% falls abhängig von Kapiteln gezählt werden soll
floatpos=htb,
listname={Verzeichnis der Formeln},
atbegin={%
\edef\mystoredequation{\the\value{equation}}%
\setcounter{equation}{0}%
\renewcommand*{\theequation}{%
% Hier müssen wir ein wenig tricksen, weil myequation erst mit
% \caption hochgezählt wird, wir aber bereits hier die geänderte Nummer
% benötigen.
% \thechapter.% falls abhängig von Kapiteln nummeriert werden soll
\the\numexpr\value{myequation}+1\relax\alph{equati on}%
}%
},
atend={%
\setcounter{equation}{\mystoredequation}%
}
]{meq}

\begin{document}

\listofmyequations

\chapter{test}

\begin{myequation}[htb]
\begin{minipage}{0.9\linewidth}
\begin{align}
n_b = \left(2 \cdot z_a - 1\right) \cdot z_p + 1
\label{erstens}
\end{align}
\begin{align}
4 = 2 \cdot 2
\label{zweitens}
\end{align}
\begin{tabular}{ll}
$n_b$: & Anzahl möglicher Kombinationen \\
$z_a$: & Anzahl möglicher Zustände pro Auge \\
$z_p$: & Anzahl möglicher Pupillenzustände \\
\end{tabular}
\end{minipage}
\caption{Anzahl möglicher Blickkombinationen}
\label{eq:augenkombinationsanzahl}
\end{myequation}

\ref{eq:augenkombinationsanzahl} = erste Gesamtumgebung

\ref{erstens} = erste Gleichung

\ref{zweitens} = zweite Gleichung

\begin{myequation}[htb]
\begin{minipage}{0.9\linewidth}
\begin{align}
5 = 4 + n
\label{drittens}
\end{align}
\begin{align}
m = 5
\label{viertens}
\end{align}
\begin{tabular}{ll}
$n$: & Variable \\
$m$: & noch eine \\
\end{tabular}
\end{minipage}
\caption{Gleichung mit falscher Unternummerierung}
\label{eq:zweite}
\end{myequation}

\ref{eq:zweite} = zweite Gesamtumgebung (Verwechslungsgefahr!)

\ref{drittens} = dritte Gleichung

\ref{viertens} = vierte Gleichung

\end{document}
Alles weitere sollte der KOMA-Script-Anleitung im Kapitel über tocbasic zu entnehmen sein.

MickroC
12-02-2013, 14:47
@klops: danke für die schnelle Antwort! Leider kann ich deinen Code nicht übersetzen, es scheitert schon an \DeclareNewTOC. Ich muss dazu sagen, dass ich die texlive Version von Ubuntu verwende, die angeblich etwas hinterherhinkt. Ich bin mir nicht sicher wo ich die KOMA-Skript Version sehe, in der log-Datei ist die höchste Versionsnummer aber die 3.04. Ich vermute, dass die Version veraltet ist :(

Ich bin allerdings so gut wie fertig mit meiner Arbeit (>100 Seiten) und möchte nur ungern mein LaTeX vor der Abgabe updaten. Gibt es eine andere Möglichkeit, bzw. muss ich bei der Übersetzung deines Beispiels irgendwas beachten?

klops
12-02-2013, 15:33
Laut den Release-Infos zu KOMA-Script (http://www.komascript.de/release3.09) brauchst Du min. KOMA-Script 3.09. Wenn ich das richtig sehe, ist die bereits mehr als zwei Jahre alt und Version 3.04 ist sogar schon mehr als 3½ Jahre alt. Ein Update von KOMA-Script wäre also vermutlich keine schlechte Idee. Theoretisch kann man aber auch nur tocbasic updaten. Dazu muss man aus dem KOMA-Script-Repository (http://developer.berlios.de/svn/?group_id=4307) min. die Dateien tocbasic.dtx, scrbeta.dtx und scrlogo.dtx holen. Diese in ein gemeinsames Verzeichnis legen, dort
tex tocbasic.dtx aufrufen und erhält dann u. a. tocbasic.sty. Die kopiert man in sein Dokumentverzeichnis und schon sollte diese tocbasic.sty statt der total veralteten verwendet werden. Sollte das zu irgendwelchen Problemen führen, kann man tocbasic.sty einfach wieder aus dem Dokumentverzeichnis löschen.

Alternativ würde ich vorschlagen, das KOMA-Script von der offiziellen Release (http://developer.berlios.de/project/showfiles.php?group_id=4307&release_id=19089) herunter zu laden, und nach der deutschen Installationsanleitung (https://developer.berlios.de/project/showfiles.php?group_id=4307&release_id=15404) im lokalen oder im privaten TEXMF-Baum zu installieren. Das kann man dann notfalls auch wieder löschen (bzw. sobald man TeXLive insgesamt erneuert).

MickroC
13-02-2013, 07:23
Ich werde es mal auf einem anderen Rechner versuchen, wenns klappt und ich auch mit dem Rest keine Probleme bekomme versuche ich wohl ein Komplettupdate. Danke schonmal, ich schreibe wieder obs klappt oder nicht

MickroC
13-02-2013, 10:54
So, habs getestet, funktioniert einwandfrei! Hab auch gleich mal mein texlive aktualisiert...
Nochmal vielen Dank klops!

Ps.: ne kleine Schönheitskorrektur: Die Nummerierung im Formelverzeichnis sieht etwas merkwürdig aus, der Text überschreibt zum Teil die Nummer... mit


\usepackage{tocstyle}
\usetocstyle{allwithdot}

lässt sich das aber leicht beheben.