Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Algorithmus-Umgebung nicht als Gleitobjekt und mit Seitenumbruch

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.07.2010
    Beiträge
    9

    Algorithmus-Umgebung nicht als Gleitobjekt und mit Seitenumbruch

    Hi, liebe TeXniker!

    Ich möchte mit den Paketen algorithmic und algorithm einen Algorithmus darstellen. Mehrere Dinge müssen dabei erfüllt sein:
    1. Der Algorithmus soll einen schönen Kopf haben, mit Überschrift und diesen typischen horizontalen Linien.
    2. Der Algo soll im Algorithmenverzeichnis aufgelistet sein.
    3. Der Algo soll kein Gleitobjekt wie etwa Tabellen oder Bilder sein, sondern sich direkt im Text einfügen und vor allem auch Seitenumbrüche erlauben.
    4. Es wäre gut, wenn man innerhalb von algorithmic Blöcke definieren kann, in denen KEIN Seitenumbruch erfolgen darf.


    Das Minimalbeispiel ist klar und verdeutlicht vor allem die ersten beiden Punkte:
    Code:
    \documentclass{scrbook}
    \usepackage{algorithmic}
    \usepackage[Algorithmus]{algorithm}
    
    \begin{document}
    
    \begin{algorithm}
    \caption{Anzahl nicht-isomorpher kubischer Zahlk\"orper}
    \begin{algorithmic}
    \REQUIRE $D \in Z$
    \ENSURE Anzahl
    \RETURN $3$
    \end{algorithmic}
    \end{algorithm}
    
    \listofalgorithms
    \end{document}
    Nun müsst ihr euch noch viel Text davor und dahinter vorstellen und stellt euch noch vor, der Algorithmus ginge über 1½ Seiten, meiner tut das nämlich.

    Kann man die letzten beiden Punkte – vor allem den 3.! – irgendwie realisieren?

    Frank

    (Hinweis: Dieser Thread ist eine Fortsetzung von http://www.mrunix.de/forums/showthread.php?t=68745.)

  2. #2
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Geändert von sommerfee (18-07-2010 um 05:12 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.07.2010
    Beiträge
    9
    Herje, mit der Suchfunktion hätte ich das aber auch selber finden können!

    Na egal, danke für die schnelle Antwort. Es funktioniert sehr schön. Da ich aber mehrere Algorithmen habe, würde ich gerne ein extra Environment dafür anlegen:

    Code:
    \documentclass{scrbook}
    \usepackage{algorithmic}
    \usepackage[Algorithmus]{algorithm}
    \usepackage{caption}[2007/09/01] % needs v3.1
    
    \newenvironment{algo}[1]{\begin{center}
    \captionsetup{style=ruled,type=algorithm,skip=0pt}
    \makeatletter
    \fst@algorithm\@fs@pre
    \makeatother
    \caption{#1}
    \makeatletter
    \@fs@mid\vspace{2pt}
    \makeatother
    }{\makeatletter
    \vspace{2pt}\@fs@post
    \makeatother
    \end{center}}
    
    \begin{document}
    
    \begin{algo}[Anzahl nicht isomorpher K\"orper]
    \begin{algorithmic}
    \REQUIRE $D \in Z$
    \ENSURE Anzahl
    \RETURN $3$
    \end{algorithmic}
    \end{algo}
    
    \listofalgorithms
    \end{document}
    Mit dem newenvironment-Befehl klappt das teilweise nicht so recht. Kann man das funktionstüchtig machen?

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von frank Beitrag anzeigen
    Mit dem newenvironment-Befehl klappt das teilweise nicht so recht. Kann man das funktionstüchtig machen?
    etwa
    Code:
    \documentclass{scrbook}
    \usepackage{algorithmic}
    \usepackage[Algorithmus]{algorithm}
    \usepackage{caption}[2007/09/01] % needs v3.1
    \makeatletter
      \newenvironment{algo}[1]{%
        \begin{center}
        \captionsetup{style=ruled,type=algorithm,skip=0pt}
        \fst@algorithm\@fs@pre
        \caption{#1}
        \@fs@mid\vspace{2pt}
      }{%
        \vspace{2pt}\@fs@post
        \end{center}
      }
    \makeatother
    
    \begin{document}
    
    \begin{algo}{Anzahl nicht isomorpher K\"orper}
    \begin{algorithmic}
    \REQUIRE $D \in Z$
    \ENSURE Anzahl
    \RETURN $3$
    \end{algorithmic}
    \end{algo}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  5. #5
    Registrierter Benutzer
    Registriert seit
    14.07.2010
    Beiträge
    9
    Leute, ihr habt’s echt drauf – unglaublich, dass ich hier wirklich auf alle meine Fragen super Antworten bekomme.

    Den 4. und letzten Punkt (zusammenhängende Blöcke im Algo) habe ich übrigens mit \pagebreak[3] gelöst, das ist optimal für meine Bedürfnisse.

    Einen schönen Sonntag noch,

    Frank

Stichworte

Lesezeichen

Berechtigungen

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