Eliminace svisle mezery podle nasledujiciho (plain)

MatějPolách matej.polach at centrum.cz
Wed Mar 10 09:43:09 CET 2004


> Nesetkali jste se s tim? Neni nejake jednodussi reseni? Co delam blbe?
>

Odpovim si sam (castecne), aniz se prestavam ptat. Zkousel jsem i otestovat \lastskip a podle toho dat \removelastskip nebo ne. To pracuje, jen pokud je podnadpis po nadpisu. Pokud dam ten nadpis po textu, nedostanu tam ten \vskip a podnadpis je namackany hned za textem. 

Co s tim, prosim? Dole je okomentovana ukazka. (Pravda, ti, kdo jsou schopni mi poradit, komentar nepotrebuji.)

Dik, hezky den

Josef

%%%%%%%%%%%%%%%
%%% csplain
\chyph\nopagenumbers
\font\fvelky=csb17
\font\fstredni=csb12

\def\nadpis#1\par{\removelastskip\bigskip\noindent\fvelky#1\par\nobreak\medskip\rm\noindent}
%podnadp je blbě
\def\podnadp#1\par{\removelastskip\bigskip\noindent\fstredni#1\par\medskip\rm\noindent}
%podnadpis je částečně ošetřený, ale furt to není ono
\def\podnadpis#1\par{\ifdim\lastskip>\smallskipamount
    \removelastskip\bigskip\fi
%když dám \removelastskip\fi\bigskip, tak je bigskip v obou případech a 
%stará mezera se neodstraní s \else to vypadá stejně
    \noindent\fstredni#1\par\medskip\rm\noindent}

\nadpis Varianta s textem pod sebou

Tak to vypadá, když o nic nejde. Schválně jsem tam dal větší vskipy, aby to šlo dobře poznat, přestože to nevypadá hezky.

\nadpis Varianta bez ošetření mezery

\podnadp Nějaký podnadpis

Takto je mezera\uv{hnusně} veliká.

\nadpis Varianta s podnadpisem pod sebou s ošetřenou mezerou

\podnadpis Nějaký podnadpis

To už vypadá solidně. Test na \tt \char92lastskip \rm je jen v definici podnadpisu, protože nepředpokládám, že by nadpis vyšší úrovně byl hned za nižším, opačně to možné je. 

\podnadpis Nějaký podnadpis za textem

Nějaký text\dots

\bye








More information about the csTeX mailing list