[cstex] Jak na tvorbu harmonogramu (matematicke schema)?

Petr Olsak petr at olsak.net
Sun Feb 1 19:02:16 CET 2015


Dobrý den,

navrhuji makro \spectable, které například po

\spectable {\x+2, 4*\x-6} {-2, 3/2}

vytvoří tabulku

     x+2  | - | + | +
    4x+6  | - | - | +
             -2  3/2

tj. do parametrů se dají čárkami oddělené výrazy (vytištěné vlevo)
a dále čárkami oddělené nulové body jednotlivých výrazů (vytištěné dole) 
a makro automaticky dopočítá obsah tabulky, tj. ty plusy a mínusy.
Počet výrazů a počet nulových bodů pochopitleně není omezen.

Pro vyhodnocování výrazů jsem použil své vlastní makro apnum (které je na 
CTANu) protože ho nejlépe znám a také proto, že to makro nemá nic 
společního s LaTeXem.

Makro \spectable může vypadat v jednoduché podobě třeba takto:

--------------------------------------------------

\input apnum

{\catcode`*=13 \gdef*{}}

\def\spectable #1#2{\def\tmp{#1}%
    \vbox{\hbox{\vbox{\def\x{x}\printformula#1,,}\kern1em\vrule\kern1em
                \dopointsA#2,\relax\dopointsB#2,,}\null}%
}
\def\printformula#1,{\ifx,#1,\else
    \hbox{\mathcode`*="8000 $#1$}\expandafter\printformula\fi
}
\def\dopointsA#1,#2\relax{\evaldef\x{(#1)-0.01}%
    \vbox{\expandafter\printresults\tmp,,}%
}
\def\dopointsB#1,{\ifx,#1,\else \printpoint{#1}%
    \evaldef\x{(#1)+0.01}%
    \vbox{\expandafter\printresults\tmp,,}
    \expandafter\dopointsB \fi
}
\def\printresults#1,{\ifx,#1,\else

\evaldef\y{#1}\hbox{$\ifnum\SIGN>0+\else-\fi$}\expandafter\printresults\fi
}
\def\printpoint#1{\kern1em \vrule
    \vbox to0pt{\kern4pt\hbox to0pt{\hss$#1$\hss}\vss}\kern1em }

\spectable {\x+2, 4*\x-6} {-2, 3/2}

\end

------------------------------------------------

Pochopitelně na zpracování této ukázky potřebujete plainTeX, například 
csplain.

Zdravím

Petr Olšák


>> >  Dobrý den.
>> >  Chci se zeptat, zda náhodou někdo neřešil např. v LaTeXu, ale obecně
>> >  čímkoliv podobný problém, ať nevymýšlím kolo...
>> > 
>> >  Jde mi o tip na nějaké jednoduché makro, které by dokázalo vysázet 
>> >  schéma -
>> >  harmonogram pro zjištění znaménka výrazu na daném intervalu. Rád bych 
>> >  aby to
>> >  vypadalo podobně jako tohle:
>> >  http://tempfiles.hajtmar.com/files/harmonogram.jpg
>> > 
>> >  Lze to asi udělat různě, ale rád bych to co nejvíce zautomatizoval - 
>> >  čeká
>> >  mne sazba většího počtu takových schémat...
>> >  Osobně mám zájem to nakonec nějak naportovat do ConTeXtu ale nepohrdnu
>> >  jakýmkoliv nápadem na automatizaci ...
>> > 
>> >  Díky za případný tip a jsem s pozdravem všem v konferenci...
>> > 
>> >  Zdraví Jarda Hajtmar


More information about the csTeX mailing list