
Navazuji na Olinův příspěvek.
Aha, tak to se omlouvám, nerozumím latexu tolik, takže jsem nepochopil, jak ten tvůj příklad funguje.
Ale to bychom vlastně museli předat skriptu mathtex.cgi všechny nahrazení v url. Není nějaké omezení na délku adresy?
Chápu tedy dobře, že
\catcode154=\active
zruší předchozí definici znaku 154 a
\def^^9a{\v s}předefinuje znak? Pochopil jsem, že 9a je šestnáctkový zápis 154, ale co znamená ^^?
Offline

↑ BrozekP:
> Není nějaké omezení na délku adresy?
Jo, toho bych se bál, IE má nebo měl limit 2083 znaků.
Offline
↑ BrozekP:
Dvě stříšky s hexovou hodnotou zastupují přesně znak s danou ASCII hodnotou. Jde v podstatě jen o praktické opatření, zamezující nějakým nesprávným interpretacím při prohlížení v jiných kódováních. Fungovat bude i
\defš{\v s}(což vypadá trochu podivně). Přenastavení kategorie na začátku ještě neruší původní význam š, ovšem dovoluje mu to chovat se "aktivně", tj. třeba jako znak ~ (způsobující nedělitelnou mezeru). Nového významu nabývá až nadefinováním.
Také zatím o moc hlouběji do texu nevidím, učím se tak nějak za pochodu luštěním cizích maker a občasným nahlížením do TeXbooku naruby.
A není možné třeba vytvořit nějaký soubor jako nasezmeny.tex, přičemž se v url bude volat jen \input nasezmeny?
Offline

↑ Olin:
Díky za vysvětlení. \input je v mathtexu zakázaný, takže takhle jednoduše by to nešlo.
Offline
Pravda, zakázáno je toho i spousta dalšího (\def, \newcommand, \catcode atd.). Takže tudy asi cesta opravdu nevede.
Offline

Co je zakázáno se dá dobře vyčíst ze zdrojáku k mathtexu:
/* --- list of invalid \commands --- */
static struct {
int action; /* 0=ignore, 1=apply, 2=abort */
char *command; /* invalid \command */
int nargs; /* #args, \command{arg1}...{nargs} */
int optionalpos; /* #{args} before optional [arg] */
int argformat; /* 0=LaTeX {arg} or [arg], 1=arg */
char *displaystring; } /* display this instead */
invalid[] = { /* list of invalid commands */
#if defined(INVALID) /* cc -DINVALID=\"filename\" */
#include INVALID /* filename with invalid \commands */
#endif /* as illustrated below... */
/* actn "command" #args pos fmt "replacement string" or NULL
* ---- ----------------- ----- --- --- -------------------------- */
{ 1, "\\newcommand", 2, 1, 0, NULL },
{ 1, "\\providecommand", 2, 1, 0, NULL },
{ 1, "\\renewcommand", 2, 1, 0, NULL },
{ 1, "\\input", 1, -1, 0, NULL },
/* --plain TeX commands with non-{}-enclosed args we can't parse-- */
{ 1, "\\def", 2, -1, 20, NULL },
{ 1, "\\edef", 2, -1, 20, NULL },
{ 1, "\\gdef", 2, -1, 20, NULL },
{ 1, "\\xdef", 2, -1, 20, NULL },
{ 1, "\\loop", 0, -1, 0, NULL },
{ 1, "\\csname", 0, -1, 0, NULL },
{ 1, "\\catcode", 0, -1, 0, NULL },
{ 1, "\\output", 0, -1, 0, NULL },
{ 1, "\\everycr", 0, -1, 0, NULL },
{ 1, "\\everypar", 0, -1, 0, NULL },
{ 1, "\\everymath", 0, -1, 0, NULL },
{ 1, "\\everyhbox", 0, -1, 0, NULL },
{ 1, "\\everyvbox", 0, -1, 0, NULL },
{ 1, "\\everyjob", 0, -1, 0, NULL },
{ 1, "\\openin", 0, -1, 0, NULL },
{ 1, "\\read", 0, -1, 0, NULL },
{ 1, "\\openout", 0, -1, 0, NULL },
{ 1, "\\write", 0, -1, 0, NULL },
/* --- other dangerous notation --- */
{ 1, "^^", 0, -1, 0, NULL },
#if 0
/* --- test cases --- */
/*{ 1, "\\input", 1, -1, 0,
"{\\mbox{$\\backslash$input\\{#1\\}}}" },*/
{ 1, "\\input", 1, -1, 0,
"{\\mbox{~$\\backslash$input\\{#1\\}~not~permitted~}}" },
{ 1, "\\newcommand", 2, 1, 0, NULL},
/*"{\\mbox{~$\\backslash$newcommand\\{#1\\}[#0]\\{#2\\}"
"~not~permitted~}}" },*/
#endif
{ 0, NULL, 0, -1, 0, NULL } } ; /* end-of-list */Offline

Vrátil jsem zpět tu změnu kódování, abychom si vůbec mohli všimnout, že už na hostingu provedli změnu.
Offline

↑ BakyX:
Znaková sada cp1250 je středoevropská, měla by tedy vyhovovat i slovenštině.
Myslel jsem, že by se balík bable nahrával automaticky, ale pokud má fungovat správně i slovenština, tak to asi bude komplikovanější. (Jde o dělení slov, nahrazování „Chapter“->„Kapitola“ a podobně.)
Offline