ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen via ntg-context <ntg-context@ntg.nl>
To: Joey McCollum <jmccollum20140511@gmail.com>
Cc: Hans Hagen <j.hagen@xs4all.nl>,
	mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Unusual error with \doifinstring in \startbtxrenderingdefinitions ... \stopbtxrenderingdefinitions
Date: Sun, 10 Oct 2021 12:34:56 +0200	[thread overview]
Message-ID: <02cd51a0-2a41-09bd-c7b4-12a779f5e224@xs4all.nl> (raw)
In-Reply-To: <CAGxRUG9q9M+2Of7rR5nf5ayxHKk5u1+VLOoV95-F3G+T6fWTKQ@mail.gmail.com>

On 10/10/2021 5:42 AM, Joey McCollum wrote:
> The test using \removepunctuation that you provided does what it should 
> be doing (it produces 6 instances of "test-test" with the intervening 
> punctuation mark in each case removed), but it doesn't do what I'm 
> trying to do in the MWE above. I'm trying to take certain punctuation 
> marks that follow the \autopuncttest macro and place them before it 
> instead. Looking at the typo-chr .lua and .mkiv files, I see that there 
> are \pushpunctuation and \poppunctuationmethods in addition to the 
> \removepunctuation method. These might be useful for this purpose, but 
> in any case, I still have to check if the trailing character is one of 
> the characters in a specified set/string, and this is where the error is 
> arising.

maybe you're in protected mode

% assumes \protect earlier

\unprotect
\def\autopuncttest#1#2{%
   \removeunwantedspaces%
   \doifinstring{#2}{,.!?;:}{#2}%
   \footnote{#1}%
   \doifnotinstring{#2}{,.!?;:}{#2}%
}
\protect

% assumes \unprotect later

or something

\pushcatcodetable \setcatcodetable\ctxcatcodes

\def\autopuncttest#1#2{%
   \removeunwantedspaces%
   \doifinstring{#2}{,.!?;:}{#2}%
   \footnote{#1}%
   \doifnotinstring{#2}{,.!?;:}{#2}%
}

\popcatcodetable

> Joey
> 
> On Sat, Oct 9, 2021 at 12:50 PM Hans Hagen <j.hagen@xs4all.nl 
> <mailto:j.hagen@xs4all.nl>> wrote:
> 
>     On 10/9/2021 5:40 PM, Joey McCollum via ntg-context wrote:
>      > Hi,
>      >
>      > I'm trying to define concise biblatex-style citation macros for a
>     custom
>      > bibliographic style specification with support for intelligent
>     placement
>      > of trailing punctuation, and I've encountered an unusual error.
>     If I try
>      > to define the macros within the btxrenderingdefinitions environment,
>      > then the code for handling trailing punctuation with the
>      > \doifinstring and \doifnotinstring macros fails in some cases.
>      > Specifically, it correctly detects when the trailing punctuation
>     is a
>      > period, comma, or semicolon, but not when it is a colon, exclamation
>      > point, or question mark. The following MWE reproduces the error:
>      >
>      > ```
>     \starttext
> 
>     test,\removepunctuation -test
>     test;\removepunctuation -test
>     test:\removepunctuation -test
>     test?\removepunctuation -test
>     test!\removepunctuation -test
>     test.\removepunctuation -test
> 
>     \stoptext
> 
> 
> 
>     -----------------------------------------------------------------
>                                                 Hans Hagen | PRAGMA ADE
>                     Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>              tel: 038 477 53 69 | www.pragma-ade.nl
>     <http://www.pragma-ade.nl> | www.pragma-pod.nl
>     <http://www.pragma-pod.nl>
>     -----------------------------------------------------------------
> 


-- 

-----------------------------------------------------------------
                                           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 / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2021-10-10 10:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-09 15:40 Joey McCollum via ntg-context
2021-10-09 16:50 ` Hans Hagen via ntg-context
2021-10-10  3:42   ` Joey McCollum via ntg-context
2021-10-10 10:34     ` Hans Hagen via ntg-context [this message]
2021-10-10 10:40     ` Wolfgang Schuster via ntg-context
2021-10-10 13:40       ` Joey McCollum via ntg-context
2021-10-12  1:57         ` Joey McCollum via ntg-context

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=02cd51a0-2a41-09bd-c7b4-12a779f5e224@xs4all.nl \
    --to=ntg-context@ntg.nl \
    --cc=j.hagen@xs4all.nl \
    --cc=jmccollum20140511@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).