ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* [NTG-context] Pass string into text background graphic
@ 2023-08-11 19:57 Thangalin
  2023-08-11 21:53 ` [NTG-context] " Hans Hagen
  0 siblings, 1 reply; 5+ messages in thread
From: Thangalin @ 2023-08-11 19:57 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 3250 bytes --]

Hi list,

I'm attempting to make a stylized border around paragraphs that can span
pages. The border runs along the side and the top. (Ideally the top border
wouldn't repeat, but that's a minor issue.) The issue I'm having is that
the title for the text doesn't always appear. Instead, there's a small gap
along the top border where the title should be.

Am I going about this the wrong way?

% SOT
\startbuffer[demo]
<html>
<body>
<div class="concurrent" data-title="Berth 5" data-location="San Diego">
Text Goes Here
</div>
<div class="concurrent" data-title="Road" data-location="Beale AFB">
Different Text Goes Here
</div>
</body>
</html>\stopbuffer
\startxmlsetups xml:xhtml
  \xmlsetsetup{\xmldocument}{*}{-}
  \xmlsetsetup{\xmldocument}{html|body}{xml:*}
  \xmlsetsetup{\xmldocument}{div}{xml:*}\stopxmlsetups
\xmlregistersetup{xml:xhtml}
\startxmlsetups xml:html
  \xmlflush{#1}\stopxmlsetups
\startxmlsetups xml:body
  \xmlflush{#1}\stopxmlsetups
\startxmlsetups xml:div
  \setvariable{div}{\xmlatt{#1}{class}}{#1}
  \start[\xmlatt{#1}{class}]\xmlflush{#1}\stop\stopxmlsetups
\startusableMPgraphic{GraphicConcurrent}
  begingroup;
    string legend;

    picture title;
    picture border;
    picture bg;

    numeric tw;
    numeric th;

    legend := \MPstring{concurrent};

    title := nullpicture;
    border := nullpicture;
    bg := textext( "\strut " & legend );

    tw := xpart lrcorner bg - xpart llcorner bg;
    th := ypart ulcorner bg - ypart llcorner bg;

    addto title also image(
      fill unitsquare
        xysized (tw + 8, th)
        shifted ulcorner multipars[1]
        shifted 28 right
        shifted 8 down
        withcolor white;

      draw
        textext.drt( legend )
        shifted ulcorner multipars[1]
        shifted 32 right
        shifted 3 down;
    );

    addto border also image(
      for i = 1 upto nofmultipars:
        draw
          llcorner multipars[i] --
          ulcorner multipars[i] shifted 8 down ..
          ulcorner multipars[i] shifted 8 right --
          urcorner multipars[i]
          withpen pencircle scaled 0.75 withcolor black;
      endfor;
    );

    draw image(
      draw border;
      draw title;
    );
  endgroup;\stopusableMPgraphic
\definetextbackground[TextConcurrentFrame][
  mp=GraphicConcurrent,
  frame=off,
  topoffset=1em,
  leftoffset=1em,
  location=paragraph,
]
\definestartstop[concurrent][
  before={%
    \blank[big]%
    LEGEND: \xmlatt{\getvariable{div}{concurrent}}{data-title}%
    \blank[big]%
    \setMPtext{concurrent}{\xmlatt{\getvariable{div}{concurrent}}{data-title}}
    \startTextConcurrentFrame},
  after={\stopTextConcurrentFrame\blank[big]},
]
\starttext
  \xmlprocessbuffer{main}{demo}{}\stoptext
% EOT

If I change the following line:

legend := \MPstring{concurrent};

to:

legend := "some string";

Then the title "some string" is repeated. It seems like the value for
\MPstring{concurrent} is being cached in some situations and ignored in
others.

Essentially, I'm trying to visually offset multiple paragraphs using a
left-hand vertical rule along with a top horizontal rule that has a title.
Each new "concurrent" section needs its own header that doesn't repeat.

Is there a ConTeXt-way to accomplish this feat?

Cheers!

[-- Attachment #1.2: Type: text/html, Size: 6166 bytes --]

[-- Attachment #2: t.pdf --]
[-- Type: application/pdf, Size: 7781 bytes --]

[-- Attachment #3: Type: text/plain, Size: 495 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [NTG-context] Re: Pass string into text background graphic
  2023-08-11 19:57 [NTG-context] Pass string into text background graphic Thangalin
@ 2023-08-11 21:53 ` Hans Hagen
  2023-08-12 17:19   ` Thangalin
  0 siblings, 1 reply; 5+ messages in thread
From: Hans Hagen @ 2023-08-11 21:53 UTC (permalink / raw)
  To: Thangalin, mailing list for ConTeXt users

On 8/11/2023 9:57 PM, Thangalin wrote:
> Hi list,
> 
> I'm attempting to make a stylized border around paragraphs that can span
> pages. The border runs along the side and the top. (Ideally the top border
> wouldn't repeat, but that's a minor issue.) The issue I'm having is that
> the title for the text doesn't always appear. Instead, there's a small gap
> along the top border where the title should be.
> 
> Am I going about this the wrong way?
> 
> % SOT
> \startbuffer[demo]
> <html>
> <body>
> <div class="concurrent" data-title="Berth 5" data-location="San Diego">
> Text Goes Here
> </div>
> <div class="concurrent" data-title="Road" data-location="Beale AFB">
> Different Text Goes Here
> </div>
> </body>
> </html>\stopbuffer
> \startxmlsetups xml:xhtml
>    \xmlsetsetup{\xmldocument}{*}{-}
>    \xmlsetsetup{\xmldocument}{html|body}{xml:*}
>    \xmlsetsetup{\xmldocument}{div}{xml:*}\stopxmlsetups
> \xmlregistersetup{xml:xhtml}
> \startxmlsetups xml:html
>    \xmlflush{#1}\stopxmlsetups
> \startxmlsetups xml:body
>    \xmlflush{#1}\stopxmlsetups
> \startxmlsetups xml:div
>    \setvariable{div}{\xmlatt{#1}{class}}{#1}
>    \start[\xmlatt{#1}{class}]\xmlflush{#1}\stop\stopxmlsetups
> \startusableMPgraphic{GraphicConcurrent}
>    begingroup;
>      string legend;
> 
>      picture title;
>      picture border;
>      picture bg;
> 
>      numeric tw;
>      numeric th;
> 
>      legend := \MPstring{concurrent};
> 
>      title := nullpicture;
>      border := nullpicture;
>      bg := textext( "\strut " & legend );
> 
>      tw := xpart lrcorner bg - xpart llcorner bg;
>      th := ypart ulcorner bg - ypart llcorner bg;
> 
>      addto title also image(
>        fill unitsquare
>          xysized (tw + 8, th)
>          shifted ulcorner multipars[1]
>          shifted 28 right
>          shifted 8 down
>          withcolor white;
> 
>        draw
>          textext.drt( legend )
>          shifted ulcorner multipars[1]
>          shifted 32 right
>          shifted 3 down;
>      );
> 
>      addto border also image(
>        for i = 1 upto nofmultipars:
>          draw
>            llcorner multipars[i] --
>            ulcorner multipars[i] shifted 8 down ..
>            ulcorner multipars[i] shifted 8 right --
>            urcorner multipars[i]
>            withpen pencircle scaled 0.75 withcolor black;
>        endfor;
>      );
> 
>      draw image(
>        draw border;
>        draw title;
>      );
>    endgroup;\stopusableMPgraphic
> \definetextbackground[TextConcurrentFrame][
>    mp=GraphicConcurrent,
>    frame=off,
>    topoffset=1em,
>    leftoffset=1em,
>    location=paragraph,
> ]
> \definestartstop[concurrent][
>    before={%
>      \blank[big]%
>      LEGEND: \xmlatt{\getvariable{div}{concurrent}}{data-title}%
>      \blank[big]%
>      \setMPtext{concurrent}{\xmlatt{\getvariable{div}{concurrent}}{data-title}}
>      \startTextConcurrentFrame},
>    after={\stopTextConcurrentFrame\blank[big]},
> ]
> \starttext
>    \xmlprocessbuffer{main}{demo}{}\stoptext
> % EOT
> 
> If I change the following line:
> 
> legend := \MPstring{concurrent};
> 
> to:
> 
> legend := "some string";
> 
> Then the title "some string" is repeated. It seems like the value for
> \MPstring{concurrent} is being cached in some situations and ignored in
> others.
> 
> Essentially, I'm trying to visually offset multiple paragraphs using a
> left-hand vertical rule along with a top horizontal rule that has a title.
> Each new "concurrent" section needs its own header that doesn't repeat.
> 
> Is there a ConTeXt-way to accomplish this feat?
There's always a way out but not always a pretty one.

One problem is that these graphics are done later, when a page gets 
assembled, so you get the current value at that time. Then there is 
grouping so you need to assign global.  Now, there can be caching but 
you use expanded string so that's not the issue.

  %  draw image ( draw rawtextext(legend) notcached) ;

That is seldom needed. So below is a solution. When you cross pages with 
a frame you need to make sure the text is done once. I let you figure 
that out (after all you came this far so i guess you know). For historic 
reasons (mkii / performance) it's not the easiest mechanism.

% We store each one independent:

\newinteger\ConcurrentTextSetCounter
\newinteger\ConcurrentTextGetCounter

\protected\def\ConcurrentTextSet#1%
   {\global\advance\ConcurrentTextSetCounter\plusone
    \setxvariable
       {concurrent}
       {text:\the\ConcurrentTextSetCounter}
       {#1}}

\def\ConcurrentTextGet % we want full expansion here
   {\localcontrolled{\global\advance\ConcurrentTextGetCounter\plusone}%
    \getvariable
       {concurrent}
       {text:\the\ConcurrentTextGetCounter}}

% We also use the helpers (so at least we can see what we do):

\startuseMPgraphic{GraphicConcurrent}{text} %  % {mpos:region:draw}
  %  draw_multi_pars ;
     string legend ; legend := "\ConcurrentTextGet";
     show legend;
  %  draw image ( draw rawtextext(legend) notcached) ;
     picture p ; p := textext.rt(legend)
         shifted ulcorner multipars[1]
         shifted (1cm,0)
     ;
     draw
       llcorner multipars[1] --
       ulcorner multipars[1] --
       ulcorner multipars[1] shifted (9mm,0)
     ;
     draw
       ulcorner multipars[1] shifted (1mm + xpart lrcorner p,0) --
       urcorner multipars[1]
     ;
     draw p ;
\stopuseMPgraphic

% Watch how i moved the before/after blanks here:

\definetextbackground
   [TextConcurrentFrame]
   [mp=GraphicConcurrent,
  % mp=mpos:region:draw,
    method=mpos:region,
    frame=off,
    topoffset=1em,
    leftoffset=1em,
    before=\blank[2*big],
    after=\blank,
    location=paragraph]

% And use setups to get a nicer definition:

\startsetups concurrent:before
     \ConcurrentTextSet{\xmlatt{\getvariable{div}{concurrent}}{data-title}}
     \startTextConcurrentFrame
\stopsetups

\startsetups concurrent:after
     \stopTextConcurrentFrame
\stopsetups

\definestartstop
   [concurrent]
   [before=\directsetup{concurrent:before},
    after=\directsetup{concurrent:after}]

One problem with variables is that currently we cannot bind a "current" 
value so I need to think a bit about it. Maybe the solution here, a bit 
more robust is one. One can actually pass variables with a graphic but 
again, these are then overwritten by a later one.

In lmtx we have a few better tex-mp communication tricks but these are 
not yet documented in the manual. Contrary to mkii (intermediate as well 
as runtime processing) and mkiv (runtime two pass in a run processing) 
we can make some interfaces a bit simpler in mkxl but that happens 
stepwise because we need to remain compatible. Much of the positional 
graphic trickery is stil a bit mkii-ish in nature (where we had more mem 
and runtime constraints).

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [NTG-context] Re: Pass string into text background graphic
  2023-08-11 21:53 ` [NTG-context] " Hans Hagen
@ 2023-08-12 17:19   ` Thangalin
  2023-08-12 20:04     ` Hans Hagen via ntg-context
  0 siblings, 1 reply; 5+ messages in thread
From: Thangalin @ 2023-08-12 17:19 UTC (permalink / raw)
  To: Hans Hagen; +Cc: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 3406 bytes --]

Thanks Hans.

The \newinteger approach would always increment the value, regardless of
conditionals within the MetaPost code (i.e., it was like legend :=
"\ConcurrentTextGet" would always invoke the macro just be referencing the
MPgraphic and nothing would prevent its execution). This meant that the Get
indexes would not correspond to the Set indexes. Switching to \definenumber
resolved the issue. There were a few other oddities, such as the "Get"
counter incrementing twice. Here's the code:

\definenumber[ConcurrentTextSetCounter][prefix=no]
\definenumber[ConcurrentTextGetCounter][prefix=no]

\setnumber[ConcurrentTextSetCounter][0]
\setnumber[ConcurrentTextGetCounter][0]

% Map each label as global key/value pairs.
\def\ConcurrentTextSet#1{%
  \incrementnumber[ConcurrentTextSetCounter]%
  \setxvariable
    {concurrent}
    {text:\rawcountervalue[ConcurrentTextSetCounter]}
    {#1}}

% Account for the counter incrementing twice and the index being 1-based.
\def\ConcurrentTextGet{%
  \incrementnumber[ConcurrentTextGetCounter]%
  \getvariable
    {concurrent}

{text:\number\numexpr1+\rawcountervalue[ConcurrentTextGetCounter]/2\relax}}

\startuseMPgraphic{GraphicConcurrent}
  numeric index;
  index := 1;

  % Differentiate between new text blocks and those crossing pages.
  if (multikind[ index ] = "single") or (multikind[ index ] = "first"):
    string legend;
    legend := "\ConcurrentTextGet";

    % For new text blocks, write the title.
    picture p;
    p := textext.rt( legend )
      shifted ulcorner multipars[ index ]
      shifted (1cm, 0);

    % Draw the horizontal rule only for the initial text block.
    draw
      ulcorner multipars[ index ] shifted (1mm + xpart lrcorner p, 0) --
      urcorner multipars[ index ];

    % Draw the vertical rule for the initial text block.
    draw
      llcorner multipars[ index ] --
      ulcorner multipars[ index ] --
      ulcorner multipars[ index ] shifted (9mm, 0);

    draw p;
  else:
    % Draw only the vertical rule only when crossing page boundaries.
    draw
      llcorner multipars[ index ] --
      ulcorner multipars[ index ];
  fi
\stopuseMPgraphic

\definetextbackground[TextConcurrentFrame][
  mp=GraphicConcurrent,
  frame=off,
  topoffset=1em,
  leftoffset=1em,
  before=\blank[2*big],
  after=\blank,
  location=paragraph,
]

\startsetups concurrent:before
  \ConcurrentTextSet{%
    % Be sure to format "a.m." and other special phrases.
    \expandafter\TextReplacement{%
      \xmlatt{\getvariable{div}{concurrent}}{data-title}%
    }
  }
  \startTextConcurrentFrame
\stopsetups

\startsetups concurrent:after
  \stopTextConcurrentFrame
\stopsetups

\definestartstop[concurrent][
  before=\directsetup{concurrent:before},
  after=\directsetup{concurrent:after}
]

This allows for typesetting a wider range of pandoc-style Markdown
annotations, such as:

::: {.concurrent title="Terminal Berth 5, 3:17 a.m."}
text goes here
:::

With these changes, the titles now only appear at the start of the
demarcated text, in any combination of "concurrent" annotation instances
spanning any number of pages.

Much appreciated.

Cheers!
P.S.
The following line requires KeenWrite themes:

\expandafter\TextReplacement{ ... }

For details, see:

   -
   https://github.com/DaveJarvis/keenwrite-themes/blob/main/xhtml/xml-blocks.tex
   -
   https://github.com/DaveJarvis/keenwrite-themes/blob/main/boschet/replace.tex

[-- Attachment #1.2: Type: text/html, Size: 4406 bytes --]

[-- Attachment #2: concurrent.pdf --]
[-- Type: application/pdf, Size: 33096 bytes --]

[-- Attachment #3: Type: text/plain, Size: 495 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [NTG-context] Re: Pass string into text background graphic
  2023-08-12 17:19   ` Thangalin
@ 2023-08-12 20:04     ` Hans Hagen via ntg-context
  2023-08-13 19:33       ` Thangalin
  0 siblings, 1 reply; 5+ messages in thread
From: Hans Hagen via ntg-context @ 2023-08-12 20:04 UTC (permalink / raw)
  To: ntg-context; +Cc: Hans Hagen

On 8/12/2023 7:19 PM, Thangalin wrote:
> Thanks Hans.
> 
> The \newinteger approach would always increment the value, regardless of
> conditionals within the MetaPost code (i.e., it was like legend :=
> "\ConcurrentTextGet" would always invoke the macro just be referencing the
> MPgraphic and nothing would prevent its execution). This meant that the Get
> indexes would not correspond to the Set indexes. Switching to \definenumber
> resolved the issue. There were a few other oddities, such as the "Get"
> counter incrementing twice. Here's the code:

you could remove the \localcontrolled around the advance

> \definenumber[ConcurrentTextSetCounter][prefix=no]
> \definenumber[ConcurrentTextGetCounter][prefix=no]
> 
> \setnumber[ConcurrentTextSetCounter][0]
> \setnumber[ConcurrentTextGetCounter][0]
> 
> % Map each label as global key/value pairs.
> \def\ConcurrentTextSet#1{%
>    \incrementnumber[ConcurrentTextSetCounter]%
>    \setxvariable
>      {concurrent}
>      {text:\rawcountervalue[ConcurrentTextSetCounter]}
>      {#1}}
> 
> % Account for the counter incrementing twice and the index being 1-based.
> \def\ConcurrentTextGet{%
>    \incrementnumber[ConcurrentTextGetCounter]%
>    \getvariable
>      {concurrent}

why twice ? you only have to typeset the text once, right?

> {text:\number\numexpr1+\rawcountervalue[ConcurrentTextGetCounter]/2\relax}}
> 
> \startuseMPgraphic{GraphicConcurrent}
>    numeric index;
>    index := 1;
> 
>    % Differentiate between new text blocks and those crossing pages.
>    if (multikind[ index ] = "single") or (multikind[ index ] = "first"):
>      string legend;
>      legend := "\ConcurrentTextGet";
> 
>      % For new text blocks, write the title.
>      picture p;
>      p := textext.rt( legend )
>        shifted ulcorner multipars[ index ]
>        shifted (1cm, 0);
> 
>      % Draw the horizontal rule only for the initial text block.
>      draw
>        ulcorner multipars[ index ] shifted (1mm + xpart lrcorner p, 0) --
>        urcorner multipars[ index ];
> 
>      % Draw the vertical rule for the initial text block.
>      draw
>        llcorner multipars[ index ] --
>        ulcorner multipars[ index ] --
>        ulcorner multipars[ index ] shifted (9mm, 0);
> 
>      draw p;
>    else:
>      % Draw only the vertical rule only when crossing page boundaries.
>      draw
>        llcorner multipars[ index ] --
>        ulcorner multipars[ index ];
>    fi
> \stopuseMPgraphic
> 
> \definetextbackground[TextConcurrentFrame][
>    mp=GraphicConcurrent,
>    frame=off,
>    topoffset=1em,
>    leftoffset=1em,
>    before=\blank[2*big],
>    after=\blank,
>    location=paragraph,
> ]
> 
> \startsetups concurrent:before
>    \ConcurrentTextSet{%
>      % Be sure to format "a.m." and other special phrases.
>      \expandafter\TextReplacement{%
>        \xmlatt{\getvariable{div}{concurrent}}{data-title}%
>      }
>    }
>    \startTextConcurrentFrame
> \stopsetups
> 
> \startsetups concurrent:after
>    \stopTextConcurrentFrame
> \stopsetups
> 
> \definestartstop[concurrent][
>    before=\directsetup{concurrent:before},
>    after=\directsetup{concurrent:after}
> ]
> 
> This allows for typesetting a wider range of pandoc-style Markdown
> annotations, such as:
> 
> ::: {.concurrent title="Terminal Berth 5, 3:17 a.m."}
> text goes here
> :::
> 
> With these changes, the titles now only appear at the start of the
> demarcated text, in any combination of "concurrent" annotation instances
> spanning any number of pages.
> 
> Much appreciated.
> 
> Cheers!
> P.S.
> The following line requires KeenWrite themes:
> 
> \expandafter\TextReplacement{ ... }
> 
> For details, see:
> 
>     -
>     https://github.com/DaveJarvis/keenwrite-themes/blob/main/xhtml/xml-blocks.tex
>     -
>     https://github.com/DaveJarvis/keenwrite-themes/blob/main/boschet/replace.tex
> 
> 
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
> 
> maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : https://contextgarden.net
> ___________________________________________________________________________________

-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [NTG-context] Re: Pass string into text background graphic
  2023-08-12 20:04     ` Hans Hagen via ntg-context
@ 2023-08-13 19:33       ` Thangalin
  0 siblings, 0 replies; 5+ messages in thread
From: Thangalin @ 2023-08-13 19:33 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 583 bytes --]

Hi again,

you could remove the \localcontrolled around the advance
>

I thought I tried that, but the counter incremented to 6, instead of 4.
Using higher-level primitives seems more like the ConTeXt way.


> why twice ? you only have to typeset the text once, right?
> >
> {text:\number\numexpr1+\rawcountervalue[ConcurrentTextGetCounter]/2\relax}}
>

I don't know why the counter is incremented twice for each concurrent
environment; the document is typeset once, in three passes. Dividing by two
solves the issue, if there's a deeper issue, I'm at a loss to explain it.

Greets!

[-- Attachment #1.2: Type: text/html, Size: 1106 bytes --]

[-- Attachment #2: Type: text/plain, Size: 495 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-08-13 19:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-11 19:57 [NTG-context] Pass string into text background graphic Thangalin
2023-08-11 21:53 ` [NTG-context] " Hans Hagen
2023-08-12 17:19   ` Thangalin
2023-08-12 20:04     ` Hans Hagen via ntg-context
2023-08-13 19:33       ` Thangalin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).