[cstex] Dirty trick s countery

Tomas Hala thala at pef.mendelu.cz
Mon Sep 17 11:57:34 CEST 2012


A ještě jsem to preventivně vyřešil i pro ten případ bez lomítka:

\def\zkusmebez#1{
\ifx\csname#1\endcsname\undefined
 \newcount\csname#1\endcsname \csname#1\endcsname=1
\else
 \advance\csname#1\endcsname by 1 
\fi

\the\abc % pro kontrolu
}

Vyhovuje?

Tom



Mon, Sep 17, 2012 ve 11:41:53AM +0200 Tomas Hala napsal(a):
# 
# Ahoj,
# 
# právě takto to funguje (vyzkoušeno):
# 
# \def\zkusme#1{
# \ifx#1\undefined
#    \newcount#1 #1=1
# \else
#  \advance#1 by 1 
# \fi 
#   \the\abc % pro kontrolu
# }
# \zkusme{\abc}
# \zkusme{\abc}
# \zkusme{\abc}
# 
# Lišíme se akorát v lomítku (\abc vs. abc).
# Je to lomítko problém, nebo ne?
# 
# Tom
# 
# ------------------------
# 
# Mon, Sep 17, 2012 ve 11:32:04AM +0200 Jaroslav Hajtmar napsal(a):
# # Dobrý den.
# # Díky za reakci a za čistý trik :-) , ale bohužel potřebuju tento test
# # a tuto věc udělat uvnitř makra.
# # 
# # tj. něco takového
# # 
# # \def\mymacro#1{
# # \ifx#1\undefined \newcount#1 #1=1
# #   \else \advance#1 by1
# # \fi
# # }
# # 
# # takže po volání makra by to mělo vracet výsledky takto :
# # 
# # \newcount\ahoj
# # 
# # \mymacro{ahoj}
# # \the\ahoj % -----> 1
# # \mymacro{ahoj}
# # \the\ahoj % -----> 2
# # \mymacro{ahoj}
# # \the\ahoj % -----> 3
# # \mymacro{ahoj}
# # \the\ahoj % -----> 4
# # 
# # 
# # Díky Jarda Hajtmar
# # 
# # 
# # 
# # Dne 17. září 2012 9:16 Tomas Hala <thala at pef.mendelu.cz> napsal(a):
# # >
# # > Ahoj,
# # >
# # > nastačil by Ti čistý trik?:-)
# # >
# # > \newcount\abc \abc=66
# # > %\newcount\xyz
# # >
# # > \ifx\xyz\undefined \newcount\xyz \xyz=1
# # >   \else  \advance\abc by 1 N
# # > \fi
# # >
# # > Tom H.
# # >
# # > -------
# # >
# # > Mon, Sep 17, 2012 ve 06:54:48AM +0200 Jaroslav Hajtmar napsal(a):
# # > # Dobrý den.
# # > # Nějak v poslední době nezaznamenávám v této konfeře život, a tak
# # > # přicházím s nabídkou konečně veskrze kvalitního problému :-) ....
# # > #
# # > # Rád bych se zeptal, zda lze pomocí nějakého špinavého triku v TeXu
# # > # vytvořit makro, které bude testovat existenci nějakého counteru, a
# # > # které v případě jeho neexistence jej vytvoří a přiřadí mu jedničku,
# # > # zatímco  v případě jeho existence jej zvýší o jedničku?
# # > #
# # > # Mám na mysli něco takového  (zapsáno symbolicky a naprosto šíleně):
# # > #
# # > # \def\createorincrementcounter#1{
# # > # \if#1\isdefined\newcount#1 #1=1\else\advance#1 by1\fi
# # > # }
# # > #
# # > # Nouzově připouštím i o něco méně šílenou variantu, která bude
# # > # spočívat v tom, že předem vytvořím sadu několika counterů a následně
# # > # bych je rád makrem incrementoval v tomto duchu:
# # > #
# # > # \newcount\myfirstcounter
# # > # \newcount\mysecondcounter
# # > # \newcount\mythirdcounter
# # > #
# # > # \def\advancecounter#1{\advance#1 by1}
# # > #
# # > # Tato konstrukce by měla umožnit makrem \advancecounter incrementovat
# # > # hodnotu některého z čítačů tj. volání
# # > # makra \advancecounter{myfirstcounter} zvýší čítač \myfirstcounter o
# # > # jedničku, zatímco \advancecounter{mysecondcounter} incrementuje
# # > # counter ´\mysecondcounter atd.
# # > #
# # > # Pokud by něco takového šlo, napsal bych následně k čemu to potřebuju :-)...
# # > #
# # > # Díky za případný zájem expertů typu pana Wagnera či pana Šustka ;-)
# # > # ... ale i dalších abych někoho neurazil :-)
# # > #
# # > # Pěkný den s mým červíkem v hlavě přeje
# # > # Jarda Hajtmar
# # > #
# # > #
# # > #



More information about the csTeX mailing list