On 2017-08-18 19:01, Fabrice Couvreur wrote:
If I test this file, it does not work

% macros=mkvi

\startcomponent dm-1

  \environment MyLayout

  \MyHeader{Seconde}{17}{08}{2017}{Devoir surveillé}{1}{1h\,30m}
 
  \dorecurse{20}{\input knuth}

  \math{x^2+4x+5=0}

\stopcomponent

2017-08-19 0:23 GMT+02:00 Rik Kabel <context@rik.users.panix.com>:
On 2017-08-18 18:14, Fabrice Couvreur wrote:
Hi Rik,
Can you clarify by editing my files ?
Fabrice

2017-08-18 23:57 GMT+02:00 Rik Kabel <context@rik.users.panix.com>:
On 2017-08-18 17:34, Fabrice Couvreur wrote:
Hello,
It's ok for me if I compile the Aditya file.
I have another problem with a simple structure. I created the file MyLayout.tex containing the macro and I want to call this macro in the dm1.tex file, but it does not work.
Thank you
Fabrice

#########
MyLayout.tex
#########

% macros=mkvi

\startenvironment MyLayout

\setuplayout
   [header=3\lineheight,
    headerdistance=\lineheight]

\setupbackgrounds
  [header]
  [text]
  [
    frame=off,
    bottomframe=on,
    framecolor=darkgray,
    rulethickness=2pt,
  ]

\defineframed[headerframed]
             [
               frame=off, % For visualization set this to on
               height=fit,
               width=fit,
               location=bottom,
               boffset=\lineheight,
             ]

\starttexdefinition MyHeader #where #day #month #year #title #number #time

    \setupheadertexts
      [{\headerframed[align=middle, foregroundstyle=bold, foregroundcolor=red]
            {#title n\high{o}\,#number}}]

    \setupheadertexts
      [{\headerframed[align=flushleft, foregroundstyle=\ssx]
          {Lycée JANSON DE SAILLY \\ \date[d=#day,m=#month,y=#year]}}]
      [{\headerframed[align=flushright, foregroundstyle=\ssx]
          {#where \\ {#time}}}]

\stoptexdefinition
 
\stopenvironment

######
dm-1.tex
######

\startcomponent dm-1

  \environment MyLayout

  \MyHeader{Seconde}{17}{08}{2017}{Devoir surveillé}{1}{1h\,30m}
 
  \input knuth

\stopcomponent

2017-08-18 18:44 GMT+02:00 Otared Kavian <otared@gmail.com>:
Hi Aditya,

Thanks for having sent the example file: indeed with your file I can typeset the example and see the expected result.
I don’t know what happened when I copied and pasted the example from the e-mail…
I think the command
        % macros = mkvi
was not set correctly written at the first line, that is I had a space before the percent sign « % ». In fact
        %macros=mkvi
or
        %macros = mkvi
work as well.

By the way, wouldn’t be more user friendly, and more in the spirit of ConTeXt, if we had a command saying
        \enablemode[mkvi]
in order to tell ConTeXt that we are using %macros = mkvi ?

Best regards: OK

> On 18 Aug 2017, at 17:54, Aditya Mahajan <adityam@umich.edu> wrote:
>
> On Fri, 18 Aug 2017, Otared Kavian wrote:
>
>> Hi Aditya,
>>
>> I tried to typeset your example, but got an error: whether or not the command
>>      % macros=mkvi
>> is present on the fist line, then ConTeXt complains saying that
>>      ! Illegal parameter number in definition of \MyHeader
>> and stops typesetting pointing to the command \stoptexdefinition.
>
> I am attaching the file. It runs fine here with ConTeXt  ver: 2017.08.14 23:57.
>
> Aditya<frame.tex>

I believe you need to declare the use of MKVI macros as the first thing in your project file if they will be used by any components.

--
Rik


%macros=mkvi
\startcomponent dm-1


I was wrong, and (no surprise) Aditya was correct.

The %macros=mkvi line is not needed in dm1.tex. It should be at the top of MyLayout.tex.

You may then reference MyLayout.tex (note the addition of the extension) in dm1.tex, or you may rename the file to MyLayout.mkvi, where you can reference it as either MyLayout or as MyLayout.mkvi.

Sorry for the noise.

--
Rik