droptix
01-02-2006, 20:45
Ich möchte eine eigene Umgebung (newenvironment) schreiben. Dafür brauche ich aber eine if-Abfrage, eine Art for-Schleife und muss etwas rechnen... das hab ich noch nie gemacht und könnte ein wenig Hilfe gebrauchen.
Es soll ungefähr so aussehen:
\begin{imgs}
\img[caption1][label1]{path/filename1}
\img[caption2][label2]{path/filename2}
\end{imgs}
Es geht also um Bilder. Die sollen nebeneinander in eine Minipage-Umgebung gesetzt werden. Die Anzahl der Bilder darf beliebig variieren. Deren Breite muss demnach berechnet werden. Ich reserviere mindestens 0.1\linewidth für Platz dazwischen. Im Regelfall sind es bei mir zwei, maximal aber drei Bilder... Aber wenn ich das schon durchziehe, dann gleich multifunktional :D
Um alles drumrum kommt das hier:
\begin{nofloat}{figure}
...
\end{nofloat}
In einer for-Schleife soll für jedes \img das hier gesetzt werden:
\begin{minipage}[b]{Breite}
\frame{\includegraphics[width=\linewidth]{path/filename}}
\end{minipage}
Breite muss dabei berechnet werden. Es ergibt sich aus \linewidth minus 0.1\linewidth geteilt durch die Anzahl der \img-Elemente. Vom Ergebnis werden die Nachkommastellen abgeschnitten (keine Rundung -> bei PHP heißt die Funktion floor).
Also bei zwei Bildern nebeneinander macht das:
floor( (\linewidth - 0.1\linewidth) / 2 )
= floor( 0.9\linewidth / 2 )
= floor( 0.45\linewidth )
= 0.4\linewidth
Also wird ein Bild 0.4\linewidth breit. Dazwischen ist 0.2\linewidth Platz.
Bei drei Bildern sieht das so aus:
floor( (\linewidth - 0.1\linewidth) / 3 )
= floor( 0.9\linewidth / 3 )
= floor( 0.3\linewidth )
= 0.3\linewidth
Also wird ein Bild 0.3\linewidth breit. Dazwischen ist jeweils 0.0333\linewidth Platz.
Zwischen den Minipage-Umgebungen muss noch das Wörtchen
\hfill
Die optionalen Parameter caption und label müssen über eine if-Abfrage gecheckt werden. Wenn sie da sind, soll nach dem \frame{...} noch ein \caption{...} und \label{...} dazu kommen. Dafür brauch ich aber nur den Ansatz und kann den Rest bestimmt selber machen.
Kann mir jemand einen Ansatz oder die Lösung posten? D A N K E
Es soll ungefähr so aussehen:
\begin{imgs}
\img[caption1][label1]{path/filename1}
\img[caption2][label2]{path/filename2}
\end{imgs}
Es geht also um Bilder. Die sollen nebeneinander in eine Minipage-Umgebung gesetzt werden. Die Anzahl der Bilder darf beliebig variieren. Deren Breite muss demnach berechnet werden. Ich reserviere mindestens 0.1\linewidth für Platz dazwischen. Im Regelfall sind es bei mir zwei, maximal aber drei Bilder... Aber wenn ich das schon durchziehe, dann gleich multifunktional :D
Um alles drumrum kommt das hier:
\begin{nofloat}{figure}
...
\end{nofloat}
In einer for-Schleife soll für jedes \img das hier gesetzt werden:
\begin{minipage}[b]{Breite}
\frame{\includegraphics[width=\linewidth]{path/filename}}
\end{minipage}
Breite muss dabei berechnet werden. Es ergibt sich aus \linewidth minus 0.1\linewidth geteilt durch die Anzahl der \img-Elemente. Vom Ergebnis werden die Nachkommastellen abgeschnitten (keine Rundung -> bei PHP heißt die Funktion floor).
Also bei zwei Bildern nebeneinander macht das:
floor( (\linewidth - 0.1\linewidth) / 2 )
= floor( 0.9\linewidth / 2 )
= floor( 0.45\linewidth )
= 0.4\linewidth
Also wird ein Bild 0.4\linewidth breit. Dazwischen ist 0.2\linewidth Platz.
Bei drei Bildern sieht das so aus:
floor( (\linewidth - 0.1\linewidth) / 3 )
= floor( 0.9\linewidth / 3 )
= floor( 0.3\linewidth )
= 0.3\linewidth
Also wird ein Bild 0.3\linewidth breit. Dazwischen ist jeweils 0.0333\linewidth Platz.
Zwischen den Minipage-Umgebungen muss noch das Wörtchen
\hfill
Die optionalen Parameter caption und label müssen über eine if-Abfrage gecheckt werden. Wenn sie da sind, soll nach dem \frame{...} noch ein \caption{...} und \label{...} dazu kommen. Dafür brauch ich aber nur den Ansatz und kann den Rest bestimmt selber machen.
Kann mir jemand einen Ansatz oder die Lösung posten? D A N K E