[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