* Check the character after a macro @ 2015-05-01 16:56 Sam Ḥilluc 2015-05-01 17:38 ` Otared Kavian 0 siblings, 1 reply; 5+ messages in thread From: Sam Ḥilluc @ 2015-05-01 16:56 UTC (permalink / raw) To: ntg-context Hello, Is it possible to check (in a macro definition) if the character following the macro is included in a set of characters? Something that could work like this: \def\MyMacro#1{% \ifNextCharIn{abcd} \dothis% \else \dothat% \fi% } Cheers. ___________________________________________________________________________________ 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: Check the character after a macro 2015-05-01 16:56 Check the character after a macro Sam Ḥilluc @ 2015-05-01 17:38 ` Otared Kavian 2015-05-01 18:41 ` Sam Ḥilluc 0 siblings, 1 reply; 5+ messages in thread From: Otared Kavian @ 2015-05-01 17:38 UTC (permalink / raw) To: mailing list for ConTeXt users Hi, You have several commands in ConTeXt doing what you are seeking to do: please look at the examples below: %%% begin do-if-inset.tex \starttext \type{\doifinset{A}{A,B,C}{should go}:} \doifinset{A}{A,B,C}{should go} \type{\doifinset{D}{A,B,C}{should go}:} \doifinset{D}{A,B,C}{should participate} \type{\doifnotinset{}{A,B,C}{not in the set}:} \doifnotinset{}{A,B,C}{not in the set} \type{\doifnotinset{D}{A,B,C}{not in the set}:} \doifnotinset{D}{A,B,C}{not in the set} \doifinsetelse{D}{A,B,C}{it is in the set}{it is not in the set} \define\test{B} \type{\doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the set}} \doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the set} \stoptext %%% end do-if-inset.tex Best regards: OK > On 01 May 2015, at 18:56, Sam Ḥilluc <shilluc@gmx.com> wrote: > > Hello, > > Is it possible to check (in a macro definition) if the character following the > macro is included in a set of characters? > > Something that could work like this: > > \def\MyMacro#1{% > \ifNextCharIn{abcd} \dothis% > \else \dothat% > \fi% > } > > Cheers. > ___________________________________________________________________________________ > 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 > ___________________________________________________________________________________ ___________________________________________________________________________________ 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: Check the character after a macro 2015-05-01 17:38 ` Otared Kavian @ 2015-05-01 18:41 ` Sam Ḥilluc 2015-05-01 19:10 ` Wolfgang Schuster 0 siblings, 1 reply; 5+ messages in thread From: Sam Ḥilluc @ 2015-05-01 18:41 UTC (permalink / raw) To: mailing list for ConTeXt users On 2015-05-01 19:38, Otared Kavian wrote: > Hi, > > You have several commands in ConTeXt doing what you are seeking to do: please look at the examples below: > > %%% begin do-if-inset.tex > \starttext > \type{\doifinset{A}{A,B,C}{should go}:} \doifinset{A}{A,B,C}{should go} > > \type{\doifinset{D}{A,B,C}{should go}:} \doifinset{D}{A,B,C}{should participate} > > > \type{\doifnotinset{}{A,B,C}{not in the set}:} \doifnotinset{}{A,B,C}{not in the set} > > \type{\doifnotinset{D}{A,B,C}{not in the set}:} \doifnotinset{D}{A,B,C}{not in the set} > > \doifinsetelse{D}{A,B,C}{it is in the set}{it is not in the set} > > \define\test{B} > > \type{\doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the set}} > > \doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the set} > \stoptext > %%% end do-if-inset.tex > > Best regards: OK This works for testing if a given character is in a set, but how can I retrieve that character just after the defined macro. To give an example, a macro that adds a dot if the next character is not a comma. \MyMacro{text1} text2 -> text1. text2 \MyMacro{text1}, text2 -> text1, text2 Thanks. ___________________________________________________________________________________ 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: Check the character after a macro 2015-05-01 18:41 ` Sam Ḥilluc @ 2015-05-01 19:10 ` Wolfgang Schuster 2015-05-01 21:53 ` Sam Ḥilluc 0 siblings, 1 reply; 5+ messages in thread From: Wolfgang Schuster @ 2015-05-01 19:10 UTC (permalink / raw) To: mailing list for ConTeXt users [-- Attachment #1.1: Type: text/plain, Size: 1837 bytes --] > Am 01.05.2015 um 20:41 schrieb Sam Ḥilluc <shilluc@gmx.com>: > > On 2015-05-01 19:38, Otared Kavian wrote: >> Hi, >> >> You have several commands in ConTeXt doing what you are seeking to do: please look at the examples below: >> >> %%% begin do-if-inset.tex >> \starttext >> \type{\doifinset{A}{A,B,C}{should go}:} \doifinset{A}{A,B,C}{should go} >> >> \type{\doifinset{D}{A,B,C}{should go}:} \doifinset{D}{A,B,C}{should participate} >> >> >> \type{\doifnotinset{}{A,B,C}{not in the set}:} \doifnotinset{}{A,B,C}{not in the set} >> >> \type{\doifnotinset{D}{A,B,C}{not in the set}:} \doifnotinset{D}{A,B,C}{not in the set} >> >> \doifinsetelse{D}{A,B,C}{it is in the set}{it is not in the set} >> >> \define\test{B} >> >> \type{\doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the set}} >> >> \doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the set} >> \stoptext >> %%% end do-if-inset.tex >> >> Best regards: OK > > This works for testing if a given character is in a set, but how can I retrieve > that character just after the defined macro. > > To give an example, a macro that adds a dot if the next character is not a > comma. > > \MyMacro{text1} text2 -> text1. text2 > \MyMacro{text1}, text2 -> text1, text2 You can use the \doifelsenextchar command to check the character after your command. \define[1]\MyMacro {\doifelsenextchar{,} {#1} {#1. }} \starttext \MyMacro{left} right \MyMacro{left}, right \stoptext The limitation of this method is that you check only for one character at a time and when want to check for more you have to use multiple \doifelsenextchar lines. \doifelsenextchar{,} {...} {\doifelsenextchar{.} {...} {...}} Wolfgang [-- Attachment #1.2: Type: text/html, Size: 9625 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: Check the character after a macro 2015-05-01 19:10 ` Wolfgang Schuster @ 2015-05-01 21:53 ` Sam Ḥilluc 0 siblings, 0 replies; 5+ messages in thread From: Sam Ḥilluc @ 2015-05-01 21:53 UTC (permalink / raw) To: mailing list for ConTeXt users On 2015-05-01 21:10, Wolfgang Schuster wrote: > You can use the \doifelsenextchar command to check the character after your command. > > \define[1]\MyMacro > {\doifelsenextchar{,} > {#1} > {#1. }} > > \starttext > > \MyMacro{left} right > > \MyMacro{left}, right > > \stoptext > > > The limitation of this method is that you check only for one character at a time > and when want to check for more you have to use multiple \doifelsenextchar lines. > > \doifelsenextchar{,} > {...} > {\doifelsenextchar{.} > {...} > {...}} > > Wolfgang It worked, thanks. ___________________________________________________________________________________ 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:[~2015-05-01 21:53 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-05-01 16:56 Check the character after a macro Sam Ḥilluc 2015-05-01 17:38 ` Otared Kavian 2015-05-01 18:41 ` Sam Ḥilluc 2015-05-01 19:10 ` Wolfgang Schuster 2015-05-01 21:53 ` Sam Ḥilluc
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).