Re: [NTG-context] Using LateX packages

2005-01-26 Thread h h extern
Holger Peters wrote:
Hi,
I want to use a LaTeX Package (clrscode), or at least I want to port it 
to Context.

http://www.cs.dartmouth.edu/~thc/clrscode/
hm, not complex but mostly calls to latex font switches ans such
Is there some way to use LaTex Packages (I guess not).
so you need to rewrite it
Is there documentation about writing ConTeXt modules? (I didn't find any).
- try to use high level constructs (or ask me to provide them -)
- only use low level macroe documented in syst-*.tex and supp-*.tex (the ones 
mentioned in \macros, not the \dododo things)
- think fresh, forget about how other packages do it, think about what *you* 
want / need
- user modules are prefixed with t- (m- x- p- and s- are reserved for core 
modules and styles)

Now, about your code beautifier. Since you end up with additional markup anyway, 
why not go XML. You can then embed that in you tex document as usual (and have 
the full power of context available) but also use the code in webpages.

To give you an idea:
\starttext
\long\def\startcode#1\stopcode
 {\begingroup
  \startXMLmapping[code]%
  \enableXML\scantokens{#1}%
  \stopXMLmapping
  \endgroup}
\newcount\codedepth
\newdimen\codeindent \codeindent=1em
\def\incrementcodedepth
  {\advance\codedepth\plusone
   \ifnum\codedepth\plusone \advance\leftskip\codeindent \fi
   \relax}
\def\decrementcodedepth
  {\ifnum\codedepth\plusone \advance\leftskip-\codeindent \fi
   \advance\codedepth\minusone
   \relax}
\defineregister[function][functions]
\setupregister[function][expansion=yes]
\startXMLmapping[code]
  \defineXMLsingular [if]   {\endgraf{\bf if}\incrementcodedepth}
  \defineXMLsingular [then] {{\bf then}\endgraf\incrementcodedepth}
  \defineXMLsingular [else] {\endgraf\decrementcodedepth{\bf 
else}\endgraf\incrementcodedepth}
  \defineXMLsingular [end]  {\endgraf{\bf end}\decrementcodedepth\endgraf}

  \defineXMLsingular [int]  {{\bf int}\space\ignorespaces}
  \defineXMLsingular [bool] {{\bf bool}\space\ignorespaces}
  \defineXMLsingular [var]  [id='x'] {{\tf \XMLop{id}}}
  \defineXMLenvironment [function] [id=unknown]
{\endgraf\function{\XMLop{id}}{\bf function}\space{\sl\XMLop{id}}\space}
{\endgraf\incrementcodedepth}
  \defineXMLenvironment [return]
{{\bf return}\space}
{\endgraf}
  \defineXMLenvironment [c]
{\bgroup\setups{code:comment}\type{//* }\ignorespaces}
{\removeunwantedspaces\type{ *//}\egroup\endgraf}
\stopXMLmapping
\startsetups [code:comment]
  \defineXMLsingular [var]  [id='x'] {{\bs \XMLop{id}}}
\stopsetups
\startcode
function id='ExampleFunction'(bool/ i; int/ j)/function
if/ (ilt;10) then/
   cLet's add some comment here. Well, var id='a'/ means nothing to 
me./c
   var id='a'/ := 3
else/
   cThis is a funny language, a kind of mixture./c
   var id='a'/ := 1
end/
returna/return
end/
\stopcode
\blank[3*big]\placeregister[function][criterium=all]
\stoptext
If there is interest in such a module, i can write the auxiliary macros needed 
for it and others can define the languages.

Hans
-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context


Re: [NTG-context] Using LateX packages

2005-01-26 Thread Holger Peters
Hi,
thanks, that's a good start for me.
-- Holger
h h extern wrote:
Holger Peters wrote:
Hi,
I want to use a LaTeX Package (clrscode), or at least I want to port 
it to Context.

http://www.cs.dartmouth.edu/~thc/clrscode/

hm, not complex but mostly calls to latex font switches ans such
Is there some way to use LaTex Packages (I guess not).

so you need to rewrite it
Is there documentation about writing ConTeXt modules? (I didn't find 
any).

- try to use high level constructs (or ask me to provide them -)
- only use low level macroe documented in syst-*.tex and supp-*.tex 
(the ones mentioned in \macros, not the \dododo things)
- think fresh, forget about how other packages do it, think about what 
*you* want / need
- user modules are prefixed with t- (m- x- p- and s- are reserved for 
core modules and styles)

Now, about your code beautifier. Since you end up with additional 
markup anyway, why not go XML. You can then embed that in you tex 
document as usual (and have the full power of context available) but 
also use the code in webpages.

To give you an idea:
\starttext
\long\def\startcode#1\stopcode
 {\begingroup
  \startXMLmapping[code]%
  \enableXML\scantokens{#1}%
  \stopXMLmapping
  \endgroup}
\newcount\codedepth
\newdimen\codeindent \codeindent=1em
\def\incrementcodedepth
  {\advance\codedepth\plusone
   \ifnum\codedepth\plusone \advance\leftskip\codeindent \fi
   \relax}
\def\decrementcodedepth
  {\ifnum\codedepth\plusone \advance\leftskip-\codeindent \fi
   \advance\codedepth\minusone
   \relax}
\defineregister[function][functions]
\setupregister[function][expansion=yes]
\startXMLmapping[code]
  \defineXMLsingular [if]   {\endgraf{\bf if}\incrementcodedepth}
  \defineXMLsingular [then] {{\bf then}\endgraf\incrementcodedepth}
  \defineXMLsingular [else] {\endgraf\decrementcodedepth{\bf 
else}\endgraf\incrementcodedepth}
  \defineXMLsingular [end]  {\endgraf{\bf 
end}\decrementcodedepth\endgraf}

  \defineXMLsingular [int]  {{\bf int}\space\ignorespaces}
  \defineXMLsingular [bool] {{\bf bool}\space\ignorespaces}
  \defineXMLsingular [var]  [id='x'] {{\tf \XMLop{id}}}
  \defineXMLenvironment [function] [id=unknown]
{\endgraf\function{\XMLop{id}}{\bf 
function}\space{\sl\XMLop{id}}\space}
{\endgraf\incrementcodedepth}

  \defineXMLenvironment [return]
{{\bf return}\space}
{\endgraf}
  \defineXMLenvironment [c]
{\bgroup\setups{code:comment}\type{//* }\ignorespaces}
{\removeunwantedspaces\type{ *//}\egroup\endgraf}
\stopXMLmapping
\startsetups [code:comment]
  \defineXMLsingular [var]  [id='x'] {{\bs \XMLop{id}}}
\stopsetups
\startcode
function id='ExampleFunction'(bool/ i; int/ j)/function
if/ (ilt;10) then/
   cLet's add some comment here. Well, var id='a'/ means 
nothing to me./c
   var id='a'/ := 3
else/
   cThis is a funny language, a kind of mixture./c
   var id='a'/ := 1
end/
returna/return
end/
\stopcode

\blank[3*big]\placeregister[function][criterium=all]
\stoptext
If there is interest in such a module, i can write the auxiliary 
macros needed for it and others can define the languages.

Hans
-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context


Re: [NTG-context] Using LateX packages

2005-01-25 Thread luigi scarso
Holger Peters wrote:
Hi,
I want to use a LaTeX Package (clrscode), or at least I want to port 
it to Context.

http://www.cs.dartmouth.edu/~thc/clrscode/
Is there some way to use LaTex Packages (I guess not).
Is there documentation about writing ConTeXt modules? (I didn't find 
any).

-- Holger
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context
I always look into TEXMFMAIN/tex/context/base and try to figure how to 
make what I want;
on pragma site there are some docs  about to make pdf for  documentation.

luigi
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context