latex, parancsbol kornyezet

Fórumok

Sziasztok!
tex/latex alatt hogyan lehet, ha lehet egyatalan egy mar letezo egyargumentumos parancsot kornyezette' atalakitani? Ha adott egy

\foo{valami}

egyargumentumos parancs, akkor lehet-e csinalni egy olyan

\begin{bar} valami \end{bar}

kornyezetet, ami az elobbi

\foo{...}

-t generalja le?
A.

Hozzászólások

Érdekes a téma. Megoldást nem tudok, úgyhogy ötletelek. Hátha segít.

Ha simán megcsinálod, hogy
\def\vastag#1{\textbf{#1}}
majd használod enivonmentként, akkor csak az első betűt fogja vastagítani. Ha a következőképpen definiálod, akkor
\def\vastag#1 {\textbf{#1}}
az első szót vastagítja (ha nincs space, akkor pedig hibát ad). Elkezdtem olvasni plain.sty fájlt, ami ilyet csinál, de elég kacifántos. Gondolom köze van a

\@ifnextchar

részhez.

Ha összehoztad, akkor létszi írd le a megoldást.

Aha, oke, kis alvas utan maris jobban megy: tehat, ez kell:

\begin{lrbox}{cmd} text \end{lrbox}

, majd az environment definiciojanak az end a'ga'ban felhasznalni:
pl:


\newsavebox{envvastagbox}
\newenvironment{envvastag}{\begin{lrbox}{envvastagbox}}{\end{lrbox}\textbf{\usebox{envvastagbox}}}

elvileg... mindjart kiderul jo-e :]

Ha összehoztad, akkor létszi írd le a megoldást.
jaja, igen, a fenti megoldas mukodik. Igaz naivan nem lehet a parancsot beletenni, akkor ha a parancson belul vannak osszetettebb objektumok (pl minipage kornyezet), akkor azokat z lrbox env mogott rogton kell inditani es az end{lrbox} elott zarni, mintsem egy kulso parancsba beletenni. Imigyen fasza'n mukodik minden.

A.