🚀 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 Maciej Pilichowski Thu, 12 Mar 2009 21:43
Def z cyframi
#16108
Author: Maciej Pilichowski
Date: Thu, 12 Mar 2009 21:43
20 lines
1267 bytes
Witam,

  Pytanie stracenca, ale coz :-) Czy jest jakies rozszerzenie texa, czy 
trick, cokolwiek, co umozliwiloby zastosowanie w nazwie makra defa cyfr?

  Poniewaz musze miec jakas reprezentacje liczbowa przy defie, wiec na razie 
radze sobie kodujac opisowo cyfry:

\def\tabcapJJTrz{...}
\def\tabcapJJOs{...}

co w ludzkim jezyku oznacza
tabcap113
tabcap118

i tak wlasnie chcialbym pisac.

  Wiec -- da sie? Jesli tak, to jak?

Pozdrawiam serdecznie
Re: Def z cyframi
#16109
Author: Jarosław Sokołowski
Date: Thu, 12 Mar 2009 22:18
39 lines
1820 bytes
Pan Maciej Pilichowski napisał:

>   Pytanie stracenca, ale coz :-) Czy jest jakies rozszerzenie texa, czy 
> trick, cokolwiek, co umozliwiloby zastosowanie w nazwie makra defa cyfr?

Wszustkie znaki czytane przez TeXa mają określoną kategorię. Nazwy makr
muszą składać się ze znaków o kategorii 11, czyli liter.

>   Poniewaz musze miec jakas reprezentacje liczbowa przy defie, wiec na razie 
> radze sobie kodujac opisowo cyfry:
>
> \def\tabcapJJTrz{...}
> \def\tabcapJJOs{...}

Tyz piknie. D.E.K. radzi sobie stosując numerację rzymską.

> co w ludzkim jezyku oznacza
> tabcap113
> tabcap118
>
> i tak wlasnie chcialbym pisac.
>
>   Wiec -- da sie? Jesli tak, to jak?

No to można cyfrom nadać kategorię 11 i uczynić je literami:

\catcode`\0=11
\catcode`\1=11
...
\catcode`\9=11

Ale ostrzegam, że operowanie TeXem, w którym nie ma cyfr,
może stać się trochę kłopotliwe.

-- Jarek

PS
Przy okazki warto zauważyć, że bez żadnych zmian można definiować
makra, których nazwa jest jedną cyfrą, np. \def\1{...}.
Re: Def z cyframi
#16110
Author: Jarosław Sokołowski
Date: Thu, 12 Mar 2009 22:18
39 lines
1876 bytes
Pan Maciej Pilichowski napisał:

>   Pytanie stracenca, ale coz :-) Czy jest jakies rozszerzenie texa, czy 
> trick, cokolwiek, co umozliwiloby zastosowanie w nazwie makra defa cyfr?

Wszystkie znaki czytane przez TeXa mają określoną kategorię. Nazwy makr
muszą składać się ze znaków o kategorii 11, czyli liter.

>   Poniewaz musze miec jakas reprezentacje liczbowa przy defie, wiec na razie 
> radze sobie kodujac opisowo cyfry:
>
> \def\tabcapJJTrz{...}
> \def\tabcapJJOs{...}

Tyz piknie. D.E.K. radzi sobie stosując numerację rzymską.

> co w ludzkim jezyku oznacza
> tabcap113
> tabcap118
>
> i tak wlasnie chcialbym pisac.
>
>   Wiec -- da sie? Jesli tak, to jak?

No to można cyfrom nadać kategorię 11 i uczynić je literami:

\catcode`\0=11
\catcode`\1=11
...
\catcode`\9=11

Ale ostrzegam, że operowanie TeXem, w którym nie ma cyfr,
może stać się trochę kłopotliwe.

-- Jarek

PS
Przy okazki warto zauważyć, że bez żadnych zmian można definiować
makra, których nazwa jest jedną cyfrą, np. \def\1{...}.
Re: Def z cyframi
#16127
Author: Wojciech Mula
Date: Thu, 12 Mar 2009 22:36
42 lines
1816 bytes
Maciej Pilichowski wrote:
>   Pytanie stracenca, ale coz :-) Czy jest jakies rozszerzenie texa, czy 
> trick, cokolwiek, co umozliwiloby zastosowanie w nazwie makra defa cyfr?
>
>   Poniewaz musze miec jakas reprezentacje liczbowa przy defie, wiec na razie 
> radze sobie kodujac opisowo cyfry:
>
> \def\tabcapJJTrz{...}
> \def\tabcapJJOs{...}
>
> co w ludzkim jezyku oznacza
> tabcap113
> tabcap118
>
> i tak wlasnie chcialbym pisac.
>
>   Wiec -- da sie? Jesli tak, to jak?

Np.

\setbox113=\hbox{Hello}
\setbox118=\hbox{World}
\def\tabcap#1{\unhcopy#1}

\tabcap113 \tabcap118

Alternatywnie możesz użyć rejestrów toks, które przechowują tylko tekst.

\toks113={Hello}
\toks118={World}
\def\tabcap#1{\the\toks#1}

Wada obu rozwiązań - masz do dyspozycji liczby od 0 do 255.

Być może texperci mają lepsze rozwiązania (ja jestem
latechnikiem czasem tylko wypuszczającym się na wody
plaina).

w.

-- 
Kupię: http://wm.ite.pl/kupie.html
Re: Def z cyframi
#16111
Author: Maciej Pilichowski
Date: Fri, 13 Mar 2009 08:34
21 lines
1507 bytes
Jarosław Sokołowski wrote:

> No to można cyfrom nadać kategorię 11 i uczynić je literami:
> 
> \catcode`\0=11
> \catcode`\1=11
> ...
> \catcode`\9=11
> 
> Ale ostrzegam, że operowanie TeXem, w którym nie ma cyfr,
> może stać się trochę kłopotliwe.

Errm, ale co to oznacza -- jestem za duzy laik z texa :-) Czy o to oznacza, 
ze wszedzie poza tymi defami nie bede mogl stosowac cyfr?

> Przy okazki warto zauważyć, że bez żadnych zmian można definiować
> makra, których nazwa jest jedną cyfrą, np. \def\1{...}.

To niestety nie pojdzie mam za duzo tych defow.

Pozdrawiam serdecznie
Re: Def z cyframi
#16128
Author: Maciej Pilichowski
Date: Fri, 13 Mar 2009 08:36
14 lines
1249 bytes
Wojciech Mula wrote:

> Alternatywnie możesz użyć rejestrów toks, które przechowują tylko tekst.
> 
> \toks113={Hello}
> \toks118={World}
> \def\tabcap#1{\the\toks#1}
> 
> Wada obu rozwiązań - masz do dyspozycji liczby od 0 do 255.

Na szczescie na razie sie jeszcze mieszcze w tym zakresie, wiec przecwicze. 
Dziekuje pieknie!

Pozdrawiam serdecznie
Re: Def z cyframi
#16112
Author: Jarosław Sokołowski
Date: Fri, 13 Mar 2009 16:33
26 lines
1904 bytes
Pan Maciej Pilichowski napisał:

>> Ale ostrzegam, że operowanie TeXem, w którym nie ma cyfr,
>> może stać się trochę kłopotliwe.
>
> Errm, ale co to oznacza -- jestem za duzy laik z texa :-) Czy o to
> oznacza, ze wszedzie poza tymi defami nie bede mogl stosowac cyfr?

Ależ skąd. Nadal będzie można w tym TeXu pisać rozprawę o tym, jak to
w roku 1410 Jagiełło pogonił kota krzyżakom, albo o tym, już drugi
miesiąc z rzędu 13 wypada w piątek. Nie będzie można natomiast używać
cyfr w składni TeXowej tam, gdzie trzeba przedstawić jakąś wartość
liczbową.

>> Przy okazki warto zauważyć, że bez żadnych zmian można definiować
>> makra, których nazwa jest jedną cyfrą, np. \def\1{...}.
>
> To niestety nie pojdzie mam za duzo tych defow.

Z ciekawości zapytam, skąd "duży laik z TeXa" *wie*, że koniecznie
potrzeba jakichś defów? Jest wielce prawdopodobne, że dany problem
można rozwiązać tworząc mniej definicji, za to sprytniejszych, na
przykład z parametrami, pod które mogą być podstawiane liczby.

-- 
Jarek
Re: Def z cyframi
#16113
Author: Wlodzimierz Macewicz
Date: Fri, 13 Mar 2009 17:03
31 lines
2230 bytes
mozna tez definiowac/uzywac przez \csname ...\endcsname



Użytkownik "Jarosław Sokołowski" <jaros@lasek.waw.pl> napisał w wiadomości news:slrngrl2md.6i9.jaros@falcon.lasek.waw.pl...
> Pan Maciej Pilichowski napisał:
> 
>>> Ale ostrzegam, że operowanie TeXem, w którym nie ma cyfr,
>>> może stać się trochę kłopotliwe.
>>
>> Errm, ale co to oznacza -- jestem za duzy laik z texa :-) Czy o to
>> oznacza, ze wszedzie poza tymi defami nie bede mogl stosowac cyfr?
> 
> Ależ skąd. Nadal będzie można w tym TeXu pisać rozprawę o tym, jak to
> w roku 1410 Jagiełło pogonił kota krzyżakom, albo o tym, już drugi
> miesiąc z rzędu 13 wypada w piątek. Nie będzie można natomiast używać
> cyfr w składni TeXowej tam, gdzie trzeba przedstawić jakąś wartość
> liczbową.
> 
>>> Przy okazki warto zauważyć, że bez żadnych zmian można definiować
>>> makra, których nazwa jest jedną cyfrą, np. \def\1{...}.
>>
>> To niestety nie pojdzie mam za duzo tych defow.
> 
> Z ciekawości zapytam, skąd "duży laik z TeXa" *wie*, że koniecznie
> potrzeba jakichś defów? Jest wielce prawdopodobne, że dany problem
> można rozwiązać tworząc mniej definicji, za to sprytniejszych, na
> przykład z parametrami, pod które mogą być podstawiane liczby.
> 
> -- 
> Jarek
Re: Def z cyframi
#16114
Author: Jarosław Sokołowski
Date: Fri, 13 Mar 2009 18:49
29 lines
2234 bytes
Pan Wlodzimierz Macewicz zauważył:

> mozna tez definiowac/uzywac przez \csname ...\endcsname

No, można. Ale czy ma to jakiś związek z pytaniem zadanym
na początku tego wątku? Albo z moim postulatem, by szukać
możliwie prostych rozwiązań?  Ale TeX to TeX, można w nim
zdefiniować lub przedefiniować wszystko na wiele sposobów.
Dawno tego tu nie było, więc pozwolę sobie załączyć jedną
z lepszych ilustracji tej prawdy. Z prośbą o przeTeXowanie
przez wszystkich tych, którzy do tej pory tego nie robili.


\let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
:76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye

-- 
Jarek
Re: Def z cyframi
#16115
Author: Wlodzimierz Macewicz
Date: Sat, 14 Mar 2009 08:03
51 lines
3229 bytes
bylo pytanie jak zrobic (uzyc)  makro w ktorego nazwie bedzie cyfra

odpowiedzi moga byc dwie (i chyva tylko dwie)
1. zmienic kategorie cyfr (Twoj postulat)
2. definiowac/uzywac  przez \csname (moj postulat)

metoda pierwsza moze miec skutki uboczne (co prawda nie przychodzi mi na mysl zaden)

pozdrawiam WM

PS

troche nie a propos (podobnie jak Twoj przyklad) -- program ktory nie jest czytelny
na ,,pierwszy rzut oka'' jest ZLE NAPISANYM programem!

w kontekscie pytania pierwotnego przedefiniowanie kategorii jest atrakcyjne i wydaje sie proste,
ale (tak troche przesadnie teoretyzujac) ktos analizujac kod bylby zdziwiony ,,jak to dziala i dlaczego''
uzycie jawne \csname ...\endcsname -- uwidacznia zastosowany mechanizm



Użytkownik "Jarosław Sokołowski" <jaros@lasek.waw.pl> napisał w wiadomości news:slrngrlamf.c05.jaros@falcon.lasek.waw.pl...
> Pan Wlodzimierz Macewicz zauważył:
> 
>> mozna tez definiowac/uzywac przez \csname ...\endcsname
> 
> No, można. Ale czy ma to jakiś związek z pytaniem zadanym
> na początku tego wątku? Albo z moim postulatem, by szukać
> możliwie prostych rozwiązań?  Ale TeX to TeX, można w nim
> zdefiniować lub przedefiniować wszystko na wiele sposobów.
> Dawno tego tu nie było, więc pozwolę sobie załączyć jedną
> z lepszych ilustracji tej prawdy. Z prośbą o przeTeXowanie
> przez wszystkich tych, którzy do tej pory tego nie robili.
> 
> 
> \let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
> PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
> A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
> AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
> Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
> :76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
> RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
> B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
> I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
> ;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
> s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
> LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
> doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye
> 
> -- 
> Jarek
Re: Def z cyframi
#16122
Author: Maciej Pilichowski
Date: Sat, 14 Mar 2009 09:30
16 lines
1575 bytes
Jarosław Sokołowski wrote:

> Z ciekawości zapytam, skąd "duży laik z TeXa" *wie*, że koniecznie
> potrzeba jakichś defów?

Bo sie zapytam na tej wlasnie grupie ;-)

Chodzilo o taki problem -- wykonywane sa serie doswiadczen:
seri A - dosw. 1, 2, 3, 4 5, seria B -- dosw. 1, 2, 3, .. seria C... itd.

Parametry dosw. odpowiadaja sobie miedzy roznymi seriami, wyniki sa 
umieszczone w tabelkach. Stad chcialbym miec te same podpisy pod tabelami 
A1, B1, C1..., takie same pod A2, B2, C2, itd. Oczywiscie bez recznego 
copy&paste tresci podpisu.

Pozdrawiam serdecznie
Re: Def z cyframi
#16121
Author: Maciej Pilichowski
Date: Sat, 14 Mar 2009 10:08
23 lines
1685 bytes
Wlodzimierz Macewicz wrote:

> mozna tez definiowac/uzywac przez \csname ...\endcsname

Dziekuje za porade, znalazlem przyzwoity opis tutaj:
http://www.tug.org/TUGboat/Articles/tb10-2/tb24bechtolsheim.pdf

str. 204, 1 kolumna zwlaszcza.

Z tego co zrozumialem :-D wynikaloby ze moge po prostu napisac:

\expandafter\def\csname tabcap3\endcsname{podpis pod tabelka 3.}

a pozniej napisac
\caption{\tabcap3}

Niestety to nie dziala. Jesli zamiast 3 wpisze to moje kodowanie "Trz" to 
dziala. Niby wiec i tu cyfry przeszkadzaja, choc wg ww. dokumentu powinienem 
moc wpisywac i cyfry i myslniki i co tam jeszcze bym chcial.

Co tu jest nie tak?

Pozdrawiam serdecznie
Re: Def z cyframi
#16116
Author: Jarosław Sokołowski
Date: Sat, 14 Mar 2009 12:11
65 lines
4180 bytes
Pan Wlodzimierz Macewicz napisał:

> bylo pytanie jak zrobic (uzyc)  makro w ktorego nazwie bedzie cyfra
>
> odpowiedzi moga byc dwie (i chyva tylko dwie)
> 1. zmienic kategorie cyfr (Twoj postulat)
> 2. definiowac/uzywac  przez \csname (moj postulat)
>
> metoda pierwsza moze miec skutki uboczne (co prawda nie przychodzi
> mi na mysl zaden)

Ona ma całe mnóstwo skutków ubocznych. Albo inaczej na to patrząc --
jeden, za to fatalny. Niemożność użycia cyfr powoduje, że nezrozumiałe
dla TeXa stają się polecanie takie jak \vskip 3 mm.

> troche nie a propos (podobnie jak Twoj przyklad) -- program ktory nie
> jest czytelny na ,,pierwszy rzut oka'' jest ZLE NAPISANYM programem!

Ogólnie rzecz ujmując, wszystko to racja. Ale posłuże się jeszcze raz
tym samym przykładem. Nazwać tego ZLE NAPISANYM programem nie mogę.
To majstersztyk po prostu.

> w kontekscie pytania pierwotnego przedefiniowanie kategorii jest
> atrakcyjne i wydaje sie proste, ale (tak troche przesadnie teoretyzujac)
> ktos analizujac kod bylby zdziwiony ,,jak to dziala i dlaczego'' uzycie
> jawne \csname ...\endcsname -- uwidacznia zastosowany mechanizm

Znowu można na to spojrzeć z innej strony. Zmiana kategorii znaku jest
narzędziem często wykorzystywanym w TeXu i okołoTeXowych zastosowaniach.
Najczęściej definiuje się dodatkowy (obok albo zamiast "\") "active char",
na przykład jako "@". Podobnie nadaje się różnym znakom kategorię 14,
czyli "comment character" (tak jak normalnie znak "%"). Natomiast
polecenia \csname ...\endcsname przeznaczone są do stosowania głęboko
w definicjach. Większość użytkowników TeXa w ogóle nie zdaje sobie sprawy
z ich istnienia. Jawnie użyte w manuskrypcie, to dopiero mogą zdziwić.

>> Pan Wlodzimierz Macewicz zauważył:
>> 
>>> mozna tez definiowac/uzywac przez \csname ...\endcsname
>> 
>> No, można. Ale czy ma to jakiś związek z pytaniem zadanym
>> na początku tego wątku? Albo z moim postulatem, by szukać
>> możliwie prostych rozwiązań?  Ale TeX to TeX, można w nim
>> zdefiniować lub przedefiniować wszystko na wiele sposobów.
>> Dawno tego tu nie było, więc pozwolę sobie załączyć jedną
>> z lepszych ilustracji tej prawdy. Z prośbą o przeTeXowanie
>> przez wszystkich tych, którzy do tej pory tego nie robili.
>> 
>> 
>> \let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
>> PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
>> A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
>> AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
>> Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
>> :76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
>> RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
>> B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
>> I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
>> ;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
>> s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
>> LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
>> doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye

-- 
Jarek
Re: Def z cyframi
#16123
Author: Jarosław Sokołowski
Date: Sat, 14 Mar 2009 12:26
29 lines
2055 bytes
Pan Maciej Pilichowski napisał:

>> Z ciekawości zapytam, skąd "duży laik z TeXa" *wie*, że koniecznie
>> potrzeba jakichś defów?
>
> Bo sie zapytam na tej wlasnie grupie ;-)
>
> Chodzilo o taki problem -- wykonywane sa serie doswiadczen:
> seri A - dosw. 1, 2, 3, 4 5, seria B -- dosw. 1, 2, 3, .. seria C... itd.
>
> Parametry dosw. odpowiadaja sobie miedzy roznymi seriami, wyniki sa 
> umieszczone w tabelkach. Stad chcialbym miec te same podpisy pod tabelami 
> A1, B1, C1..., takie same pod A2, B2, C2, itd. Oczywiscie bez recznego 
> copy&paste tresci podpisu.

Wśród licznych możliwych rozwiązań, które pogodzą uwarunkowania składni TeXa
i czytelność kodu, jest jeszcze metoda z \ifcase ... \or ... \fi.

\def\seriaA#1{\ifcase #1 \or
W doświadczeniu 1 zasyczało, błysnęło i wybuchło \or
W doświadczeniu 2 nic nie zaobserwowano \or
W doświadczeniu 3 coś wyszło, ale kol.~Dreptak zgubił notatki \or
W doświadczeniu 4 istnieją spory na temat tego, co zaobserwowano \or
Doświadczenia 5 nie przeprowadzono, bo skończyły sie fundusze \fi}

Później piszemy pod tabelami na przykład \seriaA{3}

-- 
Jarek
Re: Def z cyframi
#16124
Author: Maciej Pilichowski
Date: Sat, 14 Mar 2009 17:07
16 lines
1675 bytes
Jarosław Sokołowski wrote:

> Wśród licznych możliwych rozwiązań, które pogodzą uwarunkowania składni
> TeXa i czytelność kodu, jest jeszcze metoda z \ifcase ... \or ... \fi.
> 
> \def\seriaA#1{\ifcase #1 \or

Dziekuje, w moim przypadku mam jednak numeracje nieciagla (nie wszystkie 
wyniki daje do publikacji). Moglbym to zmienic na ifnum, ale poniewaz tex 
nie ma elseif (?) tylko else ifnum bedzie przy edycji musialbym liczyc 
liczbe wierszy, zeby dopisac odpowiednia liczbe fi. 

Zapis bylby bardziej elegancki, ale jego obsluga bardziej zlozona niz 
obecnie.

Pozdrawiam serdecznie
Re: Def z cyframi
#16119
Author: Wojciech Muła
Date: Sat, 14 Mar 2009 18:16
24 lines
2120 bytes
On Fri, 13 Mar 2009 18:49:52 +0000 (UTC) Jarosław Sokołowski
<jaros@lasek.waw.pl> wrote:

> \let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
> PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
> A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
> AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
> Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
> :76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
> RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
> B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
> I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
> ;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
> s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
> LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
> doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye

Cudo! Mniej więcej rozumiem połowę pierwszego wiersza.
To Twoje dzieło?

w.

-- 
Kupię: http://wm.ite.pl/kupie.html
Re: Def z cyframi
#16117
Author: Wlodzimierz Macewicz
Date: Sat, 14 Mar 2009 20:55
50 lines
3510 bytes
> jeden, za to fatalny. Niemożność użycia cyfr powoduje, że nezrozumiałe
> dla TeXa stają się polecanie takie jak \vskip 3 mm.
> 

takich polecen raczej nalezy unikac!!!!

moze bedzie prosciej wyrzezbic to w kamieniu ;-)

jesli juz to zdefiniuj sobie wczesniej \def\mojskip{\vskip 3pt plus 1pt minus 1pt} -- przed przedefiniowaniem kategorii



>> troche nie a propos (podobnie jak Twoj przyklad) -- program ktory nie
>> jest czytelny na ,,pierwszy rzut oka'' jest ZLE NAPISANYM programem!
> 
> Ogólnie rzecz ujmując, wszystko to racja. Ale posłuże się jeszcze raz
> tym samym przykładem. Nazwać tego ZLE NAPISANYM programem nie mogę.
> To majstersztyk po prostu.

NIE, to jest ciekawostka, dowcip -- nazwij to jak chcesz, ale nie dobrze napisanym programem!!
u mnie studenci wylatuja z hukiem za takie ,,majstersztyki''

sp. Jan Bielecki lubowal sie w swoich podrecznikach jez. C w sztuczkach z uzyciem 5 wskaznikow do czegos tam
czyli tworzeniu kodu ABSOLUTNIE nieczytelnego. dlaczego nie nalezy tak robic? odpowiedz prosta, jesli nie wiadomo o co chodzi,
to zapewne chodzi o pieniadze ;-) (chodzi o kwalifikacje i czas poswiecony na pielegnacje/modyfikacje kodu)


> 
>> w kontekscie pytania pierwotnego przedefiniowanie kategorii jest
>> atrakcyjne i wydaje sie proste, ale (tak troche przesadnie teoretyzujac)
>> ktos analizujac kod bylby zdziwiony ,,jak to dziala i dlaczego'' uzycie
>> jawne \csname ...\endcsname -- uwidacznia zastosowany mechanizm
> 
> Znowu można na to spojrzeć z innej strony. Zmiana kategorii znaku jest
> narzędziem często wykorzystywanym w TeXu i okołoTeXowych zastosowaniach.
> Najczęściej definiuje się dodatkowy (obok albo zamiast "\") "active char",
> na przykład jako "@". Podobnie nadaje się różnym znakom kategorię 14,
> czyli "comment character" (tak jak normalnie znak "%"). Natomiast
> polecenia \csname ...\endcsname przeznaczone są do stosowania głęboko
> w definicjach. Większość użytkowników TeXa w ogóle nie zdaje sobie sprawy
> z ich istnienia. Jawnie użyte w manuskrypcie, to dopiero mogą zdziwić.


tak ale ich jawne uzycie co najwyzej moze spowodowac zerkniecie do dokumentacji

WIDAC ZE JEST DZIWNIE, natomiast uzycie \aqq123 zdziwi dlaczego to dziala tak, a nie zgodnie z dokumentacja?

w pierwszym wypadku widac ze czegos nie wiem, a w drugim wypadku nei wiem dlaczego tak to dziala?

pozdr WM
Re: Def z cyframi
#16118
Author: Jarosław Sokołowski
Date: Sat, 14 Mar 2009 23:24
68 lines
4197 bytes
Pan Wlodzimierz Macewicz napisał w Usenecie, bo nie mógł w kamieniu:

>> jeden, za to fatalny. Niemożność użycia cyfr powoduje, że nezrozumiałe
>> dla TeXa stają się polecanie takie jak \vskip 3 mm.
>
> takich polecen raczej nalezy unikac!!!!

A to czemu?

> moze bedzie prosciej wyrzezbic to w kamieniu ;-)

Próbowałem jednego i drugiego. Jednak nie jest prościej.

> jesli juz to zdefiniuj sobie wczesniej \def\mojskip{\vskip 3pt plus
> 1pt minus 1pt} -- przed przedefiniowaniem kategorii

A jeśli nagle będę na przykład potrzebował wkleić obrazek, a ten
drań nieszczęśliwie będzie miał taki rozmiar, że bez dodatkowego
ekstraordynaryjnego odstępu wszystko zacznie się źle łamać,
zostanie wisząca jedna linijka, to co, nie mogę sobie tak vskipnąć,
tylko muszę używać wcześniej przygotowanych i głęboko przemyślanych
makr?

>>> troche nie a propos (podobnie jak Twoj przyklad) -- program ktory nie
>>> jest czytelny na ,,pierwszy rzut oka'' jest ZLE NAPISANYM programem!
>> 
>> Ogólnie rzecz ujmując, wszystko to racja. Ale posłuże się jeszcze raz
>> tym samym przykładem. Nazwać tego ZLE NAPISANYM programem nie mogę.
>> To majstersztyk po prostu.
>
> NIE, to jest ciekawostka, dowcip -- nazwij to jak chcesz, ale nie
> dobrze napisanym programem!! u mnie studenci wylatuja z hukiem za
> takie ,,majstersztyki''

To są jeszcze studenci, którzy potrafią takie rzeczy pisać? To przywraca
moja mocno nadszarpniętą wiarę w młode pokolenie. Ktoś, kto potrafi
bawić się różnymi 'dirty tricks' i stać go na takie dowcipy, na ogół
potrafi pisać pięknie i klarownie. W odwrotną strone wynikanie nie
zawsze zachodzi.

>> Znowu można na to spojrzeć z innej strony. Zmiana kategorii znaku jest
>> narzędziem często wykorzystywanym w TeXu i okołoTeXowych zastosowaniach.
>> Najczęściej definiuje się dodatkowy (obok albo zamiast "\") "active char",
>> na przykład jako "@". Podobnie nadaje się różnym znakom kategorię 14,
>> czyli "comment character" (tak jak normalnie znak "%"). Natomiast
>> polecenia \csname ...\endcsname przeznaczone są do stosowania głęboko
>> w definicjach. Większość użytkowników TeXa w ogóle nie zdaje sobie sprawy
>> z ich istnienia. Jawnie użyte w manuskrypcie, to dopiero mogą zdziwić.
>
> tak ale ich jawne uzycie co najwyzej moze spowodowac zerkniecie do
> dokumentacji
>
> WIDAC ZE JEST DZIWNIE, natomiast uzycie \aqq123 zdziwi dlaczego to dziala
> tak, a nie zgodnie z dokumentacja?
>
> w pierwszym wypadku widac ze czegos nie wiem, a w drugim wypadku nei wiem
> dlaczego tak to dziala?

To już zmartwienie tego, który nie wie, a nie tego, który pisze.
Kategorii znaków jest tuzin, a samych znaków ledwie dziesięć razy
tyle. W TeXowym manuskrypcie trudno cokolwiek ukryć, a proste
sztuczki w rodzaju zmiany kategorii znaku potrafią nieraz zaoszczędzić
setki wierszy kodu (i z dziesięć razy teyle dokumentacji do niego).
A do takiej sztuczki czasem wystarczą ledwie trzy wiersze komentarza,
aby wszystko stało się jasne.

-- 
Jarek
Re: Def z cyframi
#16120
Author: Jarosław Sokołowski
Date: Sat, 14 Mar 2009 23:32
26 lines
2163 bytes
Pan Wojciech Muła napisał:

>> \let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
>> PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
>> A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
>> AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
>> Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
>> :76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
>> RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
>> B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
>> I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
>> ;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
>> s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
>> LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
>> doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye
>
> Cudo! Mniej więcej rozumiem połowę pierwszego wiersza.
> To Twoje dzieło?

Nie, niestety nie moje. Dość stare, ma chyba ponad dziesięć lat,
nie pamiętam już kto jest autorem (pewnie jakiś student wylatujący
z hukiem za drzwi). Warto co jakiś czas takie rzeczy przypominać.
Też uważam, że cudowne.

-- 
Jarek
Re: Def z cyframi
#16125
Author: Jarosław Sokołowski
Date: Sat, 14 Mar 2009 23:36
27 lines
2020 bytes
Pan Maciej Pilichowski napisał (i postanowił jednak opublikować):

> Dziekuje, w moim przypadku mam jednak numeracje nieciagla (nie wszystkie 
> wyniki daje do publikacji). Moglbym to zmienic na ifnum, ale poniewaz tex 
> nie ma elseif (?) tylko else ifnum bedzie przy edycji musialbym liczyc 
> liczbe wierszy, zeby dopisac odpowiednia liczbe fi. 
>
> Zapis bylby bardziej elegancki, ale jego obsluga bardziej zlozona niz 
> obecnie.

\def\koronacje#1{%
\ifnum#1=1386 Władysław Jagiełło       \fi
\ifnum#1=1434 Władysław Warneńczyk     \fi
\ifnum#1=1447 Kazimierz Jagiellończyk  \fi
\ifnum#1=1492 Jan Olbracht             \fi
\ifnum#1=1501 Aleksander Jagiellończyk \fi
\ifnum#1=1506 Zygmunt Stary            \fi
\ifnum#1=1548 Zygmunt August           \fi
}

Czy ten zapis z "\ifnum" ma złożoną obsługę? Czy jest za mało elegancki?
Czy trzeba w nim liczyć wiersze? Bo jak mi ktoś powie, że jest on
algorytmicznie mało optymalny, to mu poradzę aby sobie DVI przygotowywał
w asemblerze, nie w TeXu.

-- 
Jarek
Re: Def z cyframi
#16126
Author: Maciej Pilichowski
Date: Sun, 15 Mar 2009 09:51
11 lines
1358 bytes
Jarosław Sokołowski wrote:

> \def\koronacje#1{%
> \ifnum#1=1386 Władysław Jagiełło       \fi
> \ifnum#1=1434 Władysław Warneńczyk     \fi
> ...
> }
 
Zacmienie umyslowe :-) Przepraszam i dziekuje!

Pozdrawiam serdecznie
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