ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* starttexdefinition error in standalone, works in TL2013
@ 2014-02-27  4:08 Rik Kabel
  2014-02-27 15:13 ` Rik Kabel
  2014-03-01 12:32 ` Wolfgang Schuster
  0 siblings, 2 replies; 5+ messages in thread
From: Rik Kabel @ 2014-02-27  4:08 UTC (permalink / raw)
  To: ntg-context


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

The following code processes cleanly under TL2013 and fails with 
ConTeXt  ver: 2014.02.14 17:07 MKIV beta  fmt: 2014.2.16  int: 
english/english. I suspect a regression, but I am also open to being 
told that I am doing things incorrectly.

I also notice that it fails (even under TL2013) if a space is inserted 
after [#SETUP] in the doTrans intro. I thought that spaces should be 
allowed in \starttexdefinition -- is this only in the body and not the 
parameter description?

    % macros=mkvi

    \showframe


    \let\EndTranslation\relax

    \starttexdefinition Trans
       \dosingleempty\doTrans
    \stoptexdefinition

    % The following should work, but fails with current beta
    \starttexdefinition doTrans [#SETUP]#TRANSLATION\EndTranslation
       \language[en]
    \doifsomething{#1}{\getparameters[TR][setup=,#SETUP]\TRsetup}
       \noindentation\blank[halfline]
       (\,\ignorespaces#TRANSLATION\removeunwantedspaces\,)
    \stoptexdefinition

    \starttexdefinition Translation
       \dosingleempty\doTranslation
    \stoptexdefinition

    % This version works with both Texlive and current standalone beta
    \def\doTranslation[#SETUP]#TRANSLATION\EndTranslation%
    {\language[en]%
      \doifsomething{#SETUP}%
        {\getparameters[TR][setup=,#SETUP]\TRsetup}%
      \noindentation\blank[halfline]%
      (\,\ignorespaces#TRANSLATION\removeunwantedspaces\,)%
    }

    \starttext

    Translation using \tex{def}{\tex{doTranslation}} works both with
    TL2013 and current beta.

    \Translation[language=en]
       It betrays a slow-witted mentality to pursue the streams, but not
    to see the sources of things.
    \EndTranslation

    \blank

    Translation using \tex{starttexdef doTrans} fails with current beta.

    \Trans[language=en]
       It betrays a slow-witted mentality to pursue the streams, but not
    to see the sources of things.
    \EndTranslation

    \stoptext

-- 
Rik Kabel




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

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

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

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: starttexdefinition error in standalone, works in TL2013
  2014-02-27  4:08 starttexdefinition error in standalone, works in TL2013 Rik Kabel
@ 2014-02-27 15:13 ` Rik Kabel
  2014-03-01 12:32 ` Wolfgang Schuster
  1 sibling, 0 replies; 5+ messages in thread
From: Rik Kabel @ 2014-02-27 15:13 UTC (permalink / raw)
  To: ntg-context


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

On 2014-02-26 23:08, Rik Kabel wrote:
> The following code processes cleanly under TL2013 and fails with 
> ConTeXt  ver: 2014.02.14 17:07 MKIV beta  fmt: 2014.2.16  int: 
> english/english. I suspect a regression, but I am also open to being 
> told that I am doing things incorrectly.
>
> -- 
> Rik Kabel
>
Sorry for the not-so-minimal example with the obvious errors around the 
setup. Here is a stripped version that shows the problem:

    % macros=mkvi

    \let\EndTranslation\relax

    % The following should work, but fails with current beta
    \starttexdefinition Trans #TRANSLATION\EndTranslation
       #TRANSLATION
    \stoptexdefinition

    % This version works with both TexLive and current standalone beta
    \def\Translation#TRANSLATION\EndTranslation%
    {#TRANSLATION%
    }

    \starttext

    Translation using \tex{def}{\tex{doTranslation}} works both with
    TL2013 and current beta.

    \Translation
       It betrays a slow-witted mentality to pursue the streams, but not
    to see the sources of things.
    \EndTranslation

    \blank

    Translation using \tex{starttexdef doTrans} fails with current beta.

    \Trans
       It betrays a slow-witted mentality to pursue the streams, but not
    to see the sources of things.
    \EndTranslation

    \stoptext

-- 
Rik

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

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

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

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: starttexdefinition error in standalone, works in TL2013
  2014-02-27  4:08 starttexdefinition error in standalone, works in TL2013 Rik Kabel
  2014-02-27 15:13 ` Rik Kabel
@ 2014-03-01 12:32 ` Wolfgang Schuster
  2014-03-01 17:01   ` Rik Kabel
  2014-03-12 19:49   ` Movable code, was " Rik
  1 sibling, 2 replies; 5+ messages in thread
From: Wolfgang Schuster @ 2014-03-01 12:32 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 27.02.2014 um 05:08 schrieb Rik Kabel <context@rik.users.panix.com>:

> The following code processes cleanly under TL2013 and fails with ConTeXt  ver: 2014.02.14 17:07 MKIV beta  fmt: 2014.2.16  int: english/english. I suspect a regression, but I am also open to being told that I am doing things incorrectly.

The \starttexdefinition was extended after the texlive release to support keywords like global or expanded and has therefore changed since then. The reason why it fails is that context passes the argument to Lua where they are parsed and at this point macros like your \EndTranslation are expanded. Even though this can be fixed I think it’s better to use the normal \def command when you want to create delimited commands.

> I also notice that it fails (even under TL2013) if a space is inserted after [#SETUP] in the doTrans intro. I thought that spaces should be allowed in \starttexdefinition -- is this only in the body and not the parameter description?

No, spaces between arguments aren’t ignored but no spaces are added at the end of each line in the replacement text.

\starttexdefinition Test #1 #2
  “#2” “#1”
\stoptexdefinition

\starttext

\Test ab cd

\stoptext

BTW: It’s better to follow contexts rules and use start/stop for environments, this way you can make use of the buffer mechanism to store text.

\unexpanded\def\startTranslation
  {\begingroup
   \dosingleempty\dostartTranslation}

\def\dostartTranslation[#1]%
  {\iffirstargument
     \getrawparameters[Translation][setups=,language=en,#1]%
   \fi
   \grabbufferdata[Translation][startTranslation][stopTranslation]}

\def\stopTranslation
  {\language[\Translationlanguage]%
   \Translationsetups
   (\,\getbufferdata[Translation]\removeunwantedspaces\,)%
   \endgroup}

\starttext

\startTranslation[language=nl]
It betrays a slow-witted mentality to pursue the streams, but not to see the sources of things.
\stopTranslation

\stoptext

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

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: starttexdefinition error in standalone, works in TL2013
  2014-03-01 12:32 ` Wolfgang Schuster
@ 2014-03-01 17:01   ` Rik Kabel
  2014-03-12 19:49   ` Movable code, was " Rik
  1 sibling, 0 replies; 5+ messages in thread
From: Rik Kabel @ 2014-03-01 17:01 UTC (permalink / raw)
  To: ntg-context

On 2014-03-01 07:32, Wolfgang Schuster wrote:
> Am 27.02.2014 um 05:08 schrieb Rik Kabel <context@rik.users.panix.com>:

{useful information on TL2013 and starttexdefinition skipped}

> BTW: It’s better to follow contexts rules and use start/stop for environments, this way you can make use of the buffer mechanism to store text.
>
> \unexpanded\def\startTranslation
>    {\begingroup
>     \dosingleempty\dostartTranslation}
>
> \def\dostartTranslation[#1]%
>    {\iffirstargument
>       \getrawparameters[Translation][setups=,language=en,#1]%
>     \fi
>     \grabbufferdata[Translation][startTranslation][stopTranslation]}
>
> \def\stopTranslation
>    {\language[\Translationlanguage]%
>     \Translationsetups
>     (\,\getbufferdata[Translation]\removeunwantedspaces\,)%
>     \endgroup}
>
> \starttext
>
> \startTranslation[language=nl]
> It betrays a slow-witted mentality to pursue the streams, but not to see the sources of things.
> \stopTranslation
>
> \stoptext
>

Thank you for the excellent example. The only problem I see is that it 
fails if no optional argument is present (in which case the keyval 
settings \TranslationXXX never get defined). This is easily remedied by 
removing the \iffirstargument and \fi wrapping the \getrawparameters.

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

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Movable code, was Re:  starttexdefinition error in standalone, works in TL2013
  2014-03-01 12:32 ` Wolfgang Schuster
  2014-03-01 17:01   ` Rik Kabel
@ 2014-03-12 19:49   ` Rik
  1 sibling, 0 replies; 5+ messages in thread
From: Rik @ 2014-03-12 19:49 UTC (permalink / raw)
  To: ntg-context


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

On 2014-03-01 07:32, Wolfgang Schuster wrote:
>
> \unexpanded\def\startTranslation
>    {\begingroup
>     \dosingleempty\dostartTranslation}
>
> \def\dostartTranslation[#1]%
>    {\iffirstargument
>       \getrawparameters[Translation][setups=,language=en,#1]%
>     \fi
>     \grabbufferdata[Translation][startTranslation][stopTranslation]}
>
> \def\stopTranslation
>    {\language[\Translationlanguage]%
>     \Translationsetups
>     (\,\getbufferdata[Translation]\removeunwantedspaces\,)%
>     \endgroup}
>
> \starttext
>
> \startTranslation[language=nl]
> It betrays a slow-witted mentality to pursue the streams, but not to see the sources of things.
> \stopTranslation
>
> \stoptext
>
> Wolfgang
>

Wolfgang (and list),

The above code works fine with simple texts, but is not movable. Adding 
a footnote, as in the following, to the text section shows that:

    \starttext
    \startTranslation[language=en]
       It betrays a slow-witted mentality to pursue the streams, but not to
       see the sources of things.%
       \footnote{%
         \startTranslation[language=la]
           Tardi ingeni est rivulos consectari, fontes rerum non videre.
         \stopTranslation%
       }
    \stopTranslation
    \stoptext


or even by:

    \starttext
       It betrays a slow-witted mentality to pursue the streams, but not to
       see the sources of things.%
       \footnote{%
         \startTranslation[language=la]
           Tardi ingeni est rivulos consectari, fontes rerum non videre.
         \stopTranslation%
       }
    \stoptext


In LaTeX, this might be dealt with by a combination robust command 
definitions and \protected. When I wrote an endnotes routine in LaTeX, I 
used those and wrote the notes to a file which was then read back in at 
the appropriate time, but that does not help with pagenotes.

I imagine that at the time the footnote is processed the 
Translationsetups and Translationlanguage macros are no longer defined, 
and I have no idea how one would reference the buffer contents, although 
it does look like they have stable names in the log file.

Can this be made movable?

Also, am I correct that the \iffirstargument test in the definition of 
dostarttranslation is redundant? My understanding is that \dosingleempty 
assures the presence of [#1].

-- 
Rik

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

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

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

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

end of thread, other threads:[~2014-03-12 19:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-27  4:08 starttexdefinition error in standalone, works in TL2013 Rik Kabel
2014-02-27 15:13 ` Rik Kabel
2014-03-01 12:32 ` Wolfgang Schuster
2014-03-01 17:01   ` Rik Kabel
2014-03-12 19:49   ` Movable code, was " Rik

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).