graphik am paragraphanfang umflossen

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: graphik am paragraphanfang umflossen

von flying sheep » Mo 22. Jun 2009, 13:08

grandios, du bist genial.
mit parshape hab ich auch schon rumgepfuscht, aber nix hingekriegt.

und mit
\newcommand{\iconsword}[1]{
  \icon[4 % Es folgen Angaben für min. 4 Zeilen
	3.5em \dimexpr \linewidth-3.5em\relax % 1. Zeile 3.5em einrücken und entsprechend kürzen
	2.5em \dimexpr \linewidth-2.5em\relax % 2. Zeile 2.5em einrücken und entsprechend kürzen
	1.5em \dimexpr \linewidth-1.5em\relax % 3. Zeile 1.5em einrücken und entsprechend kürzen
	0em \linewidth % ab der 4. Zeile nicht mehr einrücken und volle Länge
  ]{#1}
}
lässt sich auch für mehrere ähnliche grafiken der selbe shape benutzen.
danke, danke, danke!

von KOMA » Mo 22. Jun 2009, 11:16

Da für TeX die Abbildung einfach nur ein rechteckiger Kasten ist, gibt es kein Paket und wird es vermutlich auch in den nächsten Jahren kein Paket geben, dass die tatsächliche Form der Abbildung analysiert, und entsprechend dieser Form einen Umfluss ermöglicht. TeX selbst bietet aber mit \parshape eine Anweisung, die es erlaubt die Form eines Absatzes zu verändern. Damit wäre es möglich, so etwas manuell zu machen:
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\usepackage{graphicx}

\makeatletter
\newcommand{\icon}[2][\relax]{ 
  \noindent
  \ifx\relax#1\relax% Wenn das optionale Argument nicht verwendet wird oder
                    % leer ist, oder \relax ist, dann wird von einer
                    % quadratischen Abbildung ausgegangen.
    \hangindent=3.5em
    \hangafter=-3
    \hskip-3.5em
    \raisebox{\dimexpr\ht\strutbox-\totalheight}[\ht\strutbox][\dp\strutbox]{%
      \includegraphics[width=3em,height=3em]{#2}%
    }%
    \enskip
  \else
    % Das optionale Argument enthält eine korrekte \parshape-Angabe
    \raisebox{\dimexpr\ht\strutbox-\totalheight}[\ht\strutbox][\dp\strutbox]{%
      \includegraphics[width=3em,height=3em]{#2}%
    }\par\nobreak\vskip\dimexpr-\baselineskip-\parskip\relax\nobreak
    \parshape #1
    \noindent
  \fi
  \ignorespaces
}
\makeatother

\begin{document}

\icon{sword}\blindtext

\icon[4 % Es folgen Angaben für min. 4 Zeilen
        3.5em \dimexpr \linewidth-3.5em\relax % 1. Zeile 3.5em einrücken und entsprechend kürzen
        2.5em \dimexpr \linewidth-2.5em\relax % 2. Zeile 2.5em einrücken und entsprechend kürzen
        1.5em \dimexpr \linewidth-1.5em\relax % 3. Zeile 1.5em einrücken und entsprechend kürzen
        0em \linewidth % ab der 4. Zeile nicht mehr einrücken und volle Länge
]{sword}\blindtext

\end{document}
Das ganze funktioniert in dieser trivialen Form nur, wenn der erste Absatz lang genug ist. Anderenfalls wird nicht etwa unter dem Bild weitergemacht, sondern ggf. mit dem nächsten Absatz in das Bild hineingeschrieben. Es funktioniert auch nur korrekt, wenn am Ende der Seite noch genügend Platz vorhanden ist. Sonst wird das Bild ggf. in den unteren Rand hineingemalt. Man könnte zumindest das ändern, indem man dem Bild mehr Höhe gibt (\raisebox) und dafür den negativen \vskip größer macht.

Dein Problem mit Umbruch nach Überschrift wird von wrapfigure verursacht. Dein Problem mit \paragraph liegt daran, dass auf dieser Ebene Spitzmarken gesetzt werden und keine Überschriften-Zeilen. Diese Ebene ist also ggf. umzudefinieren.

graphik am paragraphanfang umflossen

von flying sheep » So 21. Jun 2009, 22:42

ich habe ein vllt. größeres problem:

Bild

das obere ist, wie es aktuell aussieht, das untere ein mockup, wie es aussehen soll (die roten × ausgeschlossen, das kann xetex besser als gimp)

hier mein bisheriger ansatz, der für das formen natürlich nicht taugt:
\newcommand{\icon}[1]{
  \noindent
  \begin{wrapfigure}{l}{2.6em}
	\vspace{-2.3em}
	\begin{center}
	  \includegraphics[width=3em,height=3em]{#1}
	\end{center}
	\vspace{-2em}
  \end{wrapfigure}
}
zusammengefasste probleme:
  1. zwischen einer überschrift und einem icon entsteht manchmal ein seitenumbruch (nopagebreak liefert keine bis komische ergebnisse)
  2. bei paragraphs (wie hier) wird die absatzüberschrift über die ganze zeile gestreckt
  3. ich habe eine geringe anzahl von formen (kreise, schwerter wie dieses hier, 2 dolche, …), für die ich einzelne abstände definieren könnte (wie beim schwert im mockup gezeigt), dass sich der textumfluss der grafikform anpasst. aber ich weiß nicht, wie.

Nach oben