Byl tu resen problem natahovacich zavorek v LaTeXu. Potrebuji naopak udelat
slozenou zavorku o presne zname vysce. V TeXu jsem si upravil definici podle
TBN, str. 341 takto:
\catcode`\@=11
\def\n@space{\nulldelimiterspace=0pt \m@th}
\def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
\catcode`\@=9
V normalnim plainovskem textu mi to funguje korektne, staci napsat \Biggg\} a
mam ji tam -- jenze tu svorku potrebuji dostat do METAPOSToveho obrazku a
kdyz napisu toto:
label.bot(btex
\catcode`\@=11
\def\n@space{\nulldelimiterspace=0pt \m@th}
\def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
\catcode`\@=9
$\Biggg\}$ etex,z101);
nebo toto:
label.bot(btex
...
$\mathclose\Biggg\}$ etex,z102);
tak mi to mpost nebere a krici neco o nedefinovanych ridicich sekvencich.
(error log je úplně na konci) -- jako by se vzpiral tem zavinacum...
Takova vec treba funguje korektne:
label.bot(btex $\mathclose\Bigg\}$ etex,z102);
jenze ta zavorka je pro mne prilis kratka :(
Nebo se da nejak nejak v METAPOSTu zvetsit ta "obycejna" zavorka?
Co jsem zasklil? Co delam spatne? Priznam se, ze METAPOST se teprve nesmele
pokousim dobyvat a mozna jsem prehledl neco elementarniho...
BTW: Resili jste nekdo v METAPOSTu umisteni textu podle krivky?
Dekuji za radu a preji hezky den
Pohoda
Josef
--
Josef Polách, http://www.polach.org
Odchozí zpráva neobsahuje viry, protože k jejímu vytvoření nebyly použity
výměšky Micro$oftu.
Outgoing message doesn't contain viruses, it was not created using the
secretes of Micro$oft.
-------------------
***mpxerr.log***
This is TeX, Version 3.14159 (Web2C 7.3.7x) (format=tex 2003.2.9) 6 NOV 2003
19:53
**mpx2525.tex
(./mpx2525.tex [1] [1] [1] [1] [1]
! Undefined control sequence.
\n @space->\nulldelimiterspace =0pt \m
@th
\Biggg ...\left #1\vbox to 40pt{}\right .\n @space
$}}
<argument> ...\catcode `\@=9 $\mathclose \Biggg \}
$}\vrule width1sp}
\next #1->\setbox \z@ \hbox {#1
}\finsm@sh
l.16 $\mathclose\Biggg\}$}\vrule width1sp}}
}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1]
[1]
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1]
[1]
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1]
[1]
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1]
[1]
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1]
[1]
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1]
[1]
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1] [1]
[1]
[1] [1] [1] [1] [1] [1] [1] [1] [1] [1] )
Output written on mpx2525.dvi (155 pages, 13088 bytes).
*** to je vsechno ***
Ten mechanismus je mirne systemove zavisly, takze neberte prosim
vse zcela doslova. MetaPost proste nasype vse, co najde ve svem
zdrojovem textu pro sazbu TeXem do pomocneho souboru
mpx__tmp.tex (nebo podobne) a pak jej predhodi ke zpracovani
TeXu. Dalsim samostatnym programem pak z vysledneho .dvi
udela dalsi pomocny soubor, ktery zpracovava do sveho vystupu.
Pro reseni Vaseho problemu je nejlepsi upravit skript, ktery
tohle zarizuje tak, aby na zaver ty pomocne soubory nemazal.
Tak snadno zjistite, co Vam MP do toho pomocneho souboru napsal
a proc se nad tim TeX zlobi.
Lubos Kloc
>
>BTW: Resili jste nekdo v METAPOSTu umisteni textu podle krivky?
>
Asi najpohodlnejsie je na taketo veci pouzit METFUN, co je subor makier
postaveny na METAPOSTe, urceny pre ConTeXt. V manuali metafun-p.pdf zo
strankok www.pragma-ade.nl je v casti 10.4 pojednanie o texte umiestnenom
podla roznych kriviek. Snad by tento posup, po uprave, slo uplatnit aj v
cistom METAPOSTe.
--
S pozdravom
Marian Prochocky
\shipout\hbox{\smash{\hbox{\hbox{% line 7 D:/TMP/POLACH/pokmp.mp
\catcode`\@=11
\def\n@space{\nulldelimiterspace=0pt \m@th}
\def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
\catcode`\@=9
$\Biggg\}$}\vrule width1sp}}}
\end{document}
Bez problemu ale funguje toto:
verbatimtex
\catcode`\@=11
\def\n@space{\nulldelimiterspace=0pt \m@th}
\def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
\catcode`\@=9
etex
beginfig(1);
label.bot(btex
$\Biggg\}$ etex,origin);
endfig;
end
V tom souboru pak je
\catcode`\@=11
\def\n@space{\nulldelimiterspace=0pt \m@th}
\def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
\catcode`\@=9
%
\shipout\hbox{\smash{\hbox{\hbox{% line 12 D:/TMP/POLACH/pokmp.mp
$\Biggg\}$}\vrule width1sp}}}
\end{document}
a vse je v poradku.
Zajimalo by mne ale, proc davate \catcode`\@=9. Cekal bych \catcode`\@=12.
Na ten problem to ovsem nema vliv.
Zdravi
Jaromir Kuben
Luboš Kloc wrote:
>> BTW: Resili jste nekdo v METAPOSTu umisteni textu podle krivky?
> Poblem je, ze se to da cele dovnitr do \shipout\hbox, a to vadi. Proc,
> to nevim.
> To treba vysvetli nekdo jiny.
> Obsah toho pomocneho texovskeho souboru (dole Vam p. Kloc radi, jak si
> ho nenechat smazat) je
>
> \shipout\hbox{\smash{\hbox{\hbox{% line 7 D:/TMP/POLACH/pokmp.mp
> \catcode`\@=11
> \def\n@space{\nulldelimiterspace=0pt \m@th}
> \def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
> \catcode`\@=9
> $\Biggg\}$}\vrule width1sp}}}
> \end{document}
>
Nejsem si uplne jist, ale domnivam se, ze \hbox nejprve nacte svuj obsah
(podobne jako makra ctou sve argumenty). \catcode`\@=11 tedy prijde na
radu v okamziku, kdy uz je text rozlozen na tokeny. \def pak definuje
makro \n, ktere musi byt pri kazdem pouziti nasledovano textem @space (to
mate). Na koci rozvoje tohoto makra je \m nasledovane textem @th -- a \m
asi definovane neni.
Zdenek Wagner
e-mail: wag...@cesnet.cz
see also http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz
Lubos Kloc
Jaromír Kuben wrote:
> Poblem je, ze se to da cele dovnitr do \shipout\hbox, a to vadi. Proc,
> to nevim.
> To treba vysvetli nekdo jiny.
> Obsah toho pomocneho texovskeho souboru (dole Vam p. Kloc radi, jak si
> ho nenechat smazat) je
>
> \shipout\hbox{\smash{\hbox{\hbox{% line 7 D:/TMP/POLACH/pokmp.mp
> \catcode`\@=11
> \def\n@space{\nulldelimiterspace=0pt \m@th}
> \def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
> \catcode`\@=9
> $\Biggg\}$}\vrule width1sp}}}
> \end{document}
>
> Bez problemu ale funguje toto:
>
> verbatimtex
> \catcode`\@=11
> \def\n@space{\nulldelimiterspace=0pt \m@th}
> \def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
> \catcode`\@=9
> etex
>
> beginfig(1);
>
> label.bot(btex
> $\Biggg\}$ etex,origin);
> endfig;
>
> end
>
> V tom souboru pak je
>
> \catcode`\@=11
> \def\n@space{\nulldelimiterspace=0pt \m@th}
> \def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
> \catcode`\@=9
> %
> \shipout\hbox{\smash{\hbox{\hbox{% line 12 D:/TMP/POLACH/pokmp.mp
> $\Biggg\}$}\vrule width1sp}}}
> \end{document}
>
>>> \catcode`\@=11
>>> \def\n@space{\nulldelimiterspace=0pt \m@th}
>>> \def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
>>> \catcode`\@=9
>>>
>>> V normalnim plainovskem textu mi to funguje korektne, staci napsat
>>> \Biggg\} a mam ji tam -- jenze tu svorku potrebuji dostat do
>>> METAPOSToveho obrazku a kdyz napisu toto:
>>>
>>> label.bot(btex
>>> \catcode`\@=11
>>> \def\n@space{\nulldelimiterspace=0pt \m@th}
>>> \def\Biggg#1{{\hbox{$\left#1\vbox to 40pt{}\right.\n@space$}}}
>>> \catcode`\@=9