[cstex] Formátování odstavce

Zdenek Wagner zdenek.wagner at gmail.com
Tue Oct 13 10:55:27 CEST 2009


Dobrý den,
\leavevmode obvykle nepotřebujete, je to příkaz jímž opouštíte
vertikální mód a vstupujete do módu horizontálního. Je důležitý v
případech, kdy nějaký objekt reaguje ve vertikálním módu jinak než v
horiznotálním. Například víte, že prvním elementem v odstavci může být
\hbox, který by se ve vertikálním módu zpracoval jinak. Pak vynutíte
podmíněně přechod do horizontálního režimu pomocí

\ifvmode \leavevmode \fi

Pokud potřebujete ukončit odstavec (před uzavřením skupiny, aby se
neztratilo nastavení \parshape apod.), můžete analogicky použít:

\ifhmode \par \fi

Přebytečný \par je obvykle neškodný.

V jednom ze Zpravodajů, v LaTeXové kuchařce, se věnuji změně vzhledu
nadpisů. Popisuji tam interní makro \@startsection. Pokud svá makra
nadefinujete jeho pomocí, nemusíte se již o další problému starat.
Pokud potřebujete něco komplikovanějšího, najdete také inspiraci v
příslušném Zpravodaji, včetně návodu, kam přidat \penalty. LaTeX
dokonce dočasně zakazuje stránkový zlom za prvním řádkem prvního
odstavce pod nadpisem, používá se k tomu \everypar.

2009/10/13 "Procházka Lukáš Ing. - Pontex s. r. o." <LPr at pontex.cz>:
> Zdravím v konferenci,
>
> řeším problém, jak naformátovat odstavec. Zdrojový kód (též v příloze):
>
> \documentclass{article}
>
> \begin{document}
>
>  \paragraph{AAA}
>
>  AAA
>
>
>  \paragraph{BBB}
>
>  \leavevmode\par\noindent BBB
>
>
>  \paragraph{CCC}\hspace{-1em}\footnote{fff}
>
>  \noindent CCC
>
>
>  \paragraph{DDD}\hspace{-1em}\footnote{fff}
>
>  \leavevmode\par\noindent DDD
>
> \end{document}
>
> Vygenreruje takovéto .pdf:
>
>
>
> Jde o následující:
>
> Vzhled odstavce BBB a CCC je takový, jakého bych chtěl dosáhnout, tj.:
>
> - další text po názvu odstavce pokračuje na dalším řádku s odsazením (ne
> tedy tak, jak by LaTeX chtěl - na tom samém po vložené mezeře),
> - mezi názvem odstavce a dalším řádkem je normální mezera,
> - rád bych zabránil stránkovému zlomu mezi "BBB" a "Bbb" resp. "CCC" a "Ccc"
> (ještě jsem netestoval, jak to udělat - asi pomocí \penalty{-10000}, ale
> ještě nevím, kam ji do zdrojáku umístit).
>
> Problém je v tom, že ve skutečnosti bych potřeboval řádky Bbb, Ccc sázet
> makrem (to zvládám napsat), ale nedokážu detekovat, jestli do kódu má přijít
> rovněž "\leavevmode\par" (jak je použito pro "Bbb") nebo nikoli.
>
> Případ s \footnote po \paragraph (CCC) je ve skutečnosti ojedinělý,
> standardní případ je BBB.
>
> Rovněž si nejsem jist, jestli "\leavevmode\par" je "TeXově košér", nebo je
> to nečistý trik (ale nic čistšího jsem nevymyslel).
>
> Případ DDD dokumentuje, co udělá "\leavevmode\par", když předchází
> \footnote.
>
> Ještě dodám, že bych rád použil \paragraph, protože mi tam hierarchicky
> zapadá (ve skutečnosti uvnitř \subsubsection), i když bych stejného vzhledu
> (a možná žádaného efektu s potlačením stránkového zlomu) dosáhl pomocí
> \subsubsection*.
>
> Předem děkuji za radu.
>
> Zdravím
>
> Lukáš Procházka
>
>
> --
>
> Ing. Lukáš Procházka [LPr at pontex.cz <mailto:LPr at pontex.cz>]
> Pontex s. r. o.      [www.pontex.cz <http://www.pontex.cz>]
> [pontex at pontex.cz <mailto:pontex at pontex.cz>]
> Bezová 1658
> 147 14 Praha 4
>
> Tel: (+420) 244 062 238
> Fax: (+420) 244 461 038
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz



More information about the csTeX mailing list