Cislovani stranek
Petr Sojka
sojka at daeron.fi.muni.cz
Tue Jan 7 20:20:39 CET 1997
"Michal Kubecek wrote:"
: > Slo o to, ze jsme chteli zarovnat tento napis bud doleva, pokud byl na
: > sude strance, nebo doprava, pokud byl na leve.
: > Podle hodnoty citace \page, nebo \pageno, ted si nejsem jist, jsme
: > zjistovali (slo o LaTeX), zda je stranka licha nebo suda.
: >
: > A ted ten problem: Kdyz bylo makro v textu kousek pred koncem strany,
: > utvoril se prislusny box se zahlavim kapitoly s prislusnym zarovnanim
: > podle bezne strany, ale protoze TeX zjistil, ze uz to nevleze na danou
: > stranu, dal ho az na nasledujici. Coz melo za nasledek, ze zahlavi na sude
: > strance bylo zarovnano doprava a naopak. Tedy spatne.
:
: Mozna, ze je to pokrocilou denni dobou, ale napadaji mne jen dve
: reseni, ani jedno moc pekne.
:
: (a) Zjistit si, jestli nejsem na strance moc nizko a pokud ano,
: odstrankovat si sam. Jak se to dela drevorubecky i elegantne, to
: tu nedavno probehlo. Osobne bych tomuto reseni daval prednost, da
: se tim zabranit i tomu, aby se zalomila stranka neprijemne brzy
: po zacatku nove kapitoly.
To je dobre v pripade nadpisu, ale podobne techniky je casto
potreba pouzit i pro umistovani obrazku; pak je problem
urcit "moc nizko" a navic obrazky plovou.
:
: (b) Vyuzit chovani \write a resit to analogicky, jako se delaji
: dopredne reference. Nejspis by slo vyuzit primo mechanismu, jak
: je dela LaTeX (abyste si nemusel otevirat vlastni pomocny soubor
: a delat vsechno kolem), ale detaily vam nereknu, protoze nevim,
: co a jak presne LaTeX dela.
zda se ze toto funguje (je treba dokument prelozit 2x) :
\begin{filecontents}{lrexample.tex}
% ukazka zarovnavani obrazku/textu doleva/doprava
% v zavislosti na lichosti/sudosti citace stranek v LaTeXu
% Petr Sojka
\documentclass{article}
\usepackage{ifthen}
\newcounter{labelnum} \setcounter{labelnum}{0}
\newcommand{\genlabel}%pomocne makro pro demonstraci,
%generuje automaticky odkaz
{\refstepcounter{labelnum}
\label{\thelabelnum}
}
\makeatletter
\newcommand{\lrnadpis}[1]{%
\hbox to \textwidth{\genlabel %poznacime si \label nadpisu
\edef\cislostrankyodkazu{\@ifundefined{r@\@currentlabel}
{0}% prvni beh latexu, odkaz nedefinovan
{% cislo stranky (bezneho) odkazu z predchoziho behu
\expandafter\expandafter\expandafter
\@secondoftwo\csname r@\@currentlabel\endcsname}}
\ifodd\cislostrankyodkazu \let\lss=\relax\let\rss=\hss
\else \let\rss=\relax\let\lss=\hss
\fi
\lss #1 \rss}}
\makeatother
\begin{document}
\whiledo{\not\(\value{page}=3\)}{\lrnadpis{obrazek ci nadpis}}
\end{document}
\end{filecontents}
Petr Sojka
: Michal Kubecek
More information about the csTeX
mailing list