* \doifelse not working, \doiftextelse breaking
@ 2020-10-09 13:58 Pablo Rodriguez
2020-10-09 14:08 ` Wolfgang Schuster
0 siblings, 1 reply; 5+ messages in thread
From: Pablo Rodriguez @ 2020-10-09 13:58 UTC (permalink / raw)
To: mailing list for ConTeXt users
Dear list,
I have the following sample:
\starttext
\startluacode
function document.starts_with(str, start)
if str:sub(1, #start) == start then
context(start)
end
end
\stopluacode
\unexpanded\def\startswith[#1][#2]
{\cldcontext{document.starts_with("#1", "#2")}}
\startswith[getjobid764572121][getjobid]
yes:
\doifelse{\startswith[getjobid764572121][getjobid]}{getjobid}
{yes}{no}
no:
\doifelse{\startswith[getjobid764572121][getjobid]}{}
{yes}{no}
%% \doiftextelse{\startswith[getjobid764572121][getjobid]}
% {yes}{no}
\stoptext
I don’t know why comparing doesn’t work with \doifelse.
I’m surprised that \doiftextelse breaks when \startswidth if inside.
How could i make \startswith work inside \doiftext?
Or how could I catch positives when command contents start with a given
string?
Many thanks for your help,
Pablo
--
http://www.ousia.tk
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: \doifelse not working, \doiftextelse breaking
2020-10-09 13:58 \doifelse not working, \doiftextelse breaking Pablo Rodriguez
@ 2020-10-09 14:08 ` Wolfgang Schuster
2020-10-09 14:31 ` Pablo Rodriguez
0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Schuster @ 2020-10-09 14:08 UTC (permalink / raw)
To: mailing list for ConTeXt users; +Cc: Pablo Rodriguez
Pablo Rodriguez schrieb am 09.10.2020 um 15:58:
> Dear list,
>
> I have the following sample:
>
> \starttext
> \startluacode
> function document.starts_with(str, start)
> if str:sub(1, #start) == start then
> context(start)
> end
> end
> \stopluacode
>
> \unexpanded\def\startswith[#1][#2]
> {\cldcontext{document.starts_with("#1", "#2")}}
You need a % at the end of the definition, otherwise TeX expects a space
after the second argument to end the command.
\unexpanded\def\startswith[#1][#2]%
{...}
To improve your command and allow a space between both arguments you can use
\unexpanded\def\startswith
{\dodoubleargument\dostartswith}
\def\dostartswith[#1][#2]%
{...}
or just add a dummy parameter and use #1 and #3 to pass the arguments
\unexpanded\def\startswith[#1]#2[#3]%
{...}
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://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: \doifelse not working, \doiftextelse breaking
2020-10-09 14:08 ` Wolfgang Schuster
@ 2020-10-09 14:31 ` Pablo Rodriguez
2020-10-09 15:10 ` Wolfgang Schuster
0 siblings, 1 reply; 5+ messages in thread
From: Pablo Rodriguez @ 2020-10-09 14:31 UTC (permalink / raw)
To: ntg-context
On 10/9/20 4:08 PM, Wolfgang Schuster wrote:
> [..]
> You need a % at the end of the definition, otherwise TeX expects a space
> after the second argument to end the command.
>
> \unexpanded\def\startswith[#1][#2]%
> {...}
Many thanks for your ultra-fast reply, Wolfgang.
Now I see muy mistake. In my previous command definitions with two
arguments, the opening brace was right after the second argument.
> To improve your command and allow a space between both arguments you can use
>
> \unexpanded\def\startswith
> {\dodoubleargument\dostartswith}
>
> \def\dostartswith[#1][#2]%
> {...}
Now I see with \dosingleargument, \dodoubleargument and
\dotripleargument are there.
Which are the improvements to the command added by \do*argument?
> or just add a dummy parameter and use #1 and #3 to pass the arguments
>
> \unexpanded\def\startswith[#1]#2[#3]%
> {...}
This is shorter, but it looks to creepy (even for my code).
Many thanks for your help,
Pablo
--
http://www.ousia.tk
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: \doifelse not working, \doiftextelse breaking
2020-10-09 14:31 ` Pablo Rodriguez
@ 2020-10-09 15:10 ` Wolfgang Schuster
2020-10-09 19:24 ` Pablo Rodriguez
0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Schuster @ 2020-10-09 15:10 UTC (permalink / raw)
To: mailing list for ConTeXt users, Pablo Rodriguez
Pablo Rodriguez schrieb am 09.10.2020 um 16:31:
>> To improve your command and allow a space between both arguments you can use
>>
>> \unexpanded\def\startswith
>> {\dodoubleargument\dostartswith}
>>
>> \def\dostartswith[#1][#2]%
>> {...}
> Now I see with \dosingleargument, \dodoubleargument and
> \dotripleargument are there.
>
> Which are the improvements to the command added by \do*argument?
You can add a space between both arguments. You version expects this
\startswith [...][...]
while the extended code allows this
\startswith [...] [...]
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://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: \doifelse not working, \doiftextelse breaking
2020-10-09 15:10 ` Wolfgang Schuster
@ 2020-10-09 19:24 ` Pablo Rodriguez
0 siblings, 0 replies; 5+ messages in thread
From: Pablo Rodriguez @ 2020-10-09 19:24 UTC (permalink / raw)
To: ntg-context
On 10/9/20 5:10 PM, Wolfgang Schuster wrote:
> Pablo Rodriguez schrieb am 09.10.2020 um 16:31:
>> [...]
>> Which are the improvements to the command added by \do*argument?
>
> You can add a space between both arguments. You version expects this
>
> \startswith [...][...]
>
> while the extended code allows this
>
> \startswith [...] [...]
Many thanks for your explanation, Wolfgang.
Pablo
--
http://www.ousia.tk
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-10-09 19:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-09 13:58 \doifelse not working, \doiftextelse breaking Pablo Rodriguez
2020-10-09 14:08 ` Wolfgang Schuster
2020-10-09 14:31 ` Pablo Rodriguez
2020-10-09 15:10 ` Wolfgang Schuster
2020-10-09 19:24 ` Pablo Rodriguez
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).