Unter Verwendung von pdfLaTeX und KOMA-Script schreibe ich an einem Buch, das auf einigen Seiten Illustrationen enthält. Zum Teil sind es ganzseitige Illustrationen, zum Teil aber bleiben Teilbereiche einer solchen Seite frei. Die freien Bereiche sollen für die Textausgabe genutzt werden. Bei Einfügen der Illustrationen als Hintergrundgrafik und unter Verwendung der KOMA-Script-Umgebung Meine Frage ist, ob es da eine elegantere Lösung gibt, die automatisch für die richtige Verteilung des Textes auch auf den Seiten mit Illustrationen sorgt, indem man irgendwie den für Text freien Bereich einer solchen Seite definiert. Nachfolgend ein kleines Code-Beispiel, das das Problem verdeutlicht. Das benötigte Testbild kann hier heruntergeladen werden. Im Beispiel ragt der Text in die Illustration hinein - genau das soll vermieden werden. Öffne in Overleaf
\documentclass[fontsize=11pt,paper=a5,headsepline,titlepage,footlines=1.2,twoside=true,parskip=false,open=any,DIV=14,BCOR=4mm,toc=flat]{scrbook} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[german]{babel} \usepackage{graphicx} \usepackage{wallpaper} \usepackage{lipsum} \usepackage[headsepline=0.0pt,footsepline=1.0pt,plainheadsepline=on,plainfootsepline=on,autooneside=false,automark]{scrlayer-scrpage} \usepackage{bookmark} \usepackage{indentfirst} \usepackage[pages=some]{background} % Header specification \chead[]{} \frenchspacing \newcommand\Chapter[2]{ \addchap[#1, {\itshape#2}]{\Large#1\\[2mm]\large\itshape#2} } \ifoot[\scriptsize Testbuch mit Illustrationen]{\scriptsize Testbuch mit Illustrationen} \begin{document} \frontmatter \begin{titlepage} \begin{center} \bfseries \Huge Buch mit Illustrationen \end{center} \end{titlepage} \addtocontents{toc}{\protect{\pdfbookmark[0]{\contentsname}{toc}}} \tableofcontents \mainmatter \pagestyle{plain.scrheadings} \Chapter{X-tes Kapitel}{in dem eine Illustration vorkommt} \lipsum[1-2] \pagebreak \thispagestyle{empty} \backgroundsetup{placement=bottom,opacity=1,contents={\includegraphics[scale=0.1]{testbild.png}}} \BgThispage \begin{addmargin}[0mm]{52mm} \lipsum[1] \end{addmargin} \pagebreak \lipsum[1-2] \backmatter \end{document} |
Die Frage:
kann man in dieser Allgemeinheit AFAIK für LaTeX weitgehend mit nein beantworten. Es gibt zwar Lösungen für die Beeinflussung des Textflusses um Objekte herum, beispielsweise: Öffne in Overleaf
\documentclass[fontsize=11pt,paper=a5,headsepline,footlines=1.2,open=any,DIV=14,BCOR=4mm,toc=flat]{scrbook} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[german]{babel}% Wirklich nicht ngerman? \usepackage{graphicx} \usepackage{wallpaper} \usepackage{lipsum} \usepackage[headsepline=0.0pt,footsepline=1.0pt,plainheadsepline=on,plainfootsepline=on,autooneside=false,automark]{scrlayer-scrpage} \usepackage{bookmark} \usepackage{indentfirst} \usepackage[pages=some]{background} \usepackage{cutwin} % Header specification \chead[]{} \frenchspacing \newcommand\Chapter[2]{ \addchap[#1, {\itshape#2}]{\Large#1\\[2mm]\large\itshape#2} } \ifoot[\scriptsize Testbuch mit Illustrationen]{\scriptsize Testbuch mit Illustrationen} \begin{document} \frontmatter \begin{titlepage} \begin{center} \bfseries \Huge Buch mit Illustrationen \end{center} \end{titlepage} \addtocontents{toc}{\protect{\pdfbookmark[0]{\contentsname}{toc}}} \tableofcontents \mainmatter \pagestyle{plain.scrheadings} \Chapter{X-tes Kapitel}{in dem eine Illustration vorkommt} \lipsum[1-2] \pagebreak \thispagestyle{empty} \backgroundsetup{placement=bottom,opacity=1,contents={\includegraphics[scale=0.1]{testbild.png}}} \BgThispage \begin{addmargin}[0mm]{52mm} \lipsum[1] \end{addmargin} \pagebreak \lipsum[1-2]\lipsum[2] \newpage \backgroundsetup{placement=bottom,opacity=1,contents={\includegraphics[scale=0.1]{testbild.png}}} \BgThispage \opencutright \begin{shapedcutout}{0}{23}{% .58\textwidth, .58\textwidth, .59\textwidth, .6\textwidth, .62\textwidth, .64\textwidth, .62\textwidth, .58\textwidth, .57\textwidth, .57\textwidth, .58\textwidth, .6\textwidth, .64\textwidth, .65\textwidth, .56\textwidth, .55\textwidth, .56\textwidth, .57\textwidth, .56\textwidth, .53\textwidth, .50\textwidth, .48\textwidth, .48\textwidth } \lipsum[1] \end{shapedcutout} \end{document} Diese besitzen aber alle irgendwelche Einschränkungen. Im gezeigten Beispiel mit Zwar bietet TeX selbst durchaus die Möglichkeit, einem Absatz eine abweichende Zeilenlänge und sogar eine nicht rechteckige Form zu geben, es bietet aber nicht die Möglichkeit, dies auf Seitenebene auszuweiten und somit automatisch auf den Teil von (mehreren) Absätzen anzuwenden, der beim Umbruch von einer bestimmten Form betroffen ist. Damit müsste man immer irgendwie manuell nachsteuern, wenn sich die Textverteilung auf den Seiten verändert. Will man einen automatischen Textfluss über Seiten mit unterschiedlichen bedruckbaren Bereichen, ist ein DTP-Programm LaTeX eindeutig überlegen. Bezüglich des in einem Kommentar zu Frage geäußerten Problems eines Konflikts von Übrigens kann beantwortet 24 Apr '18, 12:06 gast3 Das ist eher so etwas wie ein sehr langer Kommentar, da es das eigentliche Problem nicht löst, sondern eher darauf hinweist, dass eine generelle Lösung schwer möglich ist.
(24 Apr '18, 12:07)
gast3
|
LaTeX ist kein DTP-Programm. Am Ende wirst du bei sowas nicht um manuelle Eingriffe herumkommen. Daher ist der beste Rat: Fange damit erst an, wenn der Text steht. Falls es dir um die äußere Form des Textes geht: mit parshape kann man auch andere Formen als Quadrate festlegen. Siehe z.B. http://www.ctan.org/pkg/shapepar
Schon klar, dass LaTeX kein DTP-Programm ist. Es geht mir ja auch eigentlich nicht um individuelle Gestaltung einzelner Seiten, sondern Fließtext auf Seiten mit Illustration am linken o. rechten Rand möglichst automatisch auf einen rechteckigen Bereich einzugrenzen, der nicht in die Illustration hineinreicht.
Für Illustrationen am oberen oder unteren Rand einer Seite funktioniert das mit einer figure-Umgebung (Position top od. bottom) problemlos.
Die Frage bleibt, ob es für die Positionierung einer Illustration am linken oder rechten Rand einen entsprechenden Mechanismus gibt.
Zwischenzeitlich habe ich ein bisschen weiter recherchiert. Und die Frage, die Ränder einzelner Seiten anpassen zu wollen, kommt nach meinem Eindruck gar nicht mal so selten vor. In den Fällen, wo Lösungen angegeben wurden, basieren diese zumeist auf dem geometry-Paket.
Aber wenn ich eine usepackage{geometry} Anweisung hinzufüge, ändert sich das komplette Layout - offensichtlich, weil KOMA-script das Layout über das typearea-Paket bestimmt und das dann irgendwie in Konflikt mit dem geometry-Paket steht.