szövegdoboz beillesztése páros és páratlan oldalak szerint

Fórumok

Sziasztok.

Régi dolgaimat tovább fejlesztgettem. Célom annak idején egy olyan szövegdoboz beágyazása volt a szövegbe, ami egy definíciót vagy egy rövidebb leírást tartalmazott. Ez úgy néz ki a legjobban, ha mondjuk a kötésmargónál helyezkedik el. Ez egy ifthen csomag használatát is igényli.

Sok idő telt el, mire rájöttem, hogy a wrapfigure csomaggal tudom mindezt megvalósítani, csakhogy jöttek a fattyúsorok, meg a lap alján a túlnyúlás. Ezeket sikerült az alábbiakban megoldani:

\documentclass{book}
\usepackage{wrapfig}
\usepackage{lipsum}
\usepackage{ifthen}
\usepackage{changepage}

\newsavebox\curwrapfig
\makeatletter
\long\def\wrapfiguresafe#1#2#3{%
  \sbox\curwrapfig{#3}%  %% itt illesztem be a szöveget
  \par\penalty-100%
  \begingroup % preserve \dimen@
    \dimen@\pagegoal \advance\dimen@-\pagetotal % space left
    \advance\dimen@-\baselineskip % allow an extra line
    \ifdim \ht\curwrapfig>\dimen@ % not enough space left
      \break%
    \fi%
  \endgroup%
  \checkoddpage% ellenorizni az oldalszamot
\ifthenelse{\boolean{oddpage}}  % IF páros oldal THEN  
%  {  \begin{wrapfigure}{#1}{#2}%
  {   PÁROS OLDAL
      \begin{wrapfigure}{R}{#2}%
      \usebox\curwrapfig%
     \end{wrapfigure}%
}  %  IF páratlan oldal ELSE
%  {  \begin{wrapfigure}{#1}{#2}%
  {   PÁRATLAN OLDAL
      \begin{wrapfigure}{L}{#2}%
      \usebox\curwrapfig%
     \end{wrapfigure}%
}  %  IF páros oldal ELSE
}
\makeatother


\begin{document}
\lipsum[1-3]
\wrapfiguresafe{}{0mm}{%
\hbox to 3cm{\vbox to 6cm{\lipsum[1]}}}    % ezen kell csak finomítani
%\centering\rule{4cm}{7cm}}   %ez működik, ha az előbbi sort letiltod
\lipsum[1-6]
szöveg vége
\end{document}

A problémám az, hogy a \wrapfiguresafe-nak három paraméter adandó át, melyben az elsőt üresen is lehet küldeni, mert az R és L betűket páros illetve páratlan oldalszám esetén kiegészíti.

Csakhogy eljutottam odáig, hogy ha paraméterként nem megy át még egy szélesség és egy magasság, akkor a fenti, 4-5 TeX-kódból összebarmolt forráskódom összeomlik, nem azt teszi, amit kéne.

A fenti példakód a gummi-ba illesztve azonnal lefordul, ha texlive-ot hesználsz

Szerintetek milyen módosítást kell végrehajtanom, ha azt akarom, hogy a \wrapfiguresafe 2-15 mondatot tartalmazva beépüljön rendesen a szövegbe? Szerintem valamit túltoltam

Hozzászólások

Egy korábbi állapot, melynél fattyúsorokat és egyebeket nem vizsgálok:

\checkoddpage
\ifthenelse{\boolean{oddpage}}  % IF páros oldal THEN
{\lipsum[1-2]
\begin{wrapfigure}{R}{5cm}
%\vspace{-10pt}
{
\begin{flushleft}
\small páros oldal -- %
\lipsum[1]
\end{flushleft}%
}
\vspace{-20pt}
\end{wrapfigure}
\lipsum[1-6]}  %  IF páratlan oldal ELSE
{\lipsum[1-4]
\begin{wrapfigure}{L}{5cm}
%\vspace{-10pt}
\begin{flushright}
\small páratlan oldal -- %
\lipsum[1]
\end{flushright}%
\vspace{-20pt}
\end{wrapfigure}
\lipsum[1-6]}

Szóval ez még működik.

10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.