Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei mehrseitigen Algorithmen
Hi !!!
Ich muss in meinem Dokument ein Algorithmus reinschreiben, der über zwei Seiten geht.
Doch nachdem ich dies getan habe, so wird die Seite bis zum Ende angezeigt und der Rest des Algorithmus wird einfach abgeschnitten, als wenn da nichts stünde :(
\begin{algorithm}
\caption{\label{was auch immer} Algo Name}
\begin{algorithmic}
\REQUIRE{Eingabe}
\ENSURE{Ausgabe}
\STATE{\hrulefill}
\end{algorithmic}
\begin{algorithmic}
\STATE{\hspace{0cm}
\begin{center}
\begin{flushleft}
.... Hier der Algo........
.....etwas lang........
\end{flushleft}
\end{center}}
\STATE{\hspace{0cm}}
\end{algorithmic}
\label{was auch immer}
\end{algorithm}
Weiss jemand, wie ich einen Algorithmus auf zwei Seiten schreiben kann?
Ich weiss zwar nicht genau, was deinen Anforderungen sind, könnte mir jedoch vorstellen, dass das Paket listings auch funktionieren könnte. Ansonsten halt den Algorithmus auf zwei Umgebungen aufteilen...
MfG Bischi
RedCloud
27-06-2006, 08:01
Hi !!!
Ich muss in meinem Dokument ein Algorithmus reinschreiben, der über zwei Seiten geht.
Doch nachdem ich dies getan habe, so wird die Seite bis zum Ende angezeigt und der Rest des Algorithmus wird einfach abgeschnitten, als wenn da nichts stünde :(
\begin{algorithm}
\caption{\label{was auch immer} Algo Name}
-- nimm keine Fließumgebung (algorithm), die kann nur auf einer Seite erscheinen.
-- Schreibe die caption selbst (Paket caption) \captionof{algorithm}{AlgoName}\label{foo}
-- Weiter normal mit \begin{algorithmic}
rc
Wunderbar. Vielen Dank für Eure Hilfe. :)
Hi!
Ich hab das jetzt auch so gemacht wie vorgeschlagen und das haut auch super hin, hab aber jetzt ein Folgeproblem. Nach der Verwendung von sizeof{algorithm} sind die Beschriftungen aller Bilder nicht mehr zentriert sonder links und 'Figure' ist fett geschrieben. Wie kann ich das wieder in die Mitte bringen?
Danke
Luzi
sommerfee
18-07-2007, 17:30
Ich hab das jetzt auch so gemacht wie vorgeschlagen und das haut auch super hin, hab aber jetzt ein Folgeproblem. Nach der Verwendung von sizeof{algorithm} sind die Beschriftungen aller Bilder nicht mehr zentriert sonder links und 'Figure' ist fett geschrieben. Wie kann ich das wieder in die Mitte bringen?
Ein Minimalbeispiel wäre hilfreich.
Ansonsten hat mein Blick in meine Kristallkugel ergeben: Du verwendest vermutlich \captionof nicht immerhalb einer Umgebung; \captionof muß immer in eine minipage, parbox oder was-auch-immer gesteckt werden, zur Not reicht auch ein \begingroup ... \endgroup (bzw. einfache geschweifte Klammern). Ansonsten kann es zu den merkwürdigsten Nebenwirkungen kommen.
(Die nächste Version vom caption-Paket wird deswegen auch in diesem Fall eine Fehlermeldung ausgeben, zumindest wenn e-TeX als TeX verwendet wird.)
Liebe Grüße,
Axel
Hatte genau dasselbe Problem (mehrseitigen Code) und war froh, hier eine Antwort zu finden.
Klappt auch gut und der vollständige Code wird nun richtig dargestellt. Die Caption jedoch hat nun einen anderen Stil. Wie kriege ich die wieder so hin, wie es das algorithm-Package standardmässig macht (mit zwei horizontalen Linien um die Caption am Anfang und einer am Schluss, ruled-style)?
Herzlichen Dank für die Hilfe
sommerfee
15-01-2008, 09:41
Die Caption jedoch hat nun einen anderen Stil. Wie kriege ich die wieder so hin, wie es das algorithm-Package standardmässig macht (mit zwei horizontalen Linien um die Caption am Anfang und einer am Schluss, ruled-style)?
Die Linien mußt du in diesem Falle wohl mit \hrule bzw. \rule selber zeichnen. Den Stil der Beschriftung kannst du mit \captionsetup{style=ruled,type=algorithm,skip=0pt} umschalten, wenn du das caption-Paket lädst.
Andere Idee: Auf die internen Makros des float-Paketes zurückgreifen, z.B.:
\documentclass{article}
\usepackage{algorithm,algorithmic}
\usepackage{caption}[2007/09/01] % v3.1
\begin{document}
% normal
\begin{algorithm}[H]
\caption{Calculate $y = x^n$}
\label{alg1}
\begin{algorithmic}
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
\STATE $y \Leftarrow 1$
\IF{$n < 0$}
\STATE $X \Leftarrow 1 / x$
\STATE $N \Leftarrow -n$
\ELSE
\STATE $X \Leftarrow x$
\STATE $N \Leftarrow n$
\ENDIF
\WHILE{$N \neq 0$}
\IF{$N$ is even}
\STATE $X \Leftarrow X \times X$
\STATE $N \Leftarrow N / 2$
\ELSE[$N$ is odd]
\STATE $y \Leftarrow y \times X$
\STATE $N \Leftarrow N - 1$
\ENDIF
\ENDWHILE
\end{algorithmic}
\end{algorithm}
% selbstgebaut
\begin{center}
\captionsetup{style=ruled,type=algorithm,skip=0pt}
\makeatletter
\fst@algorithm\@fs@pre
\makeatother
\caption{Calculate $y = x^n$}%
\label{alg2}
\makeatletter
\@fs@mid
\makeatother
\begin{algorithmic}
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
\STATE $y \Leftarrow 1$
\IF{$n < 0$}
\STATE $X \Leftarrow 1 / x$
\STATE $N \Leftarrow -n$
\ELSE
\STATE $X \Leftarrow x$
\STATE $N \Leftarrow n$
\ENDIF
\WHILE{$N \neq 0$}
\IF{$N$ is even}
\STATE $X \Leftarrow X \times X$
\STATE $N \Leftarrow N / 2$
\ELSE[$N$ is odd]
\STATE $y \Leftarrow y \times X$
\STATE $N \Leftarrow N - 1$
\ENDIF
\ENDWHILE
\end{algorithmic}
\makeatletter
\@fs@post
\makeatother
\end{center}
\end{document}
Wie man sieht stimmen die Abstände unter/über den Linien nicht perfekt, hier müsste man noch Finetuning betreiben.
Gruß,
Axel
Wow, super, herzlichen Dank für die blitzschnelle Antwort, Axel!
Die selbstgebastelte Version sieht auf den ersten Blick genau so aus, wie ich es gerne hätte. Werde schauen, ob Finetuning noch nötig ist, bin damit schon mal sehr zufrieden. Danke!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.