Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Plain: jak na postranní čářu přes více stránek?

9 views
Skip to first unread message

Petr Tomasek

unread,
Sep 1, 2011, 3:36:06 AM9/1/11
to cs...@cs.felk.cvut.cz

Zdravím pěkně,

chtěl bych poprosit o nakopnutí, jakým směrem se dát.
Dělám v plain-(Xe)TeXu sazbu (své dizertace) a chtěl bych
mít nějak graficky oddělený "exkurz". Takovýto "exkurz"
obsahuje materiál na více stránek včetně poměrně složitých
záležitostí, jako jsou tabulky, poznámky pod čarou a další.

Idea je mít "exkurz" v rámečku, nebo alespoň vyznačený
čarou postraně. V obou případech je problémem ona čára
postraně.

Našel jsem ve zpravodaji 99/3 článek pana Zýky, který
dělá takovou věc, nicméně se mi to úplně nezamlouvá,
neboť toto makro má několik situací (dle článku), kdy
je potřeba do textu zasáhnout ručně a se mi nelíbí.

Chci se proto zeptat, zda-li máte někdo nějaký lepší
nápad, jak danou věc řešit, případně, jestli to vůbec
obecně v TeXu lze (bez oněch mezních situací, jakou jsou
neplechy s plovoucími inserty atd.)?

(Počítám, že asi stejně nebudu jen tak „šáhnout po“
existujícím makru, kvůli integraci s vlastní výstupní
rutinou...)

Díky!

P.T.

--
Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
Jabber: but...@jabbim.cz

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EA 355:001 DU DU DU DU
EA 355:002 TU TU TU TU
EA 355:003 NU NU NU NU NU NU NU
EA 355:004 NA NA NA NA NA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Zdenek Wagner

unread,
Sep 1, 2011, 4:50:34 AM9/1/11
to Czech and Slovak TeX-related mailing list
Dne 1. září 2011 9:36 Petr Tomasek <tom...@etf.cuni.cz> napsal(a):

>
> Zdravím pěkně,
>
> chtěl bych poprosit o nakopnutí, jakým směrem se dát.
> Dělám v plain-(Xe)TeXu sazbu (své dizertace) a chtěl bych
> mít nějak graficky oddělený "exkurz". Takovýto "exkurz"
> obsahuje materiál na více stránek včetně poměrně složitých
> záležitostí, jako jsou tabulky, poznámky pod čarou a další.
>
> Idea je mít "exkurz" v rámečku, nebo alespoň vyznačený
> čarou postraně. V obou případech je problémem ona čára
> postraně.
>
> Našel jsem ve zpravodaji 99/3 článek pana Zýky, který
> dělá takovou věc, nicméně se mi to úplně nezamlouvá,
> neboť toto makro má několik situací (dle článku), kdy
> je potřeba do textu zasáhnout ručně a se mi nelíbí.
>
> Chci se proto zeptat, zda-li máte někdo nějaký lepší
> nápad, jak danou věc řešit, případně, jestli to vůbec
> obecně v TeXu lze (bez oněch mezních situací, jakou jsou
> neplechy s plovoucími inserty atd.)?
>
Napadá mě další možnost, v jiném článku píše Vít Zýka, jak v pdfTeXu
uložit pozici sazby, aby se dala pozdfěji využít. Možná by šlo na
začátku a na konci exkurzu označit polohu (pomocí \vadjust se můžete
dostat na okraj stránky i v odstavcovém módu), potom upravit \output a
v něm dodělat čáru. Pokud budete mít na dané stránce jenom začátek
nebo jenom konec, pak pro druhý konec čáry zvolíte nějaký defaultní
bod. Je to jenom námět, nezaručuju, že to bude chodit bez problémů.

> (Počítám, že asi stejně nebudu jen tak "šáhnout po"
> existujícím makru, kvůli integraci s vlastní výstupní
> rutinou...)
>
> Díky!
>
> P.T.
>
> --
> Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
> Jabber: but...@jabbim.cz
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> EA 355:001 DU DU DU DU
> EA 355:002 TU TU TU TU
> EA 355:003 NU NU NU NU NU NU NU
> EA 355:004 NA NA NA NA NA
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>

> _______________________________________________
> csTeX mailing list
> cs...@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

Jan Matejka

unread,
Sep 1, 2011, 4:56:22 AM9/1/11
to Czech and Slovak TeX-related mailing list
Dobrý den

> Idea je mít "exkurz" v rámečku, nebo alespoň vyznačený
> čarou postraně. V obou případech je problémem ona čára
> postraně.

Nečetl jsem článek pana Zýky, nicméně napadá mě ještě vysázet celý
exkurs do \vboxu, který se pak v output rutině \vsplitne, pokud by
přetekl stránku. Podobné řešení se používá třeba ve dvojsloupcové sazbě
podle Knutha (nějaký appendix TeXbooku).

MQ
--
Jan Matejka aka 'Moskyto'
mos...@atrey.karlin.mff.cuni.cz
http://atrey.karlin.mff.cuni.cz/~moskyto
Phone: +420 721 047 653 (only if really necessary, pls)
--
I don't drink, don't smoke, I always get the best possible mark and I go to
the church every Sunday. I only sometimes lie.

signature.asc

Pavel Striz

unread,
Sep 1, 2011, 5:32:40 AM9/1/11
to Czech and Slovak TeX-related mailing list
Balíček listings rámuje zdrojové kódy i přes více stran, na vnitřnosti jsem však nenahlížel.
ps


-----Původní zpráva-----
Od: cstex-bounces+striz=fame....@cs.felk.cvut.cz [mailto:cstex-bounces+striz=fame....@cs.felk.cvut.cz] za uživatele Petr Tomasek
Odesláno: 1. září 2011 9:36
Komu: cs...@cs.felk.cvut.cz
Předmět: [cstex] Plain: jak na postranní čářu přes více stránek?


Zdravím pěkně,

chtěl bych poprosit o nakopnutí, jakým směrem se dát.
Dělám v plain-(Xe)TeXu sazbu (své dizertace) a chtěl bych
mít nějak graficky oddělený "exkurz". Takovýto "exkurz"
obsahuje materiál na více stránek včetně poměrně složitých
záležitostí, jako jsou tabulky, poznámky pod čarou a další.

Idea je mít "exkurz" v rámečku, nebo alespoň vyznačený


čarou postraně. V obou případech je problémem ona čára
postraně.

Našel jsem ve zpravodaji 99/3 článek pana Zýky, který


dělá takovou věc, nicméně se mi to úplně nezamlouvá,
neboť toto makro má několik situací (dle článku), kdy
je potřeba do textu zasáhnout ručně a se mi nelíbí.

Chci se proto zeptat, zda-li máte někdo nějaký lepší
nápad, jak danou věc řešit, případně, jestli to vůbec
obecně v TeXu lze (bez oněch mezních situací, jakou jsou
neplechy s plovoucími inserty atd.)?

(Počítám, že asi stejně nebudu jen tak „šáhnout po“

Zdenek Wagner

unread,
Sep 1, 2011, 5:54:10 AM9/1/11
to Czech and Slovak TeX-related mailing list
2011/9/1 Jan Matejka <mos...@atrey.karlin.mff.cuni.cz>:
> Dobrý den

>
>> Idea je mít "exkurz" v rámečku, nebo alespoň vyznačený
>> čarou postraně. V obou případech je problémem ona čára
>> postraně.
>
> Nečetl jsem článek pana Zýky, nicméně napadá mě ještě vysázet celý
> exkurs do \vboxu, který se pak v output rutině \vsplitne, pokud by
> přetekl stránku. Podobné řešení se používá třeba ve dvojsloupcové sazbě
> podle Knutha (nějaký appendix TeXbooku).
>
Tohle nepůjde. Pokud to udělám jako \vbox, který se bude rovnou sázet
a zrovna se na stránku nevejde, pak TeX zlomí stránku nad ním, nahlásí
případně underful \vbox, \output tento box vůbec neuvidí. Ten \vbox se
dostane na další stránku. Pokud se tam nevejde, TeX jej tan stejně
strčí a nahlásí overful \vbox, ale tady asi máte v \output možnost
udělat \vsplit a nepoužitý materiál vrátit do \box255. Vícesloupcová
sazba se řeší tak, že se \vsize nastaví na požadovanou výšku zrcadla *
počet sloupců a \hsize na šířku sloupce, takže \output vidí dlouhou
stranu, kterou lze pomocí \vsplit překousat a umístit do sloupců. Dal
by se ale udělat jiný trik, exkurz vysadit do \vboxu, který se nebude
hned sázet. Pak bude třeba vyvolat algoritmus plnění strany. Ten se
vyvolá buď v okamžiku, kdy je již stránka zaplněna, nebo když je
vynucen pomocí \penalty. \break je vlastně \penalty -10000 a při
penalizaci -1000 a nižší se cena stránkového zlomu nepočítá a rovnou
se vyvolá algoritmus plnění stránky. Lze využít obdobný mechanismus,
jaký používá LaTeX při umísťování plovoucích objektů. Jakmile je
exkurs ve \vboxu, vloží se ve vertikálním režimu \penatty -10001.
\output pak ví, že cena -10000 je normální break, jiná cena je
normální stránkový zlom, ale při -10001 je nutno zpracovat exkurs,
který je v jistém \vboxu. Pokud se na stránku vejde celý, šoupne se
tam a vše se vrátí do \box255. Pokud se nevejde, vezme se část,
provede se \shipout a nějak se musí zpracovat zbytek. Nejsem si jist,
zda při vícestránkovém exkursu může jeden \oiutput udělat \shipout
několikrát. Zbytek, který zaplní jen část následující stránky, se
šoupne do \box255.

> MQ
> --
> Jan Matejka aka 'Moskyto'
> mos...@atrey.karlin.mff.cuni.cz
> http://atrey.karlin.mff.cuni.cz/~moskyto
> Phone: +420 721 047 653 (only if really necessary, pls)
> --
> I don't drink, don't smoke, I always get the best possible mark and I go to
> the church every Sunday. I only sometimes lie.
>

> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAk5fSLYACgkQXQEyx5YHw4NI2ACfdVzwjpdfgVeg63I12szdb5QJ
> 9nYAoIbkxaHj8q3qZCfWUf+DROI2ED8p
> =J/jF
> -----END PGP SIGNATURE-----


>
> _______________________________________________
> csTeX mailing list
> cs...@cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>

--

Petr Tomasek

unread,
Sep 5, 2011, 12:41:31 PM9/5/11
to Czech and Slovak TeX-related mailing list
> jaký používá LaTeX při umísťování plovoucích objektů. Jakmile je
> exkurs ve \vboxu, vloží se ve vertikálním režimu \penatty -10001.

Ano, ono makro pana Zýku tento fígl s penaltou v hodnotě -10001
používá.

Petr Tomasek

unread,
Sep 5, 2011, 12:39:18 PM9/5/11
to Czech and Slovak TeX-related mailing list
On Thu, Sep 01, 2011 at 10:50:34AM +0200, Zdenek Wagner wrote:
> Dne 1. září 2011 9:36 Petr Tomasek <tom...@etf.cuni.cz> napsal(a):

> >
> > Zdravím pěkně,
> >
> > chtěl bych poprosit o nakopnutí, jakým směrem se dát.
> > Dělám v plain-(Xe)TeXu sazbu (své dizertace) a chtěl bych
> > mít nějak graficky oddělený "exkurz". Takovýto "exkurz"
> > obsahuje materiál na více stránek včetně poměrně složitých
> > záležitostí, jako jsou tabulky, poznámky pod čarou a další.
> >
> > Idea je mít "exkurz" v rámečku, nebo alespoň vyznačený
> > čarou postraně. V obou případech je problémem ona čára
> > postraně.
> >
> > Našel jsem ve zpravodaji 99/3 článek pana Zýky, který
> > dělá takovou věc, nicméně se mi to úplně nezamlouvá,
> > neboť toto makro má několik situací (dle článku), kdy
> > je potřeba do textu zasáhnout ručně a se mi nelíbí.
> >
> > Chci se proto zeptat, zda-li máte někdo nějaký lepší
> > nápad, jak danou věc řešit, případně, jestli to vůbec
> > obecně v TeXu lze (bez oněch mezních situací, jakou jsou
> > neplechy s plovoucími inserty atd.)?
> >
> Napadá mě další možnost, v jiném článku píše Vít Zýka, jak v pdfTeXu
> uložit pozici sazby, aby se dala pozdfěji využít. Možná by šlo na
> začátku a na konci exkurzu označit polohu (pomocí \vadjust se můžete
> dostat na okraj stránky i v odstavcovém módu), potom upravit \output a
> v něm dodělat čáru. Pokud budete mít na dané stránce jenom začátek
> nebo jenom konec, pak pro druhý konec čáry zvolíte nějaký defaultní
> bod. Je to jenom námět, nezaručuju, že to bude chodit bez problémů.

Dobrý den,

děkuji, to by mohlo být zajímavé (jedinou otázkou je, ve kterém přesně
okamžiku se ten údaj o pozici získá). Napadlo mě, jesli by nešla pozice
vložit do insertu a nechat pak \output ke zpracování: tím by možná šlo
řešit i více exkursů na jedné stránce a

Nicméně momentálně jsem to nakonec kvůli časové tísni vyřešil jinak,
typograficky možná hezčeji, i když asi ne tak funkční: před i za
exkurs dám centrovanou horizontální linku na 40% šířky stránky.
Připomíná to pak trochu typografii německé odborné literatury konce
19. století ;-).

Ale později se k tomuto problému určitě chci určitě vrátit ;-).

Děkuji
Petr Tomášek

> > (Počítám, že asi stejně nebudu jen tak "šáhnout po"
> > existujícím makru, kvůli integraci s vlastní výstupní
> > rutinou...)
> >
> > Díky!
> >

> > P.T.
> >
> > --
> > Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
> > Jabber: but...@jabbim.cz
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > EA 355:001 DU DU DU DU
> > EA 355:002 TU TU TU TU
> > EA 355:003 NU NU NU NU NU NU NU
> > EA 355:004 NA NA NA NA NA
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> >

> > _______________________________________________
> > csTeX mailing list
> > cs...@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
>
> _______________________________________________
> csTeX mailing list
> cs...@cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>

--

Zdenek Wagner

unread,
Sep 5, 2011, 1:21:54 PM9/5/11
to Czech and Slovak TeX-related mailing list
Dne 5. z��� 2011 18:39 Petr Tomasek <tom...@etf.cuni.cz> napsal(a):

> On Thu, Sep 01, 2011 at 10:50:34AM +0200, Zdenek Wagner wrote:
>> Dne 1. z��� 2011 9:36 Petr Tomasek <tom...@etf.cuni.cz> napsal(a):
>> >
>> > Zdrav�m p�kn�,
>> >
>> > cht�l bych poprosit o nakopnut�, jak�m sm�rem se d�t.
>> > D�l�m v plain-(Xe)TeXu sazbu (sv� dizertace) a cht�l bych
>> > m�t n�jak graficky odd�len� "exkurz". Takov�to "exkurz"
>> > obsahuje materi�l na v�ce str�nek v�etn� pom�rn� slo�it�ch
>> > z�le�itost�, jako jsou tabulky, pozn�mky pod �arou a dal��.
>> >
>> > Idea je m�t "exkurz" v r�me�ku, nebo alespo� vyzna�en�
>> > �arou postran�. V obou p��padech je probl�mem ona ��ra
>> > postranďż˝.
>> >
>> > Na�el jsem ve zpravodaji 99/3 �l�nek pana Z�ky, kter�
>> > d�l� takovou v�c, nicm�n� se mi to �pln� nezamlouv�,
>> > nebo� toto makro m� n�kolik situac� (dle �l�nku), kdy
>> > je pot�eba do textu zas�hnout ru�n� a se mi nel�b�.
>> >
>> > Chci se proto zeptat, zda-li m�te n�kdo n�jak� lep��
>> > n�pad, jak danou v�c �e�it, p��padn�, jestli to v�bec
>> > obecn� v TeXu lze (bez on�ch mezn�ch situac�, jakou jsou
>> > neplechy s plovouc�mi inserty atd.)?
>> >
>> Napad� m� dal�� mo�nost, v jin�m �l�nku p�e V�t Z�ka, jak v pdfTeXu
>> ulo�it pozici sazby, aby se dala pozdf�ji vyu��t. Mo�n� by �lo na
>> za��tku a na konci exkurzu ozna�it polohu (pomoc� \vadjust se m�ete
>> dostat na okraj str�nky i v odstavcov�m m�du), potom upravit \output a
>> v n�m dod�lat ��ru. Pokud budete m�t na dan� str�nce jenom za��tek
>> nebo jenom konec, pak pro druh� konec ��ry zvol�te n�jak� defaultn�
>> bod. Je to jenom n�m�t, nezaru�uju, �e to bude chodit bez probl�m�.
>
> Dobrďż˝ den,
>
> d�kuji, to by mohlo b�t zaj�mav� (jedinou ot�zkou je, ve kter�m p�esn�
> okam�iku se ten �daj o pozici z�sk�). Napadlo m�, jesli by ne�la pozice
> vlo�it do insertu a nechat pak \output ke zpracov�n�:�t�m by mo�n� �lo
> �e�it i v�ce exkurs� na jedn� str�nce a
>
Pozice se z�sk� v okam�iku \shipout. Je tedy nutno b�hem \shipout
pozici z�skat a pomoc� \write zapsat do pomocn�ho souboru. V dal��m
pr�chodu se pak poloha na�te a nakresl� ��ra.

> Nicm�n� moment�ln� jsem to nakonec kv�li �asov� t�sni vy�e�il jinak,
> typograficky mo�n� hez�eji, i kdy� asi ne tak funk�n�: p�ed i za
> exkurs d�m centrovanou horizont�ln� linku na 40% ���ky str�nky.
> P�ipom�n� to pak trochu typografii n�meck� odborn� literatury konce
> 19. stoletďż˝ ;-).
>
> Ale pozd�ji se k tomuto probl�mu ur�it� chci ur�it� vr�tit ;-).
>
> D�kuji
> Petr Tom�ek
>
>> > (Po��t�m, �e asi stejn� nebudu jen tak "��hnout po"
>> > existuj�c�m makru, kv�li integraci s vlastn� v�stupn�
>> > rutinou...)
>> >
>> > D�ky!


>> >
>> > P.T.
>> >
>> > --
>> > Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
>> > Jabber: but...@jabbim.cz
>> >
>> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>> > EA 355:001 �DU DU DU DU
>> > EA 355:002 �TU TU TU TU
>> > EA 355:003 �NU NU NU NU NU NU NU
>> > EA 355:004 �NA NA NA NA NA


>> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> >
>> >
>> > _______________________________________________
>> > csTeX mailing list
>> > cs...@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
>>
>> _______________________________________________
>> csTeX mailing list
>> cs...@cs.felk.cvut.cz
>> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>>
>
> --
> Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
> Jabber: but...@jabbim.cz
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> EA 355:001 �DU DU DU DU
> EA 355:002 �TU TU TU TU
> EA 355:003 �NU NU NU NU NU NU NU
> EA 355:004 �NA NA NA NA NA


> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
> _______________________________________________
> csTeX mailing list
> cs...@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

0 new messages