PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei Auflistung Text neben Bild



Loomes
19-01-2007, 15:25
ich benutze minipages um in einer aufzählung text neben bild zu positionieren. das fkt. soweit ganz gut, jedoch gibt es den seiteneffekt, dass der text über den rechten textrand hinausgeht. um das zu umgehen, habe ich am rechten rand eine 3. minipage eingefügt - nun ist der text aber auch nicht bündig zum rechten textrand, sondern kürzer.
zweitens gibt es am linken rand der auflistung das problem, dass das bild nicht bündig zur auflistung ist, sondern darüber hinausragt. wie kann ich erreichen, dass die auflistung sich bez. der seitenränder so korrekt verhält, wie z.b. bei einer normalen textauflistung ohne minipages? hier das minimalbeispiel:


\begin{itemize}
\item Speicherzelle\\
\begin{minipage}{0.3\textwidth}
\includegraphics[scale=0.7]{Abb2}\\
\end{minipage}
\begin{minipage}{0.6\textwidth}
Sie speichert in jedem Taktschritt den am Eingang ankommenden Wert und gibt den zuvor gespeicherten Wert am Ausgang weiter.\\
\end{minipage}
\begin{minipage}{0.1\textwidth}
\end{minipage}
\end{itemize}

edico
19-01-2007, 18:32
Ich kann deine Aussagen weder bestätigen noch nachvollziehen. Wenn ich deine Lösung in ein Minimalbeispiel packe und die Minipages umrahme, kann man sehen, das alles mit rechten Dingen zugeht.

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\setlength{\parindent}{0pt}
\begin{document}
\hrulefill

\begin{itemize}
\item Speicherzelle\par%\\
\fbox{%
\begin{minipage}{0.3\textwidth}
\includegraphics[scale=0.7]{duck}\par%\\
\end{minipage}
}
\fbox{%
\begin{minipage}{0.6\textwidth}
Sie speichert in jedem Taktschritt den am Eingang ankommenden Wert und gibt den zuvor gespeicherten Wert am Ausgang weiter.\par%\\
\end{minipage}
}
\fbox{%
\begin{minipage}{0.1\textwidth}
\end{minipage}
}
\end{itemize}

\hrulefill

\begin{itemize}
\item Speicherzelle\par%\\
\fbox{%
\begin{minipage}{0.3\textwidth}
\includegraphics[scale=0.7]{duck}\par%\\
\end{minipage}
}
\fbox{%
\begin{minipage}{0.6\textwidth}
Sie speichert in jedem Taktschritt den am Eingang ankommenden Wert und gibt den zuvor gespeicherten Wert am Ausgang weiter.\par%\\
\end{minipage}
}
\end{itemize}

\hrulefill
\end{document}

Die Summe von 0.3\textwidth- und 0.6\textwidth- und 0.1\textwidth-Minipages ist grösser \textwidth - er zeigt dir auch overfull boxes an ... Die 3. minipage ist damit obsolet, weil sie auf die nächste Zeile rutsch (aber auch sowieso). Es sind eben immer colsep zu beachten. Ein Zeilenumbruch wird in der minipage vollzogen.
Ansonsten alternativ - mach eine Tabelle - am besten tabularx, dann hast du ganz bestimmt eine exakte Textbreite.

edico

Loomes
19-01-2007, 22:56
hi edico, vielen dank für deine antwort. du hast recht, die 3. minipage kann ich weglassen und wenn ich die minipages umrahme, tritt der fehler nicht auf. umrahme ich aber die abbildung nicht, habe ich mein problem noch immer - was kann ich tun?
füge doch bitte mal folgendes in deinen code ein, dann siehst du es, ist wirklich merkwürdig...

Die Multiplikation und Division von Polynomen kann auf relativ einfache Weise mir rückgekoppelten Schieberegistern realisiert werden. Durch die Division der Codewörter wird das ursprüngliche Informationswort wieder hergestellt und das Ergebnis gleichzeitig auf Fehler überprüft.

Ein rückgekoppeltes Schieberegister besteht aus den folgenden drei Schalterelementen:
\begin{itemize}
\item Speicherzelle\\
\fbox{%
\begin{minipage}{0.3\textwidth}
\includegraphics[scale=0.7]{Abb2}\\
\end{minipage}
}
\begin{minipage}{0.6\textwidth}
Sie speichert in jedem Taktschritt den am Eingang ankommenden Wert und gibt den zuvor gespeicherten Wert am Ausgang weiter.\\
\end{minipage}

\item Antivalenzglied\\
\begin{minipage}{0.3\textwidth}
\includegraphics[scale=0.7]{Abb3}\\
\end{minipage}
\begin{minipage}{0.6\textwidth}
Seine Funktion entspricht der Addition $modulo\ 2$ in der Menge $\{0,1\}$. Durch dieses Bauteil wird der in der vorgeschalteten Speicherzelle liegende Wert mit dem am Eingang anliegenden Wert addiert.\\
\end{minipage}

rais
19-01-2007, 23:44
Moin moin,
auch wenn ich mich hier einfach einmische:D


füge doch bitte mal folgendes in deinen code ein, dann siehst du es, ist wirklich merkwürdig...

was genau ist denn merkwürdig? Bedenke dabei, daß wir Deine Grafiken nicht haben... und ein scale=... sagt mir schon gar nichts, solange ich nicht weiß, wie groß die Ausgangsgrafik ist.
Versuch vllt einfach mal statt scale=... width=... (mit der Breite der entsprechenden minipage) zu nehmen.

Und dann kommt natürlich hinzu, daß du Dich gerade innerhalb einer itemize-Umgebung aufhältst: alles, was Du in ein \item packst, wird um \leftmargin (\leftmargin?) nach rechts verschoben, damit nichts in die `Spalte´ der `Punkte´ gerät...

Und, edico zum Trotz:p
{@edico: nichtsdestotrotz bist und bleibst Du natürlich eines meiner Vorbilder hier :D}
fügt gerade \fbox zusätzliche Abstände ein... vgl mal (vorsicht, ist n Tuck länger geworden):


\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel,graphicx}
\setlength{\parindent}{0pt}
\newlength{\mybla}

\begin{document}
\hrulefill

\begin{itemize}
\item bla\par%
\hspace{-\leftmargin}\begin{minipage}{0.3\textwidth}
\rule{\hsize}{5pt}
\end{minipage}\begin{minipage}{0.6\textwidth}
\rule{\hsize}{10pt}
\end{minipage}\begin{minipage}{0.1\textwidth}
\rule{\hsize}{15pt}
\end{minipage}
\item blubb\par%
\begin{minipage}{0.3\linewidth}
\rule{\hsize}{5pt}
\end{minipage}\begin{minipage}{0.6\linewidth}
\rule{\hsize}{10pt}
\end{minipage}\begin{minipage}{0.1\linewidth}
\rule{\hsize}{15pt}
\end{minipage}
\end{itemize}

\hrulefill

\begin{itemize}
\item mit fbox:\par%
\hspace{-\leftmargin}\fbox{\begin{minipage}{0.3\textwidth}
\rule{\hsize}{5pt}
\end{minipage}}\fbox{\begin{minipage}{0.6\textwidt h}
\rule{\hsize}{10pt}
\end{minipage}}\fbox{\begin{minipage}{0.1\textwidt h}
\rule{\hsize}{15pt}
\end{minipage}}
\item bzw. mit der richtigen Länge:\par%
\fbox{\begin{minipage}{0.3\linewidth}
\rule{\hsize}{5pt}
\end{minipage}}\fbox{\begin{minipage}{0.6\linewidt h}
\rule{\hsize}{10pt}
\end{minipage}}\fbox{\begin{minipage}{0.1\linewidt h}
\rule{\hsize}{15pt}
\end{minipage}}
%\end{itemize}
\item \dots fehlt nur noch die Anpassung:\par%
\setlength{\mybla}{\linewidth}%
\addtolength{\mybla}{-6\fboxrule}%
\addtolength{\mybla}{-6\fboxsep}%
\fbox{\begin{minipage}{0.3\mybla}
\rule{\hsize}{5pt}
\end{minipage}}\fbox{\begin{minipage}{0.6\mybla}
\rule{\hsize}{10pt}
\end{minipage}}\fbox{\begin{minipage}{0.1\mybla}
\rule{\hsize}{15pt}
\end{minipage}}
\end{itemize}

\hrulefill
\end{document}

-- dafür paßt aber alles noch auf eine Seite;-)
MfG,

edico
20-01-2007, 12:55
@rais
Lieber Zeitgenosse! Zuviel des Guten! Versteck Dich nicht .... oder just fishing for compliments? ;-)
Inhaltlich hast du recht (wollte ich durch die Rechtecke lediglich veranschaulichen)
... und hast an sich alles gesagt! Sehr schön!

@Loomes
Solange du nicht verstehst, dass eine Hilfe nur sinnhaft ist, wenn du ein Minimalbeispiel und nicht nur immer Codeschnipselchen bietest, wird wohl immer offensichtlicher. Auch zur Selbsthilfe!

Soweit ich Deinen Code verstehe, ist es das Bild, 'das aus den Fugen gerät'.
rais hat Dir die Antwort genannt. Schau Dir nochmal das angefügte MB an - es sollte Dir ein Licht sein.

%%%
%%% Dummy EPS vector graphic
%%%
\begin{filecontents*}{bild.eps}
%!PS-Adobe-3.0
%%BoundingBox: 0 0 160 220
%%EndComments
10 10 scale
/Helvetica 24 selectfont
2 2 moveto
(2) show
showpage
\end{filecontents*}
%%%
%%% Compile latex. dvips,ps2pdf (oder vlatex) or
%%% transform example EPS to PDF vector graphic by
%%% $ epstopdf bild.eps
%%%
\documentclass[ngerman]{article}
\usepackage[latin1]{inputenc}
\usepackage{babel,graphicx}

\begin{document}
\hrulefill

\begin{itemize}
\item Speicherzelle\\
\fbox{%
\begin{minipage}{0.3\textwidth}
%\includegraphics[scale=0.7]{Abb2}\\
\rule{6cm}{2cm}
\end{minipage}
}
\fbox{%
\begin{minipage}{0.6\textwidth}
Sie speichert in jedem Taktschritt den am Eingang ankommenden Wert und gibt den zuvor gespeicherten Wert am Ausgang weiter.\\
\end{minipage}}

\item Antivalenzglied\\
\begin{minipage}{0.3\textwidth}
%\includegraphics[scale=0.7]{Abb3}\\
\rule{6cm}{2cm}
\end{minipage}
\begin{minipage}{0.6\textwidth}
Seine Funktion entspricht der Addition $modulo\ 2$ in der Menge $\{0,1\}$. Durch dieses Bauteil wird der in der vorgeschalteten Speicherzelle liegende Wert mit dem am Eingang anliegenden Wert addiert.\\
\end{minipage}
%\end{itemize}

\item Antivalenzglied\\
\begin{minipage}{0.3\textwidth}
\fbox{
\includegraphics[scale=0.7]{bild}}\\
\end{minipage}
\begin{minipage}{0.6\textwidth}
Seine Funktion entspricht der Addition $modulo\ 2$ in der Menge $\{0,1\}$. Durch dieses Bauteilcd wird der in der vorgeschalteten Speicherzelle liegende Wert mit dem am Eingang anliegenden Wert addiert.\\
\end{minipage}
%\end{itemize}

\item Antivalenzglied\\
\begin{minipage}{0.3\textwidth}
\fbox{
\includegraphics[width=.285\textwidth]{bild}}\\
\end{minipage}
\begin{minipage}{0.6\textwidth}
Seine Funktion entspricht der Addition $modulo\ 2$ in der Menge $\{0,1\}$. Durch dieses Bauteilcd wird der in der vorgeschalteten Speicherzelle liegende Wert mit dem am Eingang anliegenden Wert addiert.\\
\end{minipage}
\end{itemize}

\end{document}

edico

Loomes
20-01-2007, 17:53
Danke, hier ist ein Minimalbeispiel, um das mal anschaulich zu machen:

\documentclass[a4paper,fleqn]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{ngerman}
\usepackage{amsmath} % für mathesymbole
\usepackage{graphicx} % für Einfügen von Graphiken \includegraphics
\begin{document}
\setlength{\parindent}{0pt}
\setlength{\parskip}{5pt}
\setlength{\mathindent}{1.0cm}
\thispagestyle{empty}
Die Multiplikation und Division von Polynomen kann auf relativ einfache Weise mir rückgekoppelten Schieberegistern realisiert werden. Durch die Division der Codewörter wird das ursprüngliche Informationswort wieder hergestellt und das Ergebnis gleichzeitig auf Fehler überprüft.

Ein rückgekoppeltes Schieberegister besteht aus den folgenden drei Schalterelementen:
\begin{itemize}
\item Speicherzelle\\
\fbox{%
\begin{minipage}{0.3\textwidth}
\includegraphics[scale=0.7]{Abb2}\\
\end{minipage}
}
\begin{minipage}{0.6\textwidth}
Sie speichert in jedem Taktschritt den am Eingang ankommenden Wert und gibt den zuvor gespeicherten Wert am Ausgang weiter.\\
\end{minipage}

\item Antivalenzglied\\
\begin{minipage}{0.3\textwidth}
\includegraphics[scale=0.7]{Abb3}
\end{minipage}
\begin{minipage}{0.6\textwidth}
Seine Funktion entspricht der Addition $modulo\ 2$ in der Menge $\{0,1\}$. Durch dieses Bauteil wird der in der vorgeschalteten Speicherzelle liegende Wert mit dem am Eingang anliegenden Wert addiert.\\
\end{minipage}
\end{itemize}\end{document}

Hier ein Screenshot und die Bilder für das tex als Anhang. Mit fbox ist alles richtig ausgerichtet, ohne fbax aber rutscht das bild links etwas heraus und der text vom rechten bildrand weg.

edico
20-01-2007, 19:55
... und ich kann es nicht verifizieren ...
edico
P.S. was ich vergessen habe: ich habe die jpg nach png transformiert

Loomes
20-01-2007, 20:04
das heisst, du compilierst mein MB und das was du dann im pdf-viewer siehst, entspricht nicht dem auf dem screenshot?

edico
21-01-2007, 17:11
Bei mir ist es so (und das ist AFAIK korrekt), dass das Image '(links)bündig' mit dem Item (also 'Antivalenzglied' z.B.) ist. Was soll man mehr erwarten?

edico

rais
21-01-2007, 23:53
@edico: Ok, das Versteckspiel hat ein Ende;-)

@Loomes: zugegeben, anfangs hat mich irritiert, daß Dein screenshot den linken Rand der \fbox nicht mit dargestellt hat, weshalb ich mich eher gefragt hab', ob Du in Deinem Code Deiner Arbeit (aus der der screenshot ja eher stammt, als von Deinem geposteten MB) vllt irgend etwas anders gemacht hast, als in besagtem MB...
Und dann fiel mir wieder


nun ist der text aber auch nicht bündig zum rechten textrand
ein -- und ein Vergleich in Deinem screenshot hat gezeigt, daß das \item mit der \fbox zufällig am rechten Rand mit dem des Fließtextes übereinstimmt.
"Zufällig" deshalb, weil Du als Breiten für die beiden minipages 0.3\textwidth und 0.6\textwidth benutzt, wobei \textwidth Deiner itemize-Umgebung übergeordnet ist.
(\textwith = Breite_der_itemize_Umgebung + Einrückung_derselben -- auch wenn es eigentlich andersherum ist)
Wenn Du also als Bezugsbreite für die minipages gleich diese `Breite_der-itemize_Umgebung´ nehmen würdest, dann könntest Du auf dessen volle Breite expandieren -- und schon paßt es.;)
Nimm also statt \textwidth \linewidth bei den Deklarationen für die minipages, laß die Breite der jeweils zweiten minipage auf 0.7\linewidth anwachsen und Du hast eigentich kein Problem...
d.h. dabei solltest Du vllt beachten, daß Du die beiden minipages innerhalb eines \item durch einen Zeilenumbruch voneinander trennst -- was bedeutet, daß LaTeX hier einen Worttrenner einzufügen gedenkt....
Also vllt besser


:
\end{minipage}%
\begin{minipage}{..}
:
an den entsprechenden Stellen -- dann wird's auch innerhalb Deiner itemize-Umgebung bündig mit dem Text drumherum.

Genaugenommen hättest Du das alles doch bereits aus meinem zuvor gepostetem Code entnehmen können, oder?
MfG,

Loomes
22-01-2007, 17:10
Experimente mit versch. Breiten der Minipages und /linewidth hatte ich auch schon gemacht. Das Problem ist nun, dass das Ganze noch nicht ganz passt - und zwar am Seitenrand: Links und rechts stehen die Abb. bzw. der Text ca. 1-2mm über linewidth hinaus, gut zu sehen bei "Multiplizierer". Hier das MB, Abb. sind als A.hang in meinem obigen Post.

\documentclass[a4paper,fleqn]{scrartcl} %Papierformat + KOMA-Script, fleqn notw. für \mathindent
\usepackage[T1]{fontenc}
\usepackage{ngerman}
\usepackage{graphicx} % für Einfügen von Graphiken \includegraphics
\begin{document}
\section{Implementierung}
\subsection{Rückgekoppelte Schieberegister}
Die Multiplikation und Division von Polynomen kann auf relativ einfache Weise mit Schieberegistern realisiert werden. Durch die Division der Codewörter wird das ursprüngliche Informationswort wieder hergestellt und das Ergebnis gleichzeitig auf Fehler überprüft.
Ein rückgekoppeltes Schieberegister besteht aus den folgenden drei Schalterelementen:
\begin{itemize}
\item Speicherzelle\\
\begin{minipage}{0.3\linewidth}
\includegraphics[scale=0.7]{Abb2}\\
\end{minipage}
\begin{minipage}{0.7\linewidth}
Sie speichert in jedem Taktschritt den am Eingang ankommenden Wert und gibt den zuvor gespeicherten Wert am Ausgang weiter.\\
\end{minipage}
\item Antivalenzglied\\
\begin{minipage}{0.3\linewidth}
\includegraphics[scale=0.7]{Abb3}\\
\end{minipage}
\begin{minipage}{0.7\linewidth}
Seine Funktion entspricht der Addition $modulo\ 2$ in der Menge $\{0,1\}$. Durch dieses Bauteil wird der in der vorgeschalteten Speicherzelle liegende Wert mit dem am Eingang anliegenden Wert addiert.\\
\end{minipage}
\item Multiplizierer\\
\begin{minipage}{0.3\linewidth}
\includegraphics[scale=0.7]{Abb4}\\
\end{minipage}
\begin{minipage}{0.7\linewidth}
Das am Eingang anliegende Element wird mit $\alpha$ aus der Menge $\{0,1\}$ multipliziert und am Ausgang erfolgt die Ausgabe des Produkts.\\
\end{minipage}
\end{itemize}
\end{document}

rais
22-01-2007, 22:40
\item Antivalenzglied\\
\begin{minipage}{0.3\linewidth}
\includegraphics[scale=0.7]{Abb3}\\
\end{minipage}
\begin{minipage}{0.7\linewidth}
Seine Funktion entspricht der Addition $modulo\ 2$ in der Menge $\{0,1\}$. Durch dieses Bauteil wird der in der vorgeschalteten Speicherzelle liegende Wert mit dem am Eingang anliegenden Wert addiert.\\
\end{minipage}

Dir ist schon klar, dass Du so fuer die minipages zusammen zwar verfuegbare Breite bekommst, aber einen zusaetzlichen Wortabstand dazwischenklemmst...ergo die Seitenraender um diesen Wortabstand nach aussen ueberstehen? Vgl mit meinem letzten Post, da hab ich die noetige Aenderung sogar rot hervorgehoben :rolleyes:
MfG,

Loomes
22-01-2007, 23:31
\item Multiplizierer\\
\begin{minipage}{0.3\linewidth}
\includegraphics[scale=0.7]{Abb4}
\end{minipage}%
\begin{minipage}{0.7\linewidth}
Das am Eingang anliegende Element wird mit $\alpha$ aus der Menge $\{0,1\}$ multipliziert und am Ausgang erfolgt die Ausgabe des Produkts.
\end{minipage}%
\end{itemize}
...am rechten bildrand ist es hiermit ok. die abb ist noch immer nach links verrutscht. was fehlt denn jetzt noch?

rais
26-01-2007, 00:43
Moin moin,


\item Multiplizierer\\
\begin{minipage}{0.3\linewidth}
\includegraphics[scale=0.7]{Abb4}
\end{minipage}%
\begin{minipage}{0.7\linewidth}
Das am Eingang anliegende Element wird mit $\alpha$ aus der Menge $\{0,1\}$ multipliziert und am Ausgang erfolgt die Ausgabe des Produkts.
\end{minipage}%
\end{itemize}
...am rechten bildrand ist es hiermit ok. die abb ist noch immer nach links verrutscht. was fehlt denn jetzt noch?
also diese `Abb4' finde ich hier nirgends. Passiert Dir das auch dann, wenn Du statt Abb4 einfach mal Abb2 oder Abb3 nimmst? Dann liegt's ja vllt an dieser Grafik...
Oder geht es Dir jetzt darum, daß Abb4 mit \fbox weiter eingerückt war? Dann setz einfach \hspace{3.4pt} direkt vor den \includegraphics (3pt wäre standardmäßig \fboxsep, 0.4pt die Linienstärke bei einer \fbox)... obwohl, eigentlich gehört's ja eigentlich ohne fbox da hin, wo zuvor die linke Linie der \fbox war -- das hat edico aber auch schon gesagt.
Vllt sieht's ja so passender aus?


:
\begin{minipage}{0.3\linewidth}
%ggf auch \centering
\includegraphics[width=0.5\hsize]{..}
\end{minipage}\begin{minipage{0.7\linewidth}
- der Text -
\end{minipage}
:

MfG,