[cstex] Plainovská makra s volitelnými parametry
Jaroslav Hajtmar
hajtmar at gyza.cz
Wed Jun 28 10:17:20 CEST 2017
Dobrý den.
Díky za radu. Udělal jsem, jak jste poradil a zkusím to otestovat… Ještě jednou díky.
BTW: na http://petr.olsak.net/tpp.html je překlep Zpravdaje… Vzpomínám, že jsem kdysi slyšel, že má vyjít TPP, ale pak na to zapomněl, takže teď jsem ji konečně objednal …
Zdraví
Jarda Hajtmar
Dne 28.06.17 9:10, csTeX za uživatele Petr Olsak <cstex-bounces at cs.felk.cvut.cz za uživatele petr at olsak.net> napsal(a):
Unverzálnější řešení nabízí makro \optdef, které je popsáno na
http://petr.olsak.net/opmac-tricks.html#optdef
Aby to začalo fungovat, je třeba ze zmíněné webové stránky obkreslit
příslušných šest řádků a dále z opmac.tex je třeba převzít čtyři řádky
definice \isnextchar.
Zdravím
Petr Olšák
On Wed, 28 Jun 2017, Jaroslav Hajtmar wrote:
>
> Ahoj Honzo.
>
> Díky mnohokrát za rozšíření obzorů, … hned jdu do své knihovničky pro TBN a
> projdu si to, ať jsem aspoň do té doby než to zapomenu ☺…. v obraze …
>
>
>
> Ještě jednou hezký den všem v konferenci.
>
> Jarda Hajtmar
>
>
>
>
>
> Od: csTeX <cstex-bounces at cs.felk.cvut.cz> za uživatele Jan Sustek
> <Jan.Sustek at seznam.cz>
> Příjemce odpovědi: Czech and Slovak list <cstex at cs.felk.cvut.cz>
> Datum: středa 28. června 2017 7:49
> Komu: Czech and Slovak list <cstex at cs.felk.cvut.cz>
> Předmět: Re: [cstex] Plainovská makra s volitelnými parametry
>
>
>
> Ahoj Jardo,
>
> lze použít primitiv \futurelet. Ten je popsaný v TBN, mrkni na to a pak čti
> dál tento mail. :-) V makru \pocetradku se nejprve uloží do \mujtoken token,
> který je použitý za \pocetradku. Pak se provede \pocetradkutest, přičemž
> onen token se vrátí do čtecí fronty přímo za token \pocetradkutest. V makru
> \pocetradkutest se provede test, jestli onen token je hranatá závorka, nebo
> ne. Podle toho se makro větví. Na primitiv \else si TeX šáhne přes
> \expandafter, aby ve čtecí frontě potom bylo \pocetradkusparametrem[ a ne
> \pocetradkusparametrem\else. Řešení následuje.
>
> \def\pocetradku{\futurelet\mujtoken\pocetradkutest}
> \def\pocetradkutest{\ifx\mujtoken[\expandafter\pocetradkusparametrem\else\p
> ocetradkubezparametru\fi}
> \def\pocetradkusparametrem[#1]{\message{Makro volano s parametrem "#1".}}
> \def\pocetradkubezparametru{\message{Makro volano bez parametru.}}
>
> \pocetradku bla \pocetradku[neco] bla \pocetradku
> \bye
>
> Příjemné TeXování přeje
> Honza
>
> ---------- Původní e-mail ----------
> Od: Jaroslav Hajtmar <hajtmar at gyza.cz>
> Komu: Czech and Slovak list <csTeX at cs.felk.cvut.cz>
> Datum: 28. 6. 2017 5:05:31
> Předmět: [cstex] Plainovská makra s volitelnými parametry
>
> Dobrý den.
>
> Rád bych zase po čase "provětral" tuto konferenci dotazem na
> možnost definice plainových maker s volitelným(i) parametrem(y).
>
> Ačkoliv plaintex prakticky nepoužívám (s výjimkou kompilace
> starých věcí z archívu), tak mám většinu maker v ConTeXtu
> plainových.
>
> ConTeXt řeší možnost maker s volitelnými parametry, rád bych se
> však zeptal v této konferenci, zda lze, popř. jak lze v plainu
> definovat makro s volitelným (více volitelnými) parametry.
> Koukal jsem do TBN a na podobnou věc jsem nenarazil. Dále bych
> rád upozornil, že ačkoliv jsem schopen svůj problém řešit makry
> různých názvů (některé bez parametru jiné s parametry), tak mne
> jisté důvody (kompatibilita se staršími verzemi mých dokumentů)
> vedou k tomu, abych se pokusil hledat řešení právě pomocí
> volitelných parametrů.
>
>
>
> Rád bych měl tedy makro s názvem např.: \pocetradku, které by
> vracelo něco jíného než makro \pocetradku{<jmenosouboru>} resp.
> možná lépe pro mne \pocetradku[<jmenosouboru>].
>
>
>
> Makro \pocetradku by vracelo počet řádků jakéhosi defaultního -
> v paměti aktuálního souboru, tzn. bylo by ekvivalentní s makrem
> \pocetradku[], zatímco \pocetradku[<jmenosouboru>] by vracelo
> počet řádků nějakého jiného souboru. Při experimentování jsem
> narazil meze svých znalostí plainu, a proto bych se rád obrátil
> na konferenci. Může mne někdo odkázat na nějaký relevantní zdroj
> popř. mi nějak poradit?
>
> Na internetu jsem našel nějaké podobné věci dělané v LaTeXu, to
> je pro mne však nepoužitelné...
>
>
>
> Rád přijmu i to, že mi někdo rozmluví můj problém řešit zrovna
> takto .... :-).
>
>
>
>
>
> Díky za případné tipy a rady
>
>
>
> Zdraví
>
> Jarda Hajtmar
>
>
>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
>
More information about the csTeX
mailing list