Bilder über Rand hinaus ausgeben Thema ist als GELÖST markiert

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


Teddytrombone

Bilder über Rand hinaus ausgeben

Beitrag von Teddytrombone »

Hallo zusammen!

Ich habe folgendes Problem: ich möchte Bilder (müssen nicht zwingend in einer figure-Umgebung sein) so ausgeben, dass eine Seite des Bild bündig mit dem Text ist, die andere Seite des Bilds bündig mit dem Seitenrand ist. Hier ein Bild zur Veranschaulichung, wie ich mir das vorstelle: Bild

Ich habe auch schon ein paar Sachen aus dem Netz zusammengetragen, und bin dadurch auf folgendes Mini-Beispiel gekommen (statt \rule soll dann später mal ein Bild mittels \includegraphics rein):
\documentclass[a5paper,pagesize,DIVcalc,BCOR=6.5mm,twoside]{scrreprt}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{float}
\usepackage{chngpage}

\begin{document}
\lipsum[1]
\begin{figure}[H]
 \checkoddpage
 \ifcpoddpage
  \newcommand{\side}{l}
 \else
  \newcommand{\side}{r}
 \fi
 \makebox[\textwidth][\side]{% 
    \rule{1.2\textwidth}{5cm}
 }
\caption{Testfigure}
 \label{fig:graphiclabel}
\end{figure}
\lipsum[1-4]
\end{document}
[/img]

Das Problem, das ich jetzt habe, ist, dass, egal welchen Wert ich statt \rule{1.2\textwidth} eingebe, das Bild nie mit dem Seitenrand bündig ist. Einmal steht es etwas drüber, ein anderes Mal ist es etwas zu schmal.

Natürlich könnte ich mittels geometry genaue Abstände definieren, aber erstens gefällt mir die automatische Berechnung des Layouts mittels DIVcalc und BCOR besser, und zweitens kann es sein, dass sich die Abstände noch ändern (z.B. die Bindekorrektur).

Gibt es eine Möglichkeit, die von mir benötigte Breite genau berechnen zu lassen? Ich hätte zwar schon probiert, bei der width im \includegraphics-Befehl \textwidth-\oddsidemargin rein zu schreiben (was beim \rule leider nicht geht), aber wie gesagt, die Breite passt dann trotzdem nicht.

Hat wer eine Idee?

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

\documentclass[a5paper,pagesize,DIVcalc,BCOR=6.5mm,twoside]{scrreprt}
\usepackage[demo]{graphicx}
\usepackage{lipsum}
%\usepackage{capt-of}% für alte KOMA-Script-Versionen
\begin{document}
\lipsum[1]
\begin{addmargin*}[0pt]{\dimexpr
  -\paperwidth+\oddsidemargin+1in+\textwidth\relax}
  \noindent\begin{minipage}{\linewidth}
    \includegraphics[width=\linewidth]{Test}
    \captionof{figure}{Testabbildung}
    \label{fig:test1}
  \end{minipage}
\end{addmargin*}
\lipsum[2-4]
\begin{addmargin*}[0pt]{\dimexpr
  -\paperwidth+\oddsidemargin+1in+\textwidth\relax}
  \noindent\begin{minipage}{\linewidth}
    \includegraphics[width=\linewidth]{Test2}
    \captionof{figure}{Testabbildung 2}
    \label{fig:test2}
  \end{minipage}
\end{addmargin*}
\lipsum[5]
\end{document}
\documentclass{scrbook}
\usepackage{graphicx}
\begin{document}
\begin{figure}
   \begin{captionbeside}[i]{Triumphbogen}
      \includegraphics[width=.7\textwidth]{Triumphbogen.jpg}
   \end{captionbeside}
   \end{figure}
\end{document}
Wenn man die Abbildungen nicht gleiten lassen will. Wenn man die Abbildungen gleiten lassen will, packt man die addmargin-Umgebungen einfach jeweils in eine figure-Umgebung. Dinge wie float oder chngpage kann man sich jedoch sparen. KOMA-Script bietet mit \captionof, addmargin, \ifthispageodd etc. alles, was man für die Lösung des Problems braucht. e-TeX (heute basiert jedes LaTeX auf e-TeX) liefert mit \dimexpr die Matheunterstützung, die man braucht, um die Breite des äußeren Randes auszurechnen, wobei das auf der linken Seite nur deshalb funktioniert, weil der linke Rand mit \evensidemargin+1in genauso groß ist wie der rechte Rand auf einer rechten Seite, den ich oben berechnet habe. ;-)

Antworten