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
- 58 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni