[NTG-context] Environments
Hans Aberg
haberg-1 at telia.com
Tue Jul 7 14:57:43 CEST 2015
> On 7 Jul 2015, at 11:05, luigi scarso <luigi.scarso at gmail.com> wrote:
> For "LaTeX style environments" do you mean
> e.g.
> https://it.sharelatex.com/learn/Environments
> ? (just to be sure )
Yes, the \begin{foo} … \end{foo} syntax. Technically, an environment means that variables are stacked in a syntactically local group, as in \begingroup … \endgroup.
The syntax in the example file is «foo· … ·» or «foo· … ·foo», so one does not have to write the ‘start' and ‘stop’ all the time, and does not have to write the name of the environment again at the end.
> In this case context has the \define<something> commands as for example
> http://wiki.contextgarden.net/Command/definetyping
I think this corresponds (in pseudocode) to my
\new{Environment}{typing}%
{}{<before code>}%
{<after code>}{}
In LaTeX, if I remember correctly, it would expand to \begingroup<before code> … <after code>\endgroup.
I added so one can have
\new{Environment}{typing}%
{<before code>}{<begin code>}%
{<end code>}{<after code>}
expanding to
<before code>\begingroup<begin code> … <end code>\endgroup<after code>
So one has more control over designing the environment. One can then also define a new environment
\new{Environment}{typingmore}%
{<code>}{<code>«typing·<args>}%
{·typing»<code>}{<code>}
I think, to make specializations.
> Context has also
> http://wiki.contextgarden.net/Command/startenvironment
> but I suppose it's not what you mean.
It looks like just adding a series of command names, rather than a stacked environment, or a namespace (module). If one wants to avoid name clashes, one can have names like in directory names, living without any local group.
More information about the ntg-context
mailing list