PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Plazierung von Bild in gleicher Zeile wie Text



01mf02
22-09-2009, 10:01
Hallo alle zusammen!


Ich habe folgendes Problem: Wenn ich in ein- und derselben Zeile Text und ein Bild stehen habe, dann wird der Text eher unschön an den unteren Rand des Bildes ausgerichtet - ich bräuchte ihn aber am oberen Rand. ;)
Ich habe versucht, das Problem mit dem angehängten Bild zu illustrieren.

Weiß jemand, wie man das macht?


Hintergrund:
Ich arbeite an einer Art Aufgabensammlung, deren Unteraufgaben wie z.B. a), b), c) etc. ich mit \paragraph realisiere, d.h. ich schreibe z.B. \paragraph{a)}.
\paragraph verwende ich deshalb, da jeder Text, der danach kommt, automatisch auf die selbe Zeile wie der \paragraph gesetzt wird.

Manche Aufgaben bestehen jedenfalls nur aus einem einzigen Bild, und auch dieses Bild wird eben auf die selbe Zeile wie der \paragraph gesetzt - nur eben wie oben beschrieben auf die falsche Position.

Falls mein Ansatz suboptimal ist, bitte nicht zu zögern, es mir zu sagen! :rolleyes:

Stefan_K
22-09-2009, 10:56
Hallo,

dafür könntest Du \parbox (http://texblog.net/help/latex/ltx-294.html) verwenden mit dem optionalen Parameter [t] für die Position bzw. Ausrichtung top.

Stefan

01mf02
22-09-2009, 11:20
Hallo Stefan,


danke für deine so schnelle Antwort!

Ich bin mir noch nicht sicher, wie man parbox einsetzen kann. Ich habe es einmal folgendermaßen probiert:


\parbox[t]{10mm}{Hi!}\includegraphics{illustration}

Dies hatte allerdings keinen merkbaren Effekt auf die Ausrichtung des Textes - der Text war nämlich wieder am unteren Ende des Bildes.

Was mache ich hier bloß falsch ...?

Stefan_K
22-09-2009, 11:26
\parbox sollte um die Grafik, um deren Ausrichtung zu ändern, nicht um den Text.

Stefan

u_fischer
22-09-2009, 11:38
Ein Bild ist wie ein sehr großer Buchstabe "A", es sitzt daher normalerweise auf der Grundlinie. Du kannst es aber mit \raisebox{-\height}{bild} nach unten bewegen.

Stefan_K
22-09-2009, 11:45
Ulrikes Tipp geht natürlich auch. Mit \parbox kann man ggf. mit Einfügen von Nullabstand die top-Ausrichtung erzwingen, siehe ggf auch hier (http://texblog.net/latex-archive/graphics/includegraphics-top-align/).

Hi!\parbox[t]{10mm}{\vspace{0pt}\includegraphics{illustration}}

Viele Grüße,

Stefan

01mf02
22-09-2009, 11:48
[EDIT]
Die darunterstehende Antwort bezieht sich auf Stefans zweite Antwort, ich probiere eure beiden seither dazugekommenen Antworten gleich aus. Danke schon einmal im Vorhinein! ;)

Auch das habe ich schon probiert, jedoch mit gleichem Ergebnis - es ändert sich überhaupt nichts! Das heißt, es ist kein Unterschied erkennbar, ob parbox dabeisteht oder nicht.
(Interessanterweise scheint es auch keine Rolle zu spielen, wie groß ich die parbox dimensioniere - 100mm oder 1mm, das Ergebnis schaut immer gleich aus.)


Hi!\parbox[t]{110mm}{\includegraphics{illustration}}


Vielleicht noch eine Anmerkung: Das von mir hier beschriebene Problem der Ausrichtung besteht an sehr vielen Stellen, das heißt, wenn es irgendwie möglich wäre, wäre es erstrebenswert, das Verhalten des paragraph zu verändern, weil ich das zentral über ein Makro regeln kann. Ansonsten müsste ich jedem einzelnen Bild (und es sind nicht nur Bilder, sondern auch Formeln, was ich noch gar nicht angesprochen habe) eine Spezialbehandlung angedeihen lassen, was natürlich möglich, aber mit doch einigem Aufwand verbunden ist. :)

01mf02
22-09-2009, 12:13
So, also nocheinmal danke euch beiden vielmals für eure sehr kompetenten und außerdem noch so schnellen Antworten!

Ulrike, durch deine Antwort habe ich das Problem erst wirklich verstanden - danke dir dafür! Deine Lösung leuchtet mir auch ein, in meinem Falle ist sie leider zu aufwändig, da ich sehr viele Bilder neu ausrichten muss und dafür bei jedem Bild eigens die Höhe ermitteln müsste.

Stefan, deine Lösung funktioniert einmal schon sehr gut - danke!
Das Problem, was für mich bleibt, ist, dass die parbox zwingend eine Breite verlangt und diese aber bei jedem Bild anders ist. Gibt es keine elegantere Lösung, um den paragraph am Bild auszurichten, bei der man nur die Deklaration des paragraph verändert? Wenn es so eine Methode gäbe, dann wäre diese für mich um Welten einfacher zu realisieren, da ich nur an einer einzigen Stelle meinen Quelltext ein bisschen anpassen müsste, anstatt alle betroffenen Bilder (und Formeln) anzupassen ...

Wenn ich quasi einen Befehl dafür erfinden müsste, würde er so aussehen:

\alignattopline{Hi!}\includegraphics{illustration}
Gibt es so etwas?

Stefan_K
22-09-2009, 12:32
Ulrikes Lösung benötigt die Breitenangabe nicht, daher würde ich sie vorziehen. Daraus können wir ein Makro verfassen:

\newcommand*\includegraphicstop[1]{\raisebox{-\height}{\includegraphics{#1}}}
Im Text geht dann beispielsweise:

Text\includegraphicstop{illustration}

Stefan

01mf02
22-09-2009, 18:49
Okay, das funktioniert, danke vielmals für deine Hilfe!

Verständnisfrage: Woher nimmt der Befehl \height seine Information? Wessen Höhe gibt er zurück?

Das vermutlich letzte Problem ist, dass \raisebox{-\height} ein kleines bisschen zu weit nach unten verschiebt, nämlich genau um die Höhe der Textzeile davor. Kann man diesen Block irgendwie wieder um genau dieses Stückchen zurückschieben?

Stefan_K
22-09-2009, 19:29
\height gibt die Höhe der aktuellen Box zurück und wird bereits durch den LaTeX-Kern unterstützt. Darüber findet sich beispielsweise etwas mit texdoc (http://texblog.net/hypertext-help/latex-tools/texdoc/) source2e auf der Kommandozeile und der Suchfunktion des Readers.

Das weitere Zurückschieben der Box kriegt man auch hin. Wie wäre es damit:

\usepackage{calc}
\newlength{\Hoehe}
\newcommand*\aligntop[2]{%
\settoheight{\Hoehe}{#1}%
#1\raisebox{-\height+\Hoehe}{\includegraphics{#1}}}
...
\aligntop{Text}{illustration}

Stefan

01mf02
22-09-2009, 22:17
Danke Stefan, das hat jetzt alle meine LaTeX-Probleme gelöst!

Schöne Grüße aus Tirol!