PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bild neben Text mit automatischer Textbreite



msthab
18-07-2016, 11:36
Ich möchte sehr oft einen Text links neben einem Bild platzieren. Dabei sind die Bilder immer unterschiedlich groß und der Text unterschiedlich lang.
Das ist eigentlich kein Problem, ich kann einfach zwei Minibox nebeneinander setzen. Was mich daran stört, ist aber der Aufwand. Ich muss zuerst das Bild skalieren und dann die beiden Boxen (für Text links und Bild rechts) auf die richtige Breite bringen. Wenn ich dann das Bild austauschen möchte geht alles von vorne los.

Ich suche einfach eine Möglichkeit , dass Latex die Textbreite der Minibox für den Text anhand der Breite des Bildes automatisch berechnet. Mit wrapfigure geht das, macht mir aber andere Probleme beim Seitenumbruch und/oder wenn das Bild zu "lang" ist. Dann muss ich wieder von Hand "nachjustieren". Ein automatisches Umfließen des Bildes braucht ja auch nicht stattfinden.

Hinweis: Wenn es denn funktioniert, möchte ich daraus ein Makro definieren und es in Lyx verwenden.
Hier das Minimalbeispiel


\documentclass[11pt,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{babel}
\setlength{\parskip}{\smallskipamount}
\setlength{\parindent}{0pt}

\begin{document}

\parbox[b]{0.7\columnwidth}{%
Hier steht viel oder wenig Text. Dabei soll die Textbreite automatisch nach der verbleibenden Restbreite der Seite neben dem Bild angepasst werden. D.h. der hier noch verwendete Parameter \texttt{0.7\textbackslash{}columnwidth} soll entfallen und automatisch berechnet werden.
Der Text soll auch andere Elemente enthalten, wie z.B. Listen
\begin{enumerate}
\item Listeneintrag 1
\item Listeneintrag 2
\end{enumerate}
%
Ferner sollte der Text oben, neben dem Bild platziert werden und nicht wie hier unten.
}
\hfill
\mbox{\includegraphics{Bild.jpg}}

Die Position des nächsten Absatzes soll sich nach der jeweils längeren Komponente (Bild oder Text) richten und einfach unterhalb des längsten starten und wieder die ganze normale Seitenbreite in Anspruch nehmen

\end{document}
6204

u_fischer
18-07-2016, 12:32
\documentclass[11pt,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{babel}
\setlength{\parskip}{\smallskipamount}
\setlength{\parindent}{0pt}

\newlength\mylength

\newcommand\textnebenbild[2]{%
\par\settowidth{\mylength}{#2}%
\parbox[t]{\dimexpr\linewidth-\mylength-0.5cm}
{#1\unskip\strut}\hfill\raisebox{\dimexpr-\height+\ht\strutbox}{#2}\par}

\begin{document}

\textnebenbild{%
Hier steht viel oder wenig Text. Dabei soll die Textbreite automatisch nach der verbleibenden Restbreite der Seite neben dem Bild angepasst werden. D.h. der hier noch verwendete Parameter \texttt{0.7\textbackslash{}columnwidth} soll entfallen und automatisch berechnet werden.
Der Text soll auch andere Elemente enthalten, wie z.B. Listen
\begin{enumerate}
\item Listeneintrag 1
\item Listeneintrag 2
\end{enumerate}
%
Ferner sollte der Text oben, neben dem Bild platziert werden und nicht wie hier unten.
}
{\includegraphics[width=4cm]{example-image-A}}

Die Position des nächsten Absatzes soll sich nach der jeweils längeren Komponente (Bild oder Text) richten und einfach unterhalb des längsten starten und wieder die ganze normale Seitenbreite in Anspruch nehmen


\textnebenbild{Hier steht viel oder wenig Text.}
{\includegraphics[width=4cm]{example-image-A}}



Die Position des nächsten Absatzes soll sich nach der jeweils längeren Komponente (Bild oder Text) richten und einfach unterhalb des längsten starten und wieder die ganze normale Seitenbreite in Anspruch nehmen
\end{document}

Man kann natürlich auch eine tabularx nehmen.

msthab
20-07-2016, 08:13
Super!
Vielen Dank! Genau das habe ich gesucht.