🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.dtp.tex
21 messages
21 total messages Started by Tyler Durden Wed, 04 May 2011 18:41
book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16760
Author: Tyler Durden
Date: Wed, 04 May 2011 18:41
52 lines
2164 bytes
Problem dotyczy zwalczania wdów i sierot w klasie book/memoir oraz
parametrów \paraskip i \lineskip.

Deklarujemy:
\widowpenalty=10000
\clubpenalty=10000

Czyli bez wdów i sierot.

Pojawia siê problem bo samotna linia z do³u strony zostaje przerzucona
na stronê kolejn± i niniejszym nasza strona jest o linie krótsza.
LaTeX zamiast to jako¶ sensownie wycentrowaæ rozsuwaj±c wszystko,
rozsuwa tylko paragrafy co jest nie do przyjêcia, zreszt± w ogóle nie
chce ¿adnych dodatkowych odstêpów miêdzy paragrafami. No to:

\setlength{\parskip}{0pt}

Text jest teraz równo roz³o¿ony - nie ma dodatkowego pustego miejsca
miedzy paragrafami ale jedna strona jest o liniê krótsza u do³u co
razi. Chcê ¿eby tekst zosta³ RÓWNO rozsuniêty przez zwiêkszenie
interlinii na ca³ym obszarze pola tekstowego.
No to:

\setlength{\lineskip}{4pt plus 0.2pt minus 0.2pt}
\lineskiplimit=\baselineskip

I... qpa! Jest nieco lepiej ni¿ by³o ale nadal ¼le. Linie zostaj±
rozsuniête ale LaTeX wrêcz z³o¶liwie nie chce tego zrobiæ równo. Jakby
nie kombinowaæ parametrami na 30-32 liniowej stronie ZAWSZE, z uporem
maniaka, zostawi jedn±, a czasem dwie, linie wizualnie ró¿ni±ce siê
interlini± od reszty. Najczê¶ciej jest to jednolinijkowy paragraf -
rozsunie dobrze wszystkie du¿e paragrafy na stronie a ma³y,
jednolinijkowy (jeden z kilku - pozosta³e "zrobi" dobrze), pomiêdzy
nimi zostawi krzywo - zazwyczaj optycznie z wiêkszym odstêpem od
paragrafu pod nim i mniejszym do tego nad nim. Opadaj± mi ju¿ rêce,
powiem szczerze.

Co z tym fantem zrobiæ? Jest jaki¶ kniff by linie na stronie by³y
WSZYSTKIE, bez wzglêdu na to czy s± to linie wewn±trz paragrafu czy
pojedyncza linia tworz±ca krótki paragraf RÓWNO rozstrzelone?! Jaka¶
klasa, makro, cokolwiek?! Jaki¶ inny patent na wdowy i sieroty?!

Help plz...

(BTW: z³o¿y³ mo¿e kto¶ profesjonalnie ksi±¿ke w LaTeX i móg³by siê
zliltowaæ i udostêpniæ template?! na necie jest milion templatów do
wszystkiego tylko nie do ksi±¿ek...poci±æ siê mo¿na)

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16764
Author: Tyler Durden
Date: Thu, 05 May 2011 06:32
51 lines
1916 bytes
Dziêki za odpowied¼

> \parskip0pt \advance\baselineskip 0pt plus 0.1pt  -- tak sobie z g³upia
> frant napisa³em i nie mogê dopatrzeæ siê ró¿nic w odstêpach. Mo¿e co¶
> ¼le robiê (albo krzywo patrzê)?

Jestem pocz±tkuj±cy, mo¿e co¶ ¼le robiê?

Wpisujê:
\setlength{\parskip}{0pt}
\advance\baselineskip 0pt plus 0.1pt

Nie dzia³a. Tzn dzia³a, ale nie daje tego efektu o jaki mi chodzi:
owszem linie tekstu s± wzglêdem siebie równo roz³o¿one (tyle mia³em
ju¿ wcze¶niej) ale je¶li jedna strona ma 32 linie a s±siednia 31 to na
dole tej 31-linijkowej zostawia po prostu pust± linie... a ja chcê
¿eby jej pole tekstowe by³o w pe³ni wype³nione by optycznie nie by³o
widaæ ró¿nicy. Zwiêkszenie warto¶ci z 0.1pt nie wydaje siê dawaæ
¿adnej ró¿nicy?

> > Jaki¶ inny patent na wdowy i sieroty?!
> Zanim siê dojdzie do rozwi±zañ ostatecznych, czyli równego rozstrzeliwania
> wdów i sierot, mo¿na chwilkê po¶wiêciæ na próby zmiany d³ugo¶ci akapitów
> (za pomoc± \looseness).

Raczej odpada, niestety. W tek¶cie jest sporo dialogów lub krótkich
akapitów które przy zadanej wielko¶ci papieru, pola tekstowego  i
czcionki maj± po 2-3 linie... u¿ywaj±c \looseness czy zmieniaj±c
kerning wiêcej bym pewnie popsu³ ni¿ poprawi³, dodatkowo zajê³o by mi
to wieki ca³e... Z ró¿nych z³ych mo¿liwo¶ci, to by nie by³o wdów i
sierot a by strony czasem ró¿ni³y siê d³ugo¶ci± jednej linii wydaje mi
siê najbardziej do przyjêcia... tylko ¿eby ten diabelski LaTeX raczy³
roz³o¿yæ ten tekst RÓWNO zwiêkszaj±c interliniê na stronie na której
jest mniej linii... wiêcej mi do szczê¶cia nie potrzeba... Wydaje mi
siê ¿e to powinno byæ banalne, nie wiem czemu nie chce zadzia³aæ.. :(


Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16766
Author: Tyler Durden
Date: Thu, 05 May 2011 08:49
52 lines
1980 bytes
> A je¶li ma, powiedzmy, 30 albo 29? Eksperymentalne postawienie "\break"
> w miejscu gdzie ma nast±piæ przej¶cie do nastêpnej strony powinno to
> wyja¶niæ.

W³a¶nie o to chodzi by nie wstawiaæ przej¶cia do nowej strony rêcznie
za ka¿dym razem.
Przy wpisaniu:
\setlength{\lineskip}{4pt plus 0.2pt minus 0.2pt}
\lineskiplimit=\baselineskip
linia powinna moim zdaniem zostaæ albo odjêta albo dodana (i tak te¿
siê dzieje) i ró¿nica miêdzy stronami nigdy nie bêdzie wiêksza ni¿ 1
linia; je¶li przy normalnym, pe³nym wype³nieniu jest 31 linii, to
zwalczaj±c wdowy i sieroty LaTeX mo¿e zrobiæ 32 lub 30 linii w
zale¿no¶ci od sytuacji, ale je¶li zostan± one równo roz³o¿one na ca³±
wysoko¶æ pola tekstowego to optycznie nie powinno byæ to widoczne.
Tylko jak napisa³em w pierwszym po¶cie - wydaje mi siê ¿e
zadeklarowa³em to poprawnie a nie chce to z jakiego¶ powodu zadzia³aæ
jak trzeba (interlinie nie s± wszêdzie równe) i nie mogê doj¶æ
dlaczego.

> Domy¶lam siê, ¿e problem nie le¿y w kleju miêdzywierszowym, a w tym,
> co \output dodaje na zakoñczenie ka¿dej strony. Normalnie do sterowania
> tym dodatkiem s³u¿± polecenia \raggedbottom i \normalbottom. Polecenia
> te zdaje siê dzia³aj± równie¿ w LaTeXu, ale nie wiem czy tak samo, bo
> procedury \output zosta³y tam mocno zmienione.

Nie wiem, dó³ jest OK, wygl±da w³a¶nie jakby z tym klejem by³o co¶ nie
tak.

> \looseness niczego nie psuje, zmiana ¶wiate³ miêdzywyrazowych odbywa
> siê w granicach dopuszczonych przez inne parametry. Je¶li nie potrafi
> zmieniæ d³ugo¶ci sk³adu akapitu bez przekraczania norm, po prostu nie
> zrobi nic.

Mo¿e spróbujê - ale tak czy inaczej chcia³bym doj¶æ co jest nie tak i
czemu "mój sposób" nie dzia³a i jak to poprawiæ, lub jak uzyskaæ taki
efekt innym sposobem.

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16762
Author: =?iso-8859-2?Q?J
Date: Thu, 05 May 2011 12:34
24 lines
935 bytes
Pan Tyler Durden napisa� (ze zmiennym odst�pem mi�dzywierszowym):

> Co z tym fantem zrobi�? Jest jaki� kniff by linie na stronie by�y
> WSZYSTKIE, bez wzgl�du na to czy s� to linie wewn�trz paragrafu czy
> pojedyncza linia tworz�ca kr�tki paragraf R�WNO rozstrzelone?! Jaka�
> klasa, makro, cokolwiek?!

\parskip0pt \advance\baselineskip 0pt plus 0.1pt  -- tak sobie z g�upia
frant napisa�em i nie mog� dopatrze� si� r�nic w odst�pach. Mo�e co�
�le robi� (albo krzywo patrz�)?

> Jaki� inny patent na wdowy i sieroty?!

Zanim si� dojdzie do rozwi�za� ostatecznych, czyli r�wnego rozstrzeliwania
wd�w i sierot, mo�na chwilk� po�wi�ci� na pr�by zmiany d�ugo�ci akapit�w
(za pomoc� \looseness).

> (BTW: z�o�y� mo�e kto� profesjonalnie ksi��ke w LaTeX

Eee... gdzie�by tam profesjonalnie. W TeXu to sami amatorzy sk�adaj�.

--
Jarek

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16765
Author: =?iso-8859-2?Q?J
Date: Thu, 05 May 2011 14:22
55 lines
2441 bytes
Pan Tyler Durden napisa�:

>> \parskip0pt \advance\baselineskip 0pt plus 0.1pt �-- tak sobie z g�upia
>> frant napisa�em i nie mog� dopatrze� si� r�nic w odst�pach. Mo�e co�
>> �le robi� (albo krzywo patrz�)?
>
> Jestem pocz�tkuj�cy, mo�e co� �le robi�?

Ja LaTeXa nie u�ywam (prawie) wcale, wi�c szanse mamy wyr�wnane.

> Wpisuj�:
> \setlength{\parskip}{0pt}
> \advance\baselineskip 0pt plus 0.1pt
>
> Nie dzia�a. Tzn dzia�a, ale nie daje tego efektu o jaki mi chodzi:
> owszem linie tekstu s� wzgl�dem siebie r�wno roz�o�one (tyle mia�em
> ju� wcze�niej) ale je�li jedna strona ma 32 linie a s�siednia 31 to
> na dole tej 31-linijkowej zostawia po prostu pust� linie...

A je�li ma, powiedzmy, 30 albo 29? Eksperymentalne postawienie "\break"
w miejscu gdzie ma nast�pi� przej�cie do nast�pnej strony powinno to
wyja�ni�.

> a ja chc� �eby jej pole tekstowe by�o w pe�ni wype�nione by optycznie
> nie by�o wida� r�nicy. Zwi�kszenie warto�ci z 0.1pt nie wydaje si�
> dawa� �adnej r�nicy?

Domy�lam si�, �e problem nie le�y w kleju mi�dzywierszowym, a w tym,
co \output dodaje na zako�czenie ka�dej strony. Normalnie do sterowania
tym dodatkiem s�u�� polecenia \raggedbottom i \normalbottom. Polecenia
te zdaje si� dzia�aj� r�wnie� w LaTeXu, ale nie wiem czy tak samo, bo
procedury \output zosta�y tam mocno zmienione.

>>> Jaki� inny patent na wdowy i sieroty?!
>> Zanim si� dojdzie do rozwi�za� ostatecznych, czyli r�wnego rozstrzeliwania
>> wd�w i sierot, mo�na chwilk� po�wi�ci� na pr�by zmiany d�ugo�ci akapit�w
>> (za pomoc� \looseness).
>
> Raczej odpada, niestety. W tek�cie jest sporo dialog�w lub kr�tkich
> akapit�w kt�re przy zadanej wielko�ci papieru, pola tekstowego  i
> czcionki maj� po 2-3 linie... u�ywaj�c \looseness czy zmieniaj�c
> kerning wi�cej bym pewnie popsu� ni� poprawi�,

\looseness niczego nie psuje, zmiana �wiate� mi�dzywyrazowych odbywa
si� w granicach dopuszczonych przez inne parametry. Je�li nie potrafi
zmieni� d�ugo�ci sk�adu akapitu bez przekraczania norm, po prostu nie
zrobi nic.

Przy okazji taka ciekawostka -- mo�e si� zdarzy�, �e dopisanie czego�
do akapitu spowoduje skr�cenie sk�adu o jeden wiersz, a usuni�cie
czego� -- wyd�u�enie.

--
Jarek

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16767
Author: Krzysztof Bienia
Date: Thu, 05 May 2011 17:09
31 lines
1244 bytes
Dnia Thu, 05 May 2011 06:32:18 -0700, Tyler Durden napisał(a):

> Dzięki za odpowiedź
>
>> \parskip0pt \advance\baselineskip 0pt plus 0.1pt  -- tak sobie z głupia
>> frant napisałem i nie mogę dopatrzeć się różnic w odstępach. Może coś
>> źle robię (albo krzywo patrzę)?
>
> Jestem początkujący, może coś źle robię?
>
> Wpisuję:
> \setlength{\parskip}{0pt}
> \advance\baselineskip 0pt plus 0.1pt
>
> Nie działa. Tzn działa, ale nie daje tego efektu o jaki mi chodzi:
> owszem linie tekstu są względem siebie równo rozłożone (tyle miałem już
> wcześniej) ale jeśli jedna strona ma 32 linie a sąsiednia 31 to na dole
> tej 31-linijkowej zostawia po prostu pustą linie... a ja chcę żeby jej
> pole tekstowe było w pełni wypełnione by optycznie nie było widać
> różnicy. Zwiększenie wartości z 0.1pt nie wydaje się dawać żadnej
> różnicy?

Nie jestem pewien, czy dobrze rozumiem, ale i tak coś zaproponuję.
Spróbuj wstawić \flushbottom gdzieś na początku. To polecenie rozsuwa
nieco linijki tekstu, żeby wypełniać strony do samego dołu. O ile
rozumiem, to jest domyślnie włączone w klasie book LaTeXa. Jeśli nie
o to chodzi to przepraszam, że się wtrącam.

Pozdrawiam,
KTB

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16769
Author: Tyler Durden
Date: Thu, 05 May 2011 18:07
26 lines
951 bytes
Oka, dziêki za rady, Panowie.

\flushbottom jest chyba domy¶lnie w³±czone i w memoir i w standardowym
book - dopisa³em na wszelki wypadek, ale nic nie da³o.

Olewam sprawê - szkoda nerwów, my¶la³em ¿e uda mi siê zrobiæ fajny
szablon, który zautomatyzuje wiele rzeczy, ale albo jestem za cienki,
albo "to se ne da" jak mawiaj± bracia czesi - i chyba jednak to
drugie, bo gdyby da³o siê to ³atwo zautomatyzowaæ to sztuka sk³adania
tekstów nie by³aby sztuk± :)

Jaros³aw mia³ racje - podchodzi³em jak do je¿a do tego "\looseness=1"
- ale to dzia³a ca³kiem dobrze, je¶li tylko wybraæ odpowiedni
paragraf. Bêdê u¿ywa³ tej metody - sporo rêcznego "chrzanienia siê"
ale efekt ca³kiem niez³y (sk³ad wygl±da profesjonalnie), no i
wszystkie strony (prócz tych otwieraj±cych i zamykaj±cych rozdzia³)
maj± jednakow± ilo¶æ linii.

Jeszcze raz dzienks!


Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16768
Author: =?iso-8859-2?Q?J
Date: Thu, 05 May 2011 21:38
34 lines
913 bytes
Pan Krzysztof Bieniasz nie jest pewien, czy dobrze rozumie,
ale i tak co� zaproponuje:

> Spr�buj wstawi� \flushbottom gdzie� na pocz�tku.

Bardzo s�uszna rada.

> To polecenie rozsuwa nieco linijki tekstu, �eby wype�nia� strony
> do samego do�u.

Nie tyle rozsuwa, co umo�liwia rozsuwanie. A jeszcze dok�adniej --
uniemo�liwia dodanie �wiat�a po ostatnim wierszu na stronie. Czyli
odwrotnie ni� \raggedbottom. LaTeXowe \flushbottom robi mniej wi�cej
to samo, co wsponiane wcze�niej plainowe \normalbottom.

> O ile rozumiem, to jest domy�lnie w��czone w klasie book LaTeXa.

W pliku book.cls (na samym ko�cu) jest:

\if@twoside
\else
  \raggedbottom
\fi

Czyli ksi��ka drukowana obustronnie ma strony wyr�wnane od do�u,
a jednostronnie -- nie.

> Je�li nie o to chodzi to przepraszam, �e si� wtr�cam.

Ale� nie ma za co, prosz� bardzo.

--
Jarek

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16774
Author: Tyler Durden
Date: Fri, 06 May 2011 09:26
39 lines
1681 bytes
Hej,

> Je li wybra paragraf nieodpowiedni, to te dzia a ca kiem dobrze.
> Czyli nie dzia a wcale. W zwi zku z tym mo e by tak, e najmniej
> chrzanienia si jest wtedy, gdy piszemy w odpowiednich miejscach
> "\everypar{\looseness=1}", "\everypar{\looseness=-1}" albo
> "\everypar{\looseness=0}", najpepiej zdefiniowawszy sobie wcze niej
> te zakl cia. Definicja mo e by cho by taka:

W³a¶nie nie jest tak - przynajmniej u mnie - ¿e dzia³a zawsze dobrze,
a jak nie mo¿e to nie dzia³a - byæ mo¿e dlatego, ¿e sk³adam z
parametrem "\sloppy".

\looseness=-1 nie dzia³a mi w ogóle albo praktycznie w ogóle - akapity
s± na tyle zbite, ¿e w 99% przypadków latex nie jest w stanie ¶cie¶niæ
ich ju¿ bardziej.

\looseness=1 dzia³a prawie zawsze, ale ró¿nice s± optycznie widoczne -
na niektórych akapitach "przegina" i robi za du¿e odstêpy
miêdzywyrazowe. Paradoksalnie czasem lepiej zastosowaæ go na jedno-dwu
linijkowym ni¿ na takim na pó³ strony. (w "zbitym" jednolinijkowym
podzieli czasem ostatni wyraz, przerzuci do nastêpnej linii koñcówkê,
tyle by zakry³o wciêcie akapitowe, i optycznie jest ok, mo¿e nie jest
to najelegantsze rozwi±zanie, ale przekartkowa³em kilka wybranych na
chybi³ trafi³ ksi±¿ek i niemal w ka¿dej jest w³a¶nie co¶ takiego
stosowane - tak mi siê przynajmniej wydaje)

W sumie jak napisa³em - je¶li wybraæ odpowiedni akapit to jest ok i
optycznie wygl±da to bardzo ³adnie, a przynajmniej ja nie widzê
ró¿nicy w odstêpach. W ramach d±¿enia do perfekcji zastanowiê siê
jeszcze czy by nie przymieszaæ kerningiem...

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16771
Author: Michal Jankowski
Date: Fri, 06 May 2011 10:48
12 lines
238 bytes
Jaros�aw Soko�owski <jaros@lasek.waw.pl> writes:

> Czyli ksi��ka drukowana obustronnie ma strony wyr�wnane od do�u,

A teraz przyjdzie gajowy Marucha i za��da z�o�enia ksi��ki z
zachowaniem registru.

8-)

  MJ


Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16772
Author: =?iso-8859-2?Q?J
Date: Fri, 06 May 2011 15:42
41 lines
2132 bytes
Pan Michal Jankowski napisa�:

>> Czyli ksi��ka drukowana obustronnie ma strony wyr�wnane od do�u,
>
> A teraz przyjdzie gajowy Marucha i za��da z�o�enia ksi��ki z
> zachowaniem registru.

To trzeba wtedy le�nego ludka zapyta� o to, jaki ma stosunek do wd�w
i sierot. Pewnych rzeczy po prostu nie da si� w TeXu zrealizowa�
z automatu, a i nieautomatyczne rozwi�zanie mo�e nie by� mo�liwe bez
ingerencji w tekst.

Z TeXa jest dobry zecer, ale metrampa� s�aby (to taki go�ciu, co si�
zajmowa� rozk�adaniem zecerskiej roboty na strony). Knuth zdawa� sobie
z tego spraw� w trakcie pisania systemu, ale wiedzia�, �e pami��
komputer�w dost�pna w tamtych czasach na takie rzeczy nie pozwala�a.
Idealnym rozwi�zaniem by by�o zastosowanie algorytmu dziel�cego akapit
na wiersze do podzia�u wierszy na strony. Plus dodatkowe oddzia�ywanie
zwrotne na \looseness. Na to jednak jest ju� za p�no.

Pojawiaj� si� nie-Knuthowe modyfikacje TeXa, kt�re wiele zmieniaj�,
niewiele pomagaj�, za to burz� sp�jno�� i kompatybilno��. Ja to nazywam
psuciem. I dziwi mnie, �e komu� si� chce.

Tym bardziej dziwi mnie, �e nikomu nie przysz�o do g�owy, by swoj�
energi� przeznaczy� na wsparcie �amania stron, zamiast na jakie�
duperele zwi�zane na przyk�ad z zag�szczaniem literek. Wydaje mi si�
(tak, wydaje si� -- dok�adnie tego nie sprawdza�em), �e mo�na wprowadzi�
w procesorze zmiany, kt�re nie zburz� kompatybilno�ci (pliki DVI i LOG
b�d� tworzone tak samo), a w czasie pracy procesora zostan� (w dodatkowym
pliku) zapisane informacje, kt�re w nast�pnym przebiegu umo�liwi� lepsze
po�amanie na strony. Albo inaczej -- mo�na pr�bowa� wyci�gn�� dodatkowym
procesorem informacje z pliku DVI i wpycha� je nazad do manuskryptu.

Nic mi nie wiadomo, by kto� si� czym� takim zajmowa�. Ale ja rzadko
�ledz� to, co inni robi� w TeXu. Gdyby jednak kto� co� wiedzia� na
temat takich prac, b�d� wdzi�cny za nakierowanie na odpowiednie miejsca.

--
Jarek

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16773
Author: =?iso-8859-2?Q?J
Date: Fri, 06 May 2011 15:49
32 lines
1143 bytes
Pan Tyler Durden napisa�:

> Jaros�aw mia� racje - podchodzi�em jak do je�a do tego "\looseness=1"
> - ale to dzia�a ca�kiem dobrze, je�li tylko wybra� odpowiedni
> paragraf. B�d� u�ywa� tej metody - sporo r�cznego "chrzanienia si�"
> ale efekt ca�kiem niez�y (sk�ad wygl�da profesjonalnie),

Je�li wybra� paragraf nieodpowiedni, to te� dzia�a ca�kiem dobrze.
Czyli nie dzia�a wcale. W zwi�zku z tym mo�e by� tak, �e najmniej
chrzanienia si� jest wtedy, gdy piszemy w odpowiednich miejscach
"\everypar{\looseness=1}", "\everypar{\looseness=-1}" albo
"\everypar{\looseness=0}", najpepiej zdefiniowawszy sobie wcze�niej
te zakl�cia. Definicja mo�e by� cho�by taka:

\def\p#1{%
\ifx#1- \everypar{\looseness=-1}\fi
\ifx#1= \everypar{\looseness=0}\fi
\ifx#1+ \everypar{\looseness=1}\fi
}

Stosowana p�nej jako \p-, \p+ albo \p=.

Jarek

PS
Przepraszam, �e dla tej definicji nie stworzy�em specjalnego repozytorium.
Ale ja jestem bezdyskusyjnie leniwy, nie chcia�o mi si�.

--
Z�apa�em se je�a, do kiesznim schowa�,
Oj, com si� sukinsyna potem nawyjmowa�

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16775
Author: =?iso-8859-2?Q?J
Date: Fri, 06 May 2011 17:22
65 lines
3203 bytes
Pan Tyler Durden napisa�:

>> Je li wybra paragraf nieodpowiedni, to te dzia a ca kiem dobrze.
>> Czyli nie dzia a wcale. W zwi zku z tym mo e by tak, e najmniej
>> chrzanienia si jest wtedy, gdy piszemy w odpowiednich miejscach
>> "\everypar{\looseness=1}", "\everypar{\looseness=-1}" albo
>> "\everypar{\looseness=0}", najpepiej zdefiniowawszy sobie wcze niej
>> te zakl cia. Definicja mo e by cho by taka:
>
> W�a�nie nie jest tak - przynajmniej u mnie - �e dzia�a zawsze dobrze,
> a jak nie mo�e to nie dzia�a - by� mo�e dlatego, �e sk�adam z
> parametrem "\sloppy".

W�a�nie to nazwa�em "ca�kiem dobrym dzia�aniem" -- nie mo�e, to nie
robi nic. I tak by� powinno.

> \looseness=-1 nie dzia�a mi w og�le albo praktycznie w og�le - akapity
> s� na tyle zbite, �e w 99% przypadk�w latex nie jest w stanie �cie�ni�
> ich ju� bardziej.

Procent�w nie liczy�em, ale to wynika z faktu, �e odst�p mi�dzywyrazowy
ma w foncie zwykle zadeklarowan� wi�ksz� rozci�gliwo�� ni� kurczliwo��.
Ponadto je�li dopu�cimy wi�ksz� tolerancj�, to wtedy rozci�ga� mo�na
w niesko�czono�� (czyli a� do szeroko�ci sk�adu), a zacie�nie� najwy�ej
do zera.

Mo�na oczywi�cie zadeklarowac karykaturalnie zmieniony odst�p, w rodzaju
"\spaceskip 40pt plus 0.1pt minus 35pt" i zobaczy�, �e "\looseness"
zadzia�a nawet z parametrem -10, a b�dzie mia� trudno�ci z niewielkimi
dodatnimi parametrami.

> \looseness=1 dzia�a prawie zawsze, ale r�nice s� optycznie widoczne -
> na niekt�rych akapitach "przegina" i robi za du�e odst�py mi�dzywyrazowe.

Sk�onno�� do przeginania mo�na ograniczy� zminiejszaj�c \tolerance.
Prosz� zauwa�y�, �e przegi�cia s� ca�kiem niezale�ne od \looseness
-- te du�e odst�py mog� pojawi� si� r�wnie� w innych akapitach.

> Paradoksalnie czasem lepiej zastosowa� go na jedno-dwu linijkowym ni�
> na takim na p� strony.

Mo�e by� lepiej, mo�e by� gorzej. I chyba nie ma co zgadywa�, lepiej
spr�bowa�. Czasem trzeba jeszcze wskaza� miejsca przeniesienia wyraz�w,
kt�re nie zosta�y znalezione przez "hyphen.tex".

> W ramach d��enia do perfekcji zastanowi� si� jeszcze czy by nie
> przymiesza� kerningiem...

O nie, to zdecydowanie kiepski pomys�, a nie �adna perfekcja. Zmienny
kerning w foncie mo�e by� najwy�ej traktowany jako p�rodek. Tak
post�powa�y systemy sk�adu, kt�re sk�ada�y wiersz po wierszu, a nie
od razu ca�y akapit, jak to robi TeX. Zecerzy gazetowi te� tak
post�powali, bo nie by�o czasu na co innego. Ci od ksi��ek, raczej nie.

Swoj� drog� ciekawe, �e przez tyle lat w systemach DTP odchodzi�o a�
takie dziadostwo. Dopiero tw�rcy inDesign zdecydowali si� na skopiowanie
in extenso algorytmu podzia�u akapitu na wiersze z TeXa. Poprzednicy
wstydzili si� bra� z darmowego, czy co? Podobnie by�o z algorytmem
Lianga do wyznaczania miejsc przeniesie� wyraz�w. Min�o z dziesi�� lat,
zanim w ko�cu go u�yto poza TeXem (a nikt wcze�niej niczego m�drego
w zamian nie wymy�li�).

--
Jarek

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16776
Author: AMX
Date: Fri, 06 May 2011 19:11
37 lines
1055 bytes
On Fri, 6 May 2011 15:42:58 +0000 (UTC),
Jaros�aw Soko�owski <jaros@lasek.waw.pl> wrote:

> Z TeXa jest dobry zecer, ale metrampa� s�aby (to taki go�ciu, co si�
> zajmowa� rozk�adaniem zecerskiej roboty na strony). Knuth zdawa� sobie
> z tego spraw� w trakcie pisania systemu, ale wiedzia�, �e pami��
> komputer�w dost�pna w tamtych czasach na takie rzeczy nie pozwala�a.
> Idealnym rozwi�zaniem by by�o zastosowanie algorytmu dziel�cego akapit
> na wiersze do podzia�u wierszy na strony.

Funkcj� kary?

> Plus dodatkowe oddzia�ywanie
> zwrotne na \looseness.

Chyba w oddzia�ywaniu zwrotnym jest ca�y pies pogrzebany.
Dlaczego akurat na \looseness? Chyba jest troch� wi�cej
mo�liwo�ci?

> Na to jednak jest ju� za p�no.

Dlaczego?


Od dawna mnie zastanawia�o, dlaczego algorytm �amania stron
pozosta� z czas�w prehistorycznych.

A skoro temat wyp�yn��, wi�c ch�tnie bym si� dowiedzia� czego�
wi�cej.


	AMX

--
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16777
Author: =?iso-8859-2?Q?J
Date: Fri, 06 May 2011 20:13
69 lines
3027 bytes
Pan Aleksander napisa�:

>> Idealnym rozwi�zaniem by by�o zastosowanie algorytmu dziel�cego
>> akapit na wiersze do podzia�u wierszy na strony.
>
> Funkcj� kary?

Kara to tylko element systemu -- miara, kt�r� pos�uguje si� algorytm.
Istot� jest ca�o�ciowe spojrzenie na dzielony obiekt. Prymitywne
systemy sk�adaja akapit w ten spos�b, �e zaczynaja od pierwszej
linijki, dok�adaj� kolejne wyrazy (lub ich niepodzielne cz�ci),
a gdy dojd� do elementu, kt�ry si� nie mie�ci, przerzucaj� go do
nast�pnego wiersza. I tak sk�adaj� kolejne linijki a� si� nie sko�czy
akapit. TeX rozpatruje ca�y akapit na raz i ze wszystkich potencjalnych
miejsc podzia�u na wiersze wybiera takie, dla kt�rych suma kar za
zwi�kszenie lub zmniejszenie odst�pu mi�dzywyrazowaego b�dzie
najmniejsza. Karane mog� by� te� inne przewinienia, na przyk�ad
przeniesienie s�owa. Opr�cz karania, mo�na te� nagradza� -- zamiast
kijem mo�na podzia�a� marchewk� (ujemne \penalty) i nagrodzi� podzia�
w preferowanych miejscach.

Podzia� na strony w TeXu jest bardziej prymitywny. Funkcja kary te�
istnieje, ale procesor widzi tylko bie��c� stron�, i jak ju� j� wypchnie
przez \output, to nie ma do niej powrotu.

>> Plus dodatkowe oddzia�ywanie zwrotne na \looseness.
>
> Chyba w oddzia�ywaniu zwrotnym jest ca�y pies pogrzebany.
> Dlaczego akurat na \looseness? Chyba jest troch� wi�cej
> mo�liwo�ci?

Napisa�em \looseness, bo akurat o tym by�a mowa. A teraz si� nad tym
zastanawia i nic innego mi do g�owy nie przychodzi. Algorytm podzia�u
na wiersze korzysta z poj�cia kleju poziomego -- tu dla odmiany mamy
klej pionowy. System kija i marchewki w obu przypadkach jest jednaki.
Pude�ka sk�adaj�ce si� na akapit maj� sta�� d�ugo��, a tu *dodatkowo*
mo�emy zmieni� liczb� wierszy w akapicie -- w�a�nie przez \looseness.
Innych pomys��w na wsteczn� modyfikacj� nie mam.

>> Na to jednak jest ju� za p�no.
>
> Dlaczego?

To wynika z warunku zbie�no�ci funkcji monotonicznej. Funkcja opisuj�ca
numer wersji programu musi by� niemalej�ca (w czasie). Wiadomo te�, �e
wersja TeXa jest zbie�na do $\pi$. Jej aktualna warto��, to 3.141592,
oznaczmy j� jako $V_t$. Rozpatrzmy $\epsilon = \pi - V_t$. Warto��
$\epsilon$ rz�du 0.000000653589 nie jest wystarczaj�ca do przeprowadzenia
tak rewolucyjnej zmiany.

> Od dawna mnie zastanawia�o, dlaczego algorytm �amania stron pozosta�
> z czas�w prehistorycznych.

Z czas�w (nie tak odleg�ych), gdy pomys�y umieszczenia ca�ej ksi��ki
na raz w pami�ci operacyjnej komputera wydawa�y si� nieodpowiedzialne.
Dlatego w�a�nie (co napisa�em wy�ej).

> A skoro temat wyp�yn��, wi�c ch�tnie bym si� dowiedzia� czego� wi�cej.

Ja mam tak samo. To chyba zdrowy objaw.

Jarek

--
Jest ju� za p�no!
Nie jest za p�no!
Jest ju� za p�no!
Nie jest za p�no!

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16778
Author: AMX
Date: Fri, 06 May 2011 20:50
87 lines
3686 bytes
On Fri, 6 May 2011 20:13:07 +0000 (UTC),
Jaros�aw Soko�owski <jaros@lasek.waw.pl> wrote:

> Pan Aleksander napisa�:
>
>>> Idealnym rozwi�zaniem by by�o zastosowanie algorytmu dziel�cego
>>> akapit na wiersze do podzia�u wierszy na strony.
>>
>> Funkcj� kary?
>
> Kara to tylko element systemu -- miara, kt�r� pos�uguje si� algorytm.
> Istot� jest ca�o�ciowe spojrzenie na dzielony obiekt. Prymitywne
> systemy sk�adaja akapit w ten spos�b, �e zaczynaja od pierwszej
> linijki, dok�adaj� kolejne wyrazy (lub ich niepodzielne cz�ci),
> a gdy dojd� do elementu, kt�ry si� nie mie�ci, przerzucaj� go do
> nast�pnego wiersza. I tak sk�adaj� kolejne linijki a� si� nie sko�czy
> akapit. TeX rozpatruje ca�y akapit na raz i ze wszystkich potencjalnych
> miejsc podzia�u na wiersze wybiera takie, dla kt�rych suma kar za
> zwi�kszenie lub zmniejszenie odst�pu mi�dzywyrazowaego b�dzie
> najmniejsza. Karane mog� by� te� inne przewinienia, na przyk�ad
> przeniesienie s�owa. Opr�cz karania, mo�na te� nagradza� -- zamiast
> kijem mo�na podzia�a� marchewk� (ujemne \penalty) i nagrodzi� podzia�
> w preferowanych miejscach.
>
> Podzia� na strony w TeXu jest bardziej prymitywny. Funkcja kary te�
> istnieje, ale procesor widzi tylko bie��c� stron�, i jak ju� j� wypchnie
> przez \output, to nie ma do niej powrotu.
>

Czyli w zasadzie albo wszystko trzymamy w pami�ci albo algorytm
sk�adania jest wieloprzebiegowy. Sam nie wiem co by�oby lepsze.

>>> Plus dodatkowe oddzia�ywanie zwrotne na \looseness.
>>
>> Chyba w oddzia�ywaniu zwrotnym jest ca�y pies pogrzebany.
>> Dlaczego akurat na \looseness? Chyba jest troch� wi�cej
>> mo�liwo�ci?
>
> Napisa�em \looseness, bo akurat o tym by�a mowa. A teraz si� nad tym
> zastanawia i nic innego mi do g�owy nie przychodzi. Algorytm podzia�u
> na wiersze korzysta z poj�cia kleju poziomego -- tu dla odmiany mamy
> klej pionowy. System kija i marchewki w obu przypadkach jest jednaki.
> Pude�ka sk�adaj�ce si� na akapit maj� sta�� d�ugo��, a tu *dodatkowo*
> mo�emy zmieni� liczb� wierszy w akapicie -- w�a�nie przez \looseness.
> Innych pomys��w na wsteczn� modyfikacj� nie mam.
>

Teoretyzuj�c, (bo szczeg��w �ycia wewn�trznego TeXa nie znam)
mo�na zwi�kszy�/zmniejszy� odst�py mi�dzywierszowe. To mog�oby
by� niedobre przy sk�adzie dwustronnym, je�li na kolejnych
stronach by�yby r�ne ale nie powinno by� globalnie tak
uci��liwe.


Mo�na cia�niej/lu�niej sk�ada� same akapity. Tu jest ewidentna
interakcja sk�adu strony i linii. No i du�y problem z doborem
mno�nika mi�dzy jedn� warto�ci� kary i drug�.

Chyba innych pomys��w nie mam...

>>> Na to jednak jest ju� za p�no.
>>
>> Dlaczego?
>
> To wynika z warunku zbie�no�ci funkcji monotonicznej. Funkcja opisuj�ca
> numer wersji programu musi by� niemalej�ca (w czasie). Wiadomo te�, �e
> wersja TeXa jest zbie�na do $\pi$. Jej aktualna warto��, to 3.141592,
> oznaczmy j� jako $V_t$. Rozpatrzmy $\epsilon = \pi - V_t$. Warto��
> $\epsilon$ rz�du 0.000000653589 nie jest wystarczaj�ca do przeprowadzenia
> tak rewolucyjnej zmiany.
>

No, to ju� kwestia czysto TeXniczna. System nie musi (a nawet nie
m�g�by) si� nazywa� TeX. Na razie nie bardzo jestem sobie w
stanie wyobrazi� algorytm �amania stron. A do tego trzeba by
najpierw sprawdzi�, �e jest lepszy ni� to, co w tej chwili jest w
TeXu.

Pozdrawiam serdecznie

	max


--
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16779
Author: =?iso-8859-2?Q?J
Date: Fri, 06 May 2011 21:32
96 lines
4521 bytes
Pan Aleksander napisa�:

>> Podzia� na strony w TeXu jest bardziej prymitywny. Funkcja kary
>> te� istnieje, ale procesor widzi tylko bie��c� stron�, i jak ju�
>> j� wypchnie przez \output, to nie ma do niej powrotu.
>
> Czyli w zasadzie albo wszystko trzymamy w pami�ci albo algorytm
> sk�adania jest wieloprzebiegowy. Sam nie wiem co by�oby lepsze.

Pewnie lepiej by by�o w pami�ci, zwa�aszcza �e jest do tego algorytm,
kt�ry mo�na zaadaptowa�. Ale wieloprzebiegowo�ci� te� mo�na si�
podeprze� -- daltego wysun��em hipotez�, �e mo�e to da� niez�e
rezultaty. Tylko czy komu� b�dzie si� chcia�o j� sprawdzi�?

>>>> Plus dodatkowe oddzia�ywanie zwrotne na \looseness.
>>>
>>> Chyba w oddzia�ywaniu zwrotnym jest ca�y pies pogrzebany.
>>> Dlaczego akurat na \looseness? Chyba jest troch� wi�cej
>>> mo�liwo�ci?
>>
>> Napisa�em \looseness, bo akurat o tym by�a mowa. A teraz si� nad tym
>> zastanawia i nic innego mi do g�owy nie przychodzi. Algorytm podzia�u
>> na wiersze korzysta z poj�cia kleju poziomego -- tu dla odmiany mamy
>> klej pionowy. System kija i marchewki w obu przypadkach jest jednaki.
>> Pude�ka sk�adaj�ce si� na akapit maj� sta�� d�ugo��, a tu *dodatkowo*
>> mo�emy zmieni� liczb� wierszy w akapicie -- w�a�nie przez \looseness.
>> Innych pomys��w na wsteczn� modyfikacj� nie mam.
>
> Teoretyzuj�c, (bo szczeg��w �ycia wewn�trznego TeXa nie znam)
> mo�na zwi�kszy�/zmniejszy� odst�py mi�dzywierszowe. To mog�oby
> by� niedobre przy sk�adzie dwustronnym, je�li na kolejnych
> stronach by�yby r�ne ale nie powinno by� globalnie tak uci��liwe.

To przecie� jest -- \baselineskip mo�e przybiera� warto�ci elastyczne.
Teraz do mnie dotar�o, �e przy dobrym algorytmie, to by mog�o by�
*dobre* te� do sk�adu dwustronnego. System by musia� mie� baczenie na
to, aby po obu stronach kartki sk�adanie odby�o si� wedle tego samego
registru. Wtedy to nawet Micha� Jankowski z gajowym Maruch� by nie
mieli powod�w do zrz�dzenia.

> Mo�na cia�niej/lu�niej sk�ada� same akapity. Tu jest ewidentna
> interakcja sk�adu strony i linii.

No i to w�a�nie robi \looseness. Skraca lub wyd�u�a akapit o jedn�
b�d� kilka linijek. Przez cia�niejszy/lu�niejszy sk�ad. I nic poza tym.

> No i du�y problem z doborem mno�nika mi�dzy jedn� warto�ci� kary
> i drug�.

Teraz kary poziome i pionowe funkcjonuj� niezale�nie. Jak TeX nie
umie z�o�y� akapitu mieszcz�c si� w limicie kary, robi "overfull",
czyli wiersz wystaj�cy na margines, co jest rozpaczliwym wo�aniem
"cz�owieku, zr�b co� z tym, bo ja lepiej nie potrafi�". Pionowy
rozk�ad jest bardziej tolerancyjny, a b��dy mniej spektakularne.
Zwykle powstaje pionowy "underfull", czyli dodanie gdzie� na stronie
ekstraordynaryjnego �wiat�a o ��czniej wysoko�ci jednej czy dw�ch
interlinii. My�l�, �e ta roz��czno�� mog�aby pozosta�.

> Chyba innych pomys��w nie mam...

To tak jak ja.

>>>> Na to jednak jest ju� za p�no.
>>>
>>> Dlaczego?
>>
>> To wynika z warunku zbie�no�ci funkcji monotonicznej. Funkcja opisuj�ca
>> numer wersji programu musi by� niemalej�ca (w czasie). Wiadomo te�, �e
>> wersja TeXa jest zbie�na do $\pi$. Jej aktualna warto��, to 3.141592,
>> oznaczmy j� jako $V_t$. Rozpatrzmy $\epsilon = \pi - V_t$. Warto��
>> $\epsilon$ rz�du 0.000000653589 nie jest wystarczaj�ca do przeprowadzenia
>> tak rewolucyjnej zmiany.
>
> No, to ju� kwestia czysto TeXniczna. System nie musi (a nawet nie
> m�g�by) si� nazywa� TeX. Na razie nie bardzo jestem sobie w
> stanie wyobrazi� algorytm �amania stron.

Taki jak �amanie akapitu -- bierzemy tekst od jednego sztywnego podzia�u
na strony do drugiego, a nast�pnie za pomoc� kija i marchewki znajdujemy
najlepsze podzia�y pomi�dzy nimi.

> A do tego trzeba by najpierw sprawdzi�, �e jest lepszy ni� to, co w tej
> chwili jest w TeXu.

Mo�na w ten spos�b rozwi�za� problem (1) wakat�w na ko�cach rozdzia��w,
(2) wd�w i sierot, (3) registru, (4) nag��wk�w podrozdzia��w, (5) blok�w
powi�zanych logicznie, kt�re nie powinny (cho� czasem mog�) by� podzielone
na strony (6) innych rzeczy, o kt�rych w tej chwili nie pami�tam.

> Pozdrawiam serdecznie

Ja r�wnie�

--
Jarek

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16780
Author: AMX
Date: Sat, 07 May 2011 12:05
52 lines
2213 bytes
On Fri, 6 May 2011 21:32:37 +0000 (UTC),
Jaros�aw Soko�owski <jaros@lasek.waw.pl> wrote:

> Pan Aleksander napisa�:
>>
>> Czyli w zasadzie albo wszystko trzymamy w pami�ci albo algorytm
>> sk�adania jest wieloprzebiegowy. Sam nie wiem co by�oby lepsze.
>
> Pewnie lepiej by by�o w pami�ci, zwa�aszcza �e jest do tego algorytm,
> kt�ry mo�na zaadaptowa�. Ale wieloprzebiegowo�ci� te� mo�na si�
> podeprze� -- daltego wysun��em hipotez�, �e mo�e to da� niez�e
> rezultaty. Tylko czy komu� b�dzie si� chcia�o j� sprawdzi�?

Czy komu� b�dzie si� chcia�o sprawdzi� to jedno. A czy ,,chc�cy''
b�dzie umia� to zrobi� (i to w sko�czonym czasie) to drugie. =:-)

[..]

>> No i du�y problem z doborem mno�nika mi�dzy jedn� warto�ci� kary
>> i drug�.
>
> Teraz kary poziome i pionowe funkcjonuj� niezale�nie. Jak TeX nie
> umie z�o�y� akapitu mieszcz�c si� w limicie kary, robi "overfull",
> czyli wiersz wystaj�cy na margines, co jest rozpaczliwym wo�aniem
> "cz�owieku, zr�b co� z tym, bo ja lepiej nie potrafi�". Pionowy
> rozk�ad jest bardziej tolerancyjny, a b��dy mniej spektakularne.
> Zwykle powstaje pionowy "underfull", czyli dodanie gdzie� na stronie
> ekstraordynaryjnego �wiat�a o ��czniej wysoko�ci jednej czy dw�ch
> interlinii. My�l�, �e ta roz��czno�� mog�aby pozosta�.
>

No w�a�nie niekoniecznie. Je�li tekst ma dwie strony, ale na
drugiej jest tylko jedna linia z dwoma wyrazami, to mo�na albo
przerzuci� ostatni� lini� z pierwszej strony, albo postara� si�
sk�ada� cia�niej -- mo�e dwa wyrazy si� zmieszcz�, albo sk�ada�
tekst lu�niej -- wtedy na drug� stron� wyjdzie wi�cej tekstu i
nie b�dzie to �le wygl�da�o. Zdaje si�, �e pierwszy wariant jest
obecnie realizowany i rzeczywi�cie nie wymaga interakcji.

Natomiast dwa ostatnie wymaga�yby, aby kara za sk�adanie stron
wp�ywa�a na kar� za sk�adanie akapit�w, daj�c w efekcie
cia�niejszy/lu�niejszy sk�ad tych�e.

Sk�adam si� w ciasnym uk�onie

	max


--
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16781
Author: =?iso-8859-2?Q?J
Date: Sat, 07 May 2011 14:06
78 lines
3959 bytes
Pan Aleksander napisa�:

>>> Czyli w zasadzie albo wszystko trzymamy w pami�ci albo algorytm
>>> sk�adania jest wieloprzebiegowy. Sam nie wiem co by�oby lepsze.
>>
>> Pewnie lepiej by by�o w pami�ci, zwa�aszcza �e jest do tego algorytm,
>> kt�ry mo�na zaadaptowa�. Ale wieloprzebiegowo�ci� te� mo�na si�
>> podeprze� -- daltego wysun��em hipotez�, �e mo�e to da� niez�e
>> rezultaty. Tylko czy komu� b�dzie si� chcia�o j� sprawdzi�?
>
> Czy komu� b�dzie si� chcia�o sprawdzi� to jedno. A czy ,,chc�cy''
> b�dzie umia� to zrobi� (i to w sko�czonym czasie) to drugie. =:-)

Ech, �eby mi si� tak chcia�o jak mi si� nie chce. Lepiej by wtedy
wszystko wygl�da�o (a przynajmniej bym wiedzia�, czy umiem).

>> Teraz kary poziome i pionowe funkcjonuj� niezale�nie. Jak TeX nie
>> umie z�o�y� akapitu mieszcz�c si� w limicie kary, robi "overfull",
>> czyli wiersz wystaj�cy na margines, co jest rozpaczliwym wo�aniem
>> "cz�owieku, zr�b co� z tym, bo ja lepiej nie potrafi�". Pionowy
>> rozk�ad jest bardziej tolerancyjny, a b��dy mniej spektakularne.
>> Zwykle powstaje pionowy "underfull", czyli dodanie gdzie� na stronie
>> ekstraordynaryjnego �wiat�a o ��czniej wysoko�ci jednej czy dw�ch
>> interlinii. My�l�, �e ta roz��czno�� mog�aby pozosta�.
>
> No w�a�nie niekoniecznie. Je�li tekst ma dwie strony, ale na
> drugiej jest tylko jedna linia z dwoma wyrazami, to mo�na albo
> przerzuci� ostatni� lini� z pierwszej strony, albo postara� si�
> sk�ada� cia�niej -- mo�e dwa wyrazy si� zmieszcz�, albo sk�ada�
> tekst lu�niej -- wtedy na drug� stron� wyjdzie wi�cej tekstu i
> nie b�dzie to �le wygl�da�o. Zdaje si�, �e pierwszy wariant jest
> obecnie realizowany i rzeczywi�cie nie wymaga interakcji.

To co jest obecnie realizowane, wygl�da troch� inaczej ni� pierwszy
wariant. Karanie za wdowy i sieroty mo�e spowodowa� wyrzucenie
dw�ch wierszy zamiast jednego na nast�pn� stron�, albo wci�gni�cie
samotnego wiersza. To zale�y od tego, jakie pionowe klajstry s� na
wyprowadzanej stronie.

> Natomiast dwa ostatnie wymaga�yby, aby kara za sk�adanie stron
> wp�ywa�a na kar� za sk�adanie akapit�w, daj�c w efekcie
> cia�niejszy/lu�niejszy sk�ad tych�e.

W�a�nie niekoniecznie tego wymagaj�. Jest wprawdzie tak, �e TeX
(na przyk�ad przy sk�adaniu akapitu) stara si� zminimalizowa� kar�,
ale z drugiej strony, je�li kara nie przekroczy ustalonego progu,
to zawsze sk�ad uznawany jest za dobry i przechodzi przez TeXow�
kontrol� jako�ci. Z tej zasady wynika, �e mo�e istnie� co� takiego
jak \looseness. Je�li zadeklarujemy \tolerance000, to napisanie
przed d�u�szym akapitem \looseness=7 przyniesie rzeczywi�cie wyd�u�enie
go o 7 wierszy.

Tu by wi�c *wystarczy�o* aby TeX przed przyst�pieniem do podzia�u na
strony dokona� sk�adu akapit�w we wszystkich mo�liwych wariantach,
od najkr�tszego do najd�u�szego. Wcale *nie musi* zmienia� systemu
kar w akapitach, wystarczy za�o�enie, �e musz� mie�ci� si� w przyj�tej
wcze�niej normie.

Prosz� zwr�ci� uwag� na to, �e TeX nie upiera si� przy tym, �e wszystko
potrafi. Nie ma takiego za�o�enia, �e z automatu uzyskamy zawsze
idealny sk�ad. Jest za to system kar i mo�liwo�� ustawienia tolerancji
mniejszej od niesko�czono�ci (czyli 10000). Mo�na oczywi�cie ustawi�
\tolerance10000, wtedy sk�ad b�dzie przypomina� Worda. Ale rzadko si�
tak robi. Lepszy algorytm podzia�u na strony te� nie oznacza, �e wszystko
si� zrobi samo.

> Sk�adam si� w ciasnym uk�onie

I ja tako�

Jarek

--
Chmurno, durno, nieprzyjemnie,
lu�na plomba dzwoni w z�bie,
a za oknem w �rodku maja,
dudni grad jak strusie jaja

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16782
Author: AMX
Date: Sat, 07 May 2011 20:09
52 lines
2209 bytes
On Sat, 7 May 2011 14:06:54 +0000 (UTC),
Jaros�aw Soko�owski <jaros@lasek.waw.pl> wrote:

> Aleksander napisa�:
>
>> Natomiast dwa ostatnie wymaga�yby, aby kara za sk�adanie stron
>> wp�ywa�a na kar� za sk�adanie akapit�w, daj�c w efekcie
>> cia�niejszy/lu�niejszy sk�ad tych�e.
>
> W�a�nie niekoniecznie tego wymagaj�. Jest wprawdzie tak, �e TeX
> (na przyk�ad przy sk�adaniu akapitu) stara si� zminimalizowa� kar�,
> ale z drugiej strony, je�li kara nie przekroczy ustalonego progu,
> to zawsze sk�ad uznawany jest za dobry i przechodzi przez TeXow�
> kontrol� jako�ci. Z tej zasady wynika, �e mo�e istnie� co� takiego
> jak \looseness. Je�li zadeklarujemy \tolerance000, to napisanie
> przed d�u�szym akapitem \looseness=7 przyniesie rzeczywi�cie wyd�u�enie
> go o 7 wierszy.

Pr�buj� przezwyci�y� swoj� t�pot� umys�ow� i zrozumie� jak to
dzia�a. Czyli dok�d nie ma problem�w -- akapit na �rodku strony,
to akapity s� sk�adane w spos�b jednoznaczny. Co si� dzieje z
kar�, kiedy dochodzimy np. do tytu�u rozdzia�u na samym dole
strony?

>
> Tu by wi�c *wystarczy�o* aby TeX przed przyst�pieniem do podzia�u na
> strony dokona� sk�adu akapit�w we wszystkich mo�liwych wariantach,
> od najkr�tszego do najd�u�szego. Wcale *nie musi* zmienia� systemu
> kar w akapitach, wystarczy za�o�enie, �e musz� mie�ci� si� w przyj�tej
> wcze�niej normie.
>

No dobrze, ale nawet maj�c wszelkie mo�liwe podzia�y musi w jaki�
spos�b potem dokona� wyboru. Czyli w ten czy inny spos�b funkcja
kary. Tylko, �e teraz s� naraz dwa kryteria do spe�nienia: jak
najlepszy wygl�d strony, przy mo�liwie najmniej zepsutym
wygl�dzie akapit�w.

Z mojego punktu widzenia jest to dodanie premii za nieco
cia�niejszy albo nieco lu�niejszy sk�ad. Czyli ingerencja w sk�ad
akapit�w. �eby by�o trudniej, to jest to albo cia�niejszy albo
lu�niejszy. Nie mo�na rozwa�a� obu wariant�w naraz.


Prosz� mnie nie kara� za ciasnot� umys�u i lu�ne rozwa�ania

	max

--
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy

Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
#16783
Author: =?iso-8859-2?Q?J
Date: Sat, 07 May 2011 21:08
72 lines
3809 bytes
Pan Aleksander napisa�:

>>> Natomiast dwa ostatnie wymaga�yby, aby kara za sk�adanie stron
>>> wp�ywa�a na kar� za sk�adanie akapit�w, daj�c w efekcie
>>> cia�niejszy/lu�niejszy sk�ad tych�e.
>>
>> W�a�nie niekoniecznie tego wymagaj�. Jest wprawdzie tak, �e TeX
>> (na przyk�ad przy sk�adaniu akapitu) stara si� zminimalizowa� kar�,
>> ale z drugiej strony, je�li kara nie przekroczy ustalonego progu,
>> to zawsze sk�ad uznawany jest za dobry i przechodzi przez TeXow�
>> kontrol� jako�ci. Z tej zasady wynika, �e mo�e istnie� co� takiego
>> jak \looseness. Je�li zadeklarujemy \tolerance000, to napisanie
>> przed d�u�szym akapitem \looseness=7 przyniesie rzeczywi�cie wyd�u�enie
>> go o 7 wierszy.
>
> Pr�buj� przezwyci�y� swoj� t�pot� umys�ow� i zrozumie� jak to
> dzia�a. Czyli dok�d nie ma problem�w -- akapit na �rodku strony,
> to akapity s� sk�adane w spos�b jednoznaczny. Co si� dzieje z
> kar�, kiedy dochodzimy np. do tytu�u rozdzia�u na samym dole
> strony?

Rzecz w tym, �e nie ma �adnego "dochodzenia do". Jest spojrzenie na
ca�o��, na ci�g stron -- tak jak na ci�g wyraz�w przy sk�adaniu akapitu.

Wyobra�my sobie, �e mamy do z�o�enia rozdzia�, w kt�rym siedem stron to
�atwy do z�amania tekst, a w po�owie �smej pojawia si� tabela na trzy
czwarte strony. TeX sobie z czym� takim nie radzi bez ludzkiej pomocy.
Trzeba ka�d� z o�miu stron troch� porozsuwa� w pionie (a wi�c pogorszy�
sk�ad), a wtedy nadgonimy brakuj�c� po��wk� �smej strony, a tabela
wypadnie na stronie dziewi�tej.

W ten spos�b TeX sk�ada akapity -- je�li w po�owie akapitu jest d�ugie
niepodzielne s�owo, to kombinuje w ten spos�b, by s�owo to znalaz�o si�
ca�e w kt�rym� z wierszy, a nie wypada�o na granicy �amania.

>> Tu by wi�c *wystarczy�o* aby TeX przed przyst�pieniem do podzia�u na
>> strony dokona� sk�adu akapit�w we wszystkich mo�liwych wariantach,
>> od najkr�tszego do najd�u�szego. Wcale *nie musi* zmienia� systemu
>> kar w akapitach, wystarczy za�o�enie, �e musz� mie�ci� si� w przyj�tej
>> wcze�niej normie.
>
> No dobrze, ale nawet maj�c wszelkie mo�liwe podzia�y musi w jaki�
> spos�b potem dokona� wyboru. Czyli w ten czy inny spos�b funkcja
> kary. Tylko, �e teraz s� naraz dwa kryteria do spe�nienia: jak
> najlepszy wygl�d strony, przy mo�liwie najmniej zepsutym wygl�dzie
> akapit�w.

Jeszcze raz powr�rz�: nie ma w TeXu mniej i bardziej zepsutych akapit�w.
S� akapity niezepsute, czyli takie, kt�re maja kiepsko�� (badness)
mniejsz� od zadeklarowanej tolerancji (tolerance). I s� takie, kt�rych
*nie da�o si� z�o�y�* -- one maj� 'overfull', czyli stercz�ce na
marginesie litery.

> Z mojego punktu widzenia jest to dodanie premii za nieco
> cia�niejszy albo nieco lu�niejszy sk�ad. Czyli ingerencja w sk�ad
> akapit�w. �eby by�o trudniej, to jest to albo cia�niejszy albo
> lu�niejszy. Nie mo�na rozwa�a� obu wariant�w naraz.

Ju� samo ca�o�ciowe spojrzenie (kt�re opisa�em w pierwszym akapicie)
powinno rozwi�za� wiele problem�w z �amaniem na strony. Szczeg�lnie
w tekscie o du�ej "elastyczno�ci pionowej" (takie s� np. teksty ze
wzorami matematycznymi).

Dopiero gdy to nic nie da, zmieni� d�ugo�� akapit�w i podj�� nast�pn�
pr�b� z�amania na strony. A� do skutku. Teoretycznie jest tu lepiej
ni� przy sk�adzie akapitu, gdzie s�owa maj� niezmienn� d�ugo�� (a jak
czasem nie da si� z�o�y�, to trzeba zamiast "samoch�d" napisa� "auto",
albo odwrotnie).

--
Jarek

Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads