Grafik, die auf die verbleibende Breite skaliert wird

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Grafik, die auf die verbleibende Breite skaliert wird

von markus_123 » Do 22. Sep 2011, 19:08

Perfekt! Danke.

Die "kritische" Version ist
\mypic{Testbild}{\includegraphics[height=5cm]{Testbild}}
bei der ich also gar nicht weiß, wie breit das Bild wird (wenn ich nicht vorher den Taschenrechner bemühe und ein fixes Seitenverhältnis habe).

Ich hatte selber \widthof{...} ausprobiert, aber ohne eine Länge zu definieren, direkt im width=... Das scheint nicht zu gehen.

Danke für die Hilfe!

Markus

von Xenara » Mi 21. Sep 2011, 12:04

Man kann mit \widthof arbeiten. Hier mal ein Vorschlag, trifft das deine Idee?
\documentclass{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}	

\usepackage{calc} 
\usepackage{graphicx}
\usepackage{blindtext}

\newlength{\tmpmywidth}

\begin{document} 

\blindtext

% Befehl \mypic{Bild links}{\includegraphics[...]{Bild rechts}}
% Bild links (nur den Dateinamen eingeben) wird mit fixer Höhe (hier: 3cm) auf die passende Breite skaliert
% Bild rechts muss mit \includegraphics eingegeben werden, da sonst die fixe Breite nicht bekannt ist.
\newcommand{\mypic}[2]{%
\setlength{\tmpmywidth}{\textwidth-\widthof{#2}}%
\noindent\includegraphics[width=\tmpmywidth, height=3cm]{#1}#2%
}


\mypic{Testbild}{\includegraphics[width=10cm, height=5cm]{Testbild}}

\blindtext

\mypic{Testbild}{\includegraphics[width=1cm]{Testbild}}

\mypic{Testbild}{\rule{5cm}{1cm}}

\end{document} 
Oder, damit die Eingabe mal mit mal ohne includegraphics nicht so verwirrend ist, gehts auch so. Dann muss aber zwingend die Variable \tmpmywidth als Bildbreite gesetzt werden (sonst wird nicht skaliert):
\documentclass{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}	

\usepackage{calc} 
\usepackage{graphicx}
\usepackage{blindtext}

\newlength{\tmpmywidth}

\begin{document} 

\blindtext

% Befehl \mypic{\includegraphics[width=\tmpmywidth]{Bild links}}{\includegraphics[...]{Bild rechts}}
\newcommand{\mypic}[2]{%
\setlength{\tmpmywidth}{\textwidth-\widthof{#2}}%
\noindent#1#2%
}

\mypic{\includegraphics[width=\tmpmywidth, height=3cm]{Testbild}}{\includegraphics[width=10cm, height=5cm]{Testbild}}

\blindtext

\mypic{\includegraphics[width=\tmpmywidth, height=3cm]{Testbild}}{\includegraphics[width=1cm]{Testbild}}

\mypic{\includegraphics[width=\tmpmywidth, height=3cm]{Testbild}}{\rule{5cm}{1cm}}

\end{document} 

Danke!

von markus_123 » Mi 21. Sep 2011, 11:38

Danke!

Das beantwortet meine Frage und funktioniert einwandfrei in dem Kontext, wo ich es brauche.

Eine kleine Herausforderung noch dazu:

Geht das auch, wenn die Breite des rechten Objekts nicht im Vorhinein bekannt ist?

Markus

von bloodworks » Di 20. Sep 2011, 21:34

Heu Skater, ich hoffe du hast nix dagegen, wenn ich dein Beispiel etwas gepimmt habe:
\documentclass{scrartcl}

\usepackage{calc}

\begin{document}

\begingroup
\parindent0pt
\rule{10em}{10em}%hier wichtig!
\rule{\textwidth-10em}{10em}
\par
\endgroup
% Jetzt mit einstellbarem abstand
\newlength{\abst}
\setlength{\abst}{1cm}
\begingroup
\parindent0pt
\rule{10em}{10em}%
\hspace{\abst}\rule{\textwidth-10em-\abst}{10em}
\par
\endgroup

\begingroup
\parindent0pt
\rule{\textwidth}{10em}
\par
\endgroup

\end{document}

von skater » Di 20. Sep 2011, 19:45

\documentclass{scrartcl}

\usepackage{calc}

\begin{document}

\begingroup
\parindent0pt
\rule{10em}{10em}
\rule{\textwidth-10em-\widthof{ }}{10em}
\par
\endgroup

\begingroup
\parindent0pt
\rule{\textwidth}{10em}
\par
\endgroup

\end{document}

Grafik, die auf die verbleibende Breite skaliert wird

von markus_123 » Di 20. Sep 2011, 13:40

Hallo,

ich möchte zwei Grafiken nebeneinander setzen. Rechts eine mit fester Breite und Höhe, links davon - unmittelbar anschließend - eine, mit fester Höhe, deren Breite aber so angepasst wird, dass das Gesamtkonstrukt \textwidth breit ist.

Ich hoffe auf Vorschläge von Leuten, die so was schon mal gemacht haben, bin aber natürlich für alle Ideen offen - mit meinen eigenen Ideen bin ich leider zu nichts brauchbarem gekommen.

Danke
Markus

Nach oben