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