PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei codebox-Umgebungen nebeneinander.



ai.casselfornia
19-07-2013, 13:52
Hallo Leute,

ich schreibe derzeit an einer Seminararbeit und bekomme etwas Platzprobleme.

Jetzt möchte ich gerne zwei Codebox-Umgebungen nebeneinander setzen. Bekomme das aber absolut nicht hin.
Im Moment sieht das ganze so aus:
http://www0.xup.in/tn/2013_07/83047645.png (http://www.xup.in/dl,83047645/Unbenannt.PNG/)
Hier ein der Codeauszug:


%
\documentclass{llncs}
%

\usepackage{clrscode3e} %pseudocode
\usepackage{subcaption}
\captionsetup{compatibility=false}
%
\begin{document}

\begin{figure}[ht]
\begin{subfigure}[b]{0.3\textwidth}
\begin{codebox}
\Procname{$\proc{BubbleSort(A)}$}
\li \For $i \gets 1$ \To $\attrib{A}{length}$ \Do
\li \For $j \gets \attrib{A}{length}$ \Downto $i+1$ \Do
\li \If $A[i] < A[j-1]$ \Then
\li swap $A[j] \leftrightarrow A[j-1]$
\End
\End
\End
\end{codebox}
\caption{BubbleSort in Pseudocode}
\label{fig:bubblesort}
\end{subfigure}

\begin{subfigure}[b]{0.3\textwidth}
\begin{codebox}
\Procname{$\proc{BubbleSort(A)}$}
\li $n \gets \attrib{A}{length}$
\li \Repeat
\li $\id{swapped} \gets \const{false}$
\li \For $i \gets 1$ \To $\attrib{A}{length}-1$ \Do
\li \If $A[i] > A[i+1]$ \Then
\li swap $A[i] \leftrightarrow A[i+1]$
\li $\id{swapped} \gets \const{true}$
\End
\li \Until $\id{swapped} \isequal \const{true}$
\end{codebox}
\caption{Opitimierter BubbleSort in Pseudocode}
\label{fig:bubblesortopt}
\end{subfigure}
\end{figure}

\end{document}


Ich hoffe Ihr könnt mir helfen.

Gruß, André

javatar
19-07-2013, 17:29
Schonmal Minipages probiert? Zum Beisiel so ungefähr:



\begin{figure}
\centering
\begin{minipage}{0.45\textwidth}
Code1
\end{minipage}\hfill
\begin{minipage}{0.45\textwidth}
Code2
\end{minipage}
\end{figure}


ist allerdings ungetestet.

ai.casselfornia
19-07-2013, 21:29
Schonmal Minipages probiert?

Hallo,

ja hatte ich bereit getestet. Bringt leider keinen Erfolg. Das Einzige was sich ändert, ist die Breite der caption unter dem Code. Scheint als wolle die Codebox einfach nicht neben die andere. Sie muss aber! Irgendwie.
:p
Sonst noch jemand eine Idee.

nixversteh
19-07-2013, 23:14
Hallo,

ja hatte ich bereit getestet. Bringt leider keinen Erfolg. Das Einzige was sich ändert, ist die Breite der caption unter dem Code. Scheint als wolle die Codebox einfach nicht neben die andere. Sie muss aber! Irgendwie.
:p
Sonst noch jemand eine Idee.

Hallo ai.casselfornia,

wenn es irgendwie sein muss ... ich würde einfach zwei Dateien erstellen, eine in denen deine Codeboxen jeweils auf eine Seite gedruckt werden. Dann mit einem Werkzeug zur Bearbeitung von PDFs die jeweiligen Codeboxen beschneiden.

Dann in deinem Haupdokument die beiden PDFs nebeneinander einfügen. Bin jetzt zu müde, denke aber, dass es leichter sein wird, als LaTex Dinge beizu bringen, die es nicht machen will.

Viel Erfolg

Gruß

Martin

PS.: zur Papierzeiten haben die Setzer etc. die Bildchen ausgeschnitten und nebeneinander geklebt, dann eingescannt ... Man muss sich nur zu helfen wissen

EDIT: Hier mal im Anhang was ich meine...

\documentclass{llncs}
\usepackage{clrscode3e}
\usepackage{subcaption}
\captionsetup{compatibility=false}
\usepackage{graphicx}
\usepackage{subfig}
\begin{document}


\begin{figure}
\includegraphics[width=0.6\textwidth]{Bild1.pdf}
\includegraphics[width=0.6\textwidth]{Bild2.pdf}
%\caption{Titel unterm gesamten Bild}
\end{figure}

\end{document}

rais
20-07-2013, 09:41
Moin moin,


Jetzt möchte ich gerne zwei Codebox-Umgebungen nebeneinander setzen. Bekomme das aber absolut nicht hin.

wenn Du etwas nebeneinander setzen willst, darfst Du dazwischen keinen neuen Absatz erzeugen.
Ersetze




\end{subfigure}

\begin{subfigure}[b]{0.3\textwidth}


durch


\end{subfigure}%
%bzw. \hfill, \hspace{..}...
\begin{subfigure}[b]{0.3\textwidth}

BTW:




\usepackage{clrscode3e} %pseudocode


Wenn Du Klassen/Pakete nutzt, die nicht über CTAN abrufbar sind, wäre ein Link zum erforderlichen Paket/zur erforderlichen Klasse das Mindeste, was Du angeben solltest.

MfG

ai.casselfornia
20-07-2013, 14:57
wenn Du etwas nebeneinander setzen willst, darfst Du dazwischen keinen neuen Absatz erzeugen.


Super das war es! Hatte ganz vergessen, dass ein Absatz im Quelltext auch im Dokument erscheint. :rolleyes:

Vielen Lieben Dank (auch an nixversteh. So hatte ich es zwischenzeitlich auch gelöst, aber das war leider nicht die einzige Stelle, an der ich das Problem hatte.)


Wenn Du Klassen/Pakete nutzt, die nicht über CTAN abrufbar sind, wäre ein Link zum erforderlichen Paket/zur erforderlichen Klasse das Mindeste, was Du angeben solltest.


Ja sorry total vergessen. Beim nächsten mal gelobe ich Besserung.:D

Schönes Wochenende allerseits.

nixversteh
20-07-2013, 15:29
Hallo ai.casselfornia,

es war mir klar, dass es eine LÖSUNG geben würde, nur ich kannte sie ...

Lieben Gruß

Martin