[cstex] Řešení potíží se zlomem v odstavcích

Jan Sustek Jan.Sustek at seznam.cz
Tue Sep 1 15:35:13 CEST 2015


Dobrý den,

hrál bych si pouze s parametrem \emergencystretch. Měnil bych ho postupně 
například 12pt->24pt->48pt->96pt.

Pomocí \right/lefthyphenmin situaci zlepšíte pouze v případě hodně úzkých 
sloupců. V případě sazby na celou šířku stránky (tj. bez sloupců) si 
nedokážu představit, že by to mohlo pomoct.

Zvýšením \tolerance řekněme na 1000 bude TeX hledat i takové řádkové zlomy, 
kde budou třeba na několika řádcích mezislovní mezery více široké. Ovšem 
není zaručeno, že se takový řádkový zlom najde. Oproti tomu zvýšení \
emergencystretch může vést k tomu, že TeX najde řádkový zlom s jedním řádkem
s velmi širokými mezislovními mezerami. Šance, že se takový zlom najde, je 
větší. I když píšu o velmi širokých mezerách, jsou užší než často vídané 
mezery v dominantním programu na psaní textu. :-)

S pozdravem
Jan Šustek


---------- Původní zpráva ----------
Od: Marcel Svitalský <marcel.svitalsky at centrum.cz>
Komu: Czech and Slovak TeX-related mailing list <cstex at cs.felk.cvut.cz>
Datum: 1. 9. 2015 12:06:49
Předmět: [cstex] Řešení potíží se zlomem v odstavcích

"
(Tento dotaz jsem postnul na tex.stackexchange.com, ale s dovolením se 
zeptám i zde.)

Dobrý den,

pracuji teď na větším projektu s textem, jejž naprosto nemohu měnit, takže 
občas narážím na problémy se zlomem. Vytvořil jsem si tedy následující makro
pro plain i LaTeX (jehož užití samozřejmě předpokládá, že už je nastaveno 
hyphenation atp.):

" \def\emergency #1 #2\par{% 
\begingroup 
    \ifcase #1 
        \message{Emergency level 0 does nothing at all.}% 
    \or 
        \tolerance = 250 
        \message{Emergency level 1: increasing \string\tolerance\space to \
the\tolerance.}% 
    \or 
        \tolerance = 300 
        \message{Emergency level 2: increasing \string\tolerance\space to \
the\tolerance.}% 
    \or 
        \tolerance = 300 
        \righthyphenmin = 2 
        \message{Emergency level 3: increasing \string\tolerance\space to \
the\tolerance, 
                 decreasing \string\righthyphenmin\space to \the\
righthyphenmin.}% 
        \message{You might need to set hyphenation properly for this 
emergency level to work.}% 
    \or 
        \righthyphenmin = 2 
        \emergencystretch = 5pt 
        \message{Emergency level 4: increasing \string\emergencystretch\
space to \the\emergencystretch, 
                 decreasing \string\righthyphenmin\space to \the\
righthyphenmin.}% 
        \message{You might need to set hyphenation properly for this 
emergency level to work.}% 
    \or 
        \righthyphenmin = 2 
        \emergencystretch = 8pt 
        \message{Emergency level 5: increasing \string\emergencystretch\
space to \the\emergencystretch, 
                 decreasing \string\righthyphenmin\space to \the\
righthyphenmin.}% 
        \message{You might need to set hyphenation properly for this 
emergency level to work.}% 
    \else 
        \errmessage{Emergency level #1 not supported!}% 
    \fi 
    #2 
    \par 
\endgroup 
} 
" 
Předpoklad je takový, že makro umístím na začátek odstavce, jenž dělá 
problémy, a vyzkouším postupně hodnoty od jedné do pěti.

" ...předchozí odstavec.

\emergency 1 % nebo 2, 3 až 5
Text odstavce, jenž se chová nehezky a odmítá se pěkně zlomit...

" Nejsem ale v nastavování těchto parametrů příliš zkušený (načrtl jsem to 
narychlo po nahlédnutí do TBN) a jsem trochu v časovém stresu, proto bych 
byl vděčný, kdyby se kdokoli zkušenější na to případně podíval a posoudil, 
zda jsou ty kroky přiměřeně rovnoměrné nebo naopak možná je některý příliš 
hrubý, zda by to nešlo někde lépe atd. apod.

Děkuji a zdravím
Marcel Svitalský


-- 
Marcel Svitalský  

_______________________________________________
csTeX mailing list
csTeX at cs.felk.cvut.cz
https://lists.felk.cvut.cz/mailman/listinfo/cstex"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.felk.cvut.cz/pipermail/cstex/attachments/20150901/48142f55/attachment-0003.html>


More information about the csTeX mailing list