Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Seitenumbruch in Algorithmic?

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.08.2008
    Beiträge
    88

    Seitenumbruch in Algorithmic?

    Hallo liebe Wissende,

    ich benutze das Algorithmic Paket um meinen Pseudocode darzustellen. Das klappt auch alles ganz gut. Jedoch ist in einer Methode der Pseudocode leider mehr als eine Seite lang und die Floatumgebung bricht natürlich nicht. Kann man irgendwie etwas manipulieren oder anders versuchen, um die sonst recht nützliche algorithm Umgebung weiter zu verwenden?
    Ich weiß, dass eine Methode, die im Pseudocode schon eine Seite sprengt eher umzuschreiben wäre, aber das geht aus gewissen Gründen nicht.

    Lieben Gruß,
    Bjoern
    Windows XP SP3, MikTeX 2.7, TexnicCenter RC 1.0, Foxit Reader 3.0

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.08.2008
    Beiträge
    88
    Ich hab mir selbst eine Lösung zusammengebastelt, indem ich einfach anstatt
    Code:
    \begin{algorithm}
    \caption{my algorithm}
    \label{alg:myAlg}
    \begin{algorithmic}[1]
    \STATE my veeeeery long code here
    \end{algorithmic}
    \end{algorithm}
    einfach

    Code:
    \hrule
    \textbf{Algorithm} my algorithm
    \label{alg:myAlg}
    \hrule
    \begin{algorithmic}[1]
    \STATE my veeeeery long code here
    \end{algorithmic}
    \hrule
    verwendet habe. Es sieht zwar nicht so schön aus, da
    a) der Abstand die Schrift in "\textbf{Algorithm} my algorithm" nicht mittig zwischen den 2 hrule platziert ist
    b) der Zähler für die Algorithms nicht beachtet wird
    Aber immerhin etwas.

    Falls jemand für die letzten 2 Problemchen vielleicht eine schmucke Lösung weiß, bitte gerne schreiben.

    LG,
    Bjoern
    Windows XP SP3, MikTeX 2.7, TexnicCenter RC 1.0, Foxit Reader 3.0

  3. #3
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von TeXBjoern Beitrag anzeigen
    \textbf{Algorithm} my algorithm
    Stattdessen könnte man auch \captionof{algorithm}{my algorithm} schreiben, wenn man das caption-Paket geladen hat. Dann stimmt auch die Nummerierung und die Referenzen darauf, d.h. Problem b) wäre damit gelöst.

    a) der Abstand die Schrift in "\textbf{Algorithm} my algorithm" nicht mittig zwischen den 2 hrule platziert ist
    Ich hatte mal eine Lösung gebastelt, die die Originaldefinitionen zum Zeichnen der Linien wiederverwendet, so daß das Ergebnis identisch aussieht. Nur leider finde ich es auf die Schnelle nicht mehr wieder, ich weiß auch gar nicht, ob das hier im Forum war (ich meine aber schon) oder woanders... Ich werde morgen abend nochmal ausführlicher danach suchen.

    Liebe Grüße,
    Axel

  4. #4
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Die passenden Beiträge im Forum habe ich zwar nicht gefunden, dafür aber folgende TeX-Datei auf meinem Rechner:
    Code:
    \documentclass{article}
    \usepackage{algorithm,algorithmic}
    \usepackage{caption}[2007/09/01] % needs 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}
    
    % self-build
    \begin{center}
      \captionsetup{style=ruled,type=algorithm,skip=0pt}
      \makeatletter
        \fst@algorithm\@fs@pre
      \makeatother
      \caption{Calculate $y = x^n$}%
      \makeatletter
        \@fs@mid\vspace{2pt}
      \makeatother
      \label{alg2}
      \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
        \vspace{2pt}\@fs@post
      \makeatother
    \end{center}
    
    \end{document}
    HTH,
    Axel

  5. #5
    Registrierter Benutzer
    Registriert seit
    21.08.2008
    Beiträge
    88
    Vielen herzlichen Dank, Sommerfee! So eine tolle funktionierende Lösung sollte man im Zusammenhang mit dem Algorithm(ic) Package sowie Deinem(?) Fix mal irgendwo anpinnen oder festhalten. Toll!
    Geändert von TeXBjoern (01-07-2009 um 09:24 Uhr)
    Windows XP SP3, MikTeX 2.7, TexnicCenter RC 1.0, Foxit Reader 3.0

  6. #6
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749
    Würde das auch mit Zeilnennummern gehen? @sommerfee ??

  7. #7
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Sollte gehen. Es wird ja nach wie vor die algorithmic-Umgebung verwendet, lediglich algorithm (also die Gleitumgebung drumherum) wird ersetzt.

Lesezeichen

Berechtigungen

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