PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \figure{}-Kram wird nicht da plaziert, wo es im Source steht



d@tenmaulwurf
09-01-2007, 22:16
Hallo!

Ich habe einige Sachen (Bäume, Matrizen, etc.) in figure-Tags gepackt, um sie mit einem Untertitel versehen und referenzieren zu können.
Das Problem hierbei ist, dass diese figure-Objekte scheinbar mitten im Text vor oder nach ihrer Definition im Source auftauchen.
Es sieht absolut grotesk aus.
Hier ein Codebeispiel:



\documentclass[a4paper]{article}
\pagestyle{plain}
\usepackage{pst-tree}
\usepackage{lscape}
\begin{document}
\newcommand{\MyNode}[1]{\Tcircle{\makebox[1em]{#1}}}
Dieser Text soll ueber der 1. Abbildung stehen.
\begin{figure}
\pstree{\MyNode{${b}_{\frac{7}{17}}$}}
\ \ \
\pstree{\MyNode{${u}_{\frac{1}{17}}$}}

\renewcommand{\figurename}{Baum}
\caption{Wertigkeiten der einzelnen Elemente der Zeichenkette}
\label{huffman-0}
\end{figure}
Dieser Text soll ueber der 2. Abbildung stehen.
\begin{figure}
\pstree{\MyNode{${\ }_{\frac{3}{17}}$}}
{\MyNode{${u}_{\frac{1}{17}}$}
\MyNode{${r}_{\frac{2}{17}}$}}
\renewcommand{\figurename}{Baum}
\caption{foobar}
\label{huffman-1}
\end{figure}
Ende von dem figure-Kram.
\end{document}


Hinzu kommen Probleme wie:
a) Der Untertitel ist zentriert, die Abbildung aber nicht
b) Teilweise wird automatisch eingerückt und ich habe keine Ahnung nach welchen Kriterien dies passiert.

\\EDIT:

Das Problem trifft nicht nur beim pstree-kram auf. Auch bei normalen non-eps-kram innerhalb der figure-tags.

Habe mal n Screenshot gemacht: http://nanl.de/nanl/bildchen/latex-prob.jpg
Da sind alle angesprochenen Probleme deutlich zu erkennen.

sofa-surfer
09-01-2007, 23:03
Hallo,

die \figure-Umgebung ist eine Gleitumgebung, also gleiten deine Abbildungen auch ... Abhilfe kann schon die Wahl des richtigen Positionierungsparameters schaffen, oder auch der \captionof-Befehl. Schau mal ins l2picfaq.pdf (http://www.ctan.org/tex-archive/info/l2picfaq/german/l2picfaq.pdf). Da sollte alles drin stehen.

Matthias

localghost
10-01-2007, 00:20
Ein Parameter für die figure- oder table-Umgebung, der oft unterschätzt wird, ist das "!".

\begin{figure}[!ht]
...
\end{figure}
Es lockert die ansonsten sehr strengen Regeln für die Platzierung von Gleitobjekten. Die Kombinationen [htb] (Voreinstellung) oder gar [htbp] sind bestenfalls problematisch.

d@tenmaulwurf
10-01-2007, 17:19
Ein Parameter für die figure- oder table-Umgebung, der oft unterschätzt wird, ist das "!".

\begin{figure}[!ht]
...
\end{figure}
Es lockert die ansonsten sehr strengen Regeln für die Platzierung von Gleitobjekten. Die Kombinationen [htb] (Voreinstellung) oder gar [htbp] sind bestenfalls problematisch.

Vielen Dank erstmal!

Das "[!ht]" bringt schon viel, dennoch werden in einem Fall zwei Matrizen mitten in einen Satz plaziert. Dieser Satz fängt am Ende einer Seite ein und sollte auf der nächsten fortgesetzt werden, aber stattdessen erscheinen jetzt 2 figure-Objekte auf der nächsten Seite, bevor der Satz darunter fortgeführt wird.

bischi
10-01-2007, 17:21
l2picfaq.pdf

Suche nach captionof oder nach floatbarrier

MfG Bischi

localghost
10-01-2007, 17:22
Verstehe ich das richtig, dass du zwei Matrizen als Gleitobjekte eingefügt hast? Das sind doch eigentlich mathematische Elemente. Was machen die denn in einer figure-/table-Umgebung?

d@tenmaulwurf
10-01-2007, 22:41
Bsp.:



\begin{figure}[!ht]
\[
\begin{pmatrix}
0 & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 1_P \\
0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 0_P \\
0 & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 1_P \\
0 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 1_P \\
0 & 0 & 1 & 0 & 1 & 1 & 1 & 0 & 0_P \\
0 & 1 & 1 & 0 & 0 & 1 & 0 & 0 & 1_P \\
0 & 1 & 1 & 0 & 0 & 1 & 0 & 1 & 0_P \\
0_P & 0_P & 1_P & 0_P & 0_P & 0_P & 1_P & 0_P
\end{pmatrix}
\]
\renewcommand{\figurename}{Matrize}
\caption{korrekte Darstellung des Codewortes als Referenz}
\label{correct}
\end{figure}


Ich habe sie in einer figure-Umgebung, um sie:
- einfach wie Abbildungen referenzieren zu können
- sie einfach mit Untertiteln versehen zu können
- sie ggf. auch nebeneinander plazieren zu können
.