Article View: pl.comp.dtp.tex
Article #16979Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem.
From: AMX
Date: Fri, 06 May 2011 20:50
Date: Fri, 06 May 2011 20:50
86 lines
4858 bytes
4858 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
Technical Details
Message-ID:
<slrnis8n7v.i1g.r-znk@amber.within.nat>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mailReferences:
<83bbd898-1142-477e-a936-91a2abd55153@p19g2000yqh.googlegroups.com> <slrnis56ac.dd1.jaros@falcon.lasek.waw.pl> <35b293d4-9e54-4752-930a-2f0d54bf89f4@j31g2000yqe.googlegroups.com> <ipuljk$3ee$1@speranza.aioe.org> <slrnis666p.ind.jaros@falcon.lasek.waw.pl> <kjzhb98fc3s.fsf@ccfs1.fuw.edu.pl> <slrnis85o2.s5m.jaros@falcon.lasek.waw.pl> <slrnis8heb.fql.r-znk@amber.within.nat> <slrnis8lij.694.jaros@falcon.lasek.waw.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail From: AMX <r-znk@b2.cy> Newsgroups: pl.comp.dtp.tex Subject: Re: book/memoir; wdowy sieroty; \paraskip i \lineskip problem. Date: Fri, 6 May 2011 20:50:00 +0000 (UTC) Organization: Home Access Lines: 86 Message-ID: <slrnis8n7v.i1g.r-znk@amber.within.nat> References: <83bbd898-1142-477e-a936-91a2abd55153@p19g2000yqh.googlegroups.com> <slrnis56ac.dd1.jaros@falcon.lasek.waw.pl> <35b293d4-9e54-4752-930a-2f0d54bf89f4@j31g2000yqe.googlegroups.com> <ipuljk$3ee$1@speranza.aioe.org> <slrnis666p.ind.jaros@falcon.lasek.waw.pl> <kjzhb98fc3s.fsf@ccfs1.fuw.edu.pl> <slrnis85o2.s5m.jaros@falcon.lasek.waw.pl> <slrnis8heb.fql.r-znk@amber.within.nat> <slrnis8lij.694.jaros@falcon.lasek.waw.pl> NNTP-Posting-Host: 77-255-98-124.adsl.inetia.pl Mime-Version: 1.0 X-Trace: mx1.internetia.pl 1304715000 27507 77.255.98.124 (6 May 2011 20:50:00 GMT) X-Complaints-To: abuse@inetia.pl NNTP-Posting-Date: Fri, 6 May 2011 20:50:00 +0000 (UTC) X-Tech-Contact: usenet@internetia.pl User-Agent: slrn/pre1.0.0-18 (Linux) X-Server-Info: http://www.internetia.pl/ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit