[NTG-context] checking the first word in a command
Hans Hagen
pragma at wxs.nl
Mon Jan 26 18:43:20 CET 2015
On 1/26/2015 5:49 PM, Pablo Rodriguez wrote:
> Dear list,
>
> I have the following sample:
>
> \starttext
>
> \def\Persona{señor Juan Martínez}
> \def\Persona{señora María Pérez}
>
> El/La \Persona\ ha aprobado.
> \stoptext
>
> How can I replace "El/La" in text with a command that can assign the
> proper article?
>
> I could use the translate module, but the real case is more complex than
> the previous sample.
>
> What I need in the command is that it can check the first word in the
> command \Persona and assign "el" or "la".
>
> Which is the right way to do this?
\startluacode
local replacer = lpeg.replacer {
["señor"] = "el señor",
["señora"] = "la señora",
}
function document.MaleOrFemale(str)
context(lpeg.match(replacer,str))
end
\stopluacode
\unexpanded\def\MaleOrFemale#1%
{\ctxlua{document.MaleOrFemale("#1")}}
\starttext
whatever \MaleOrFemale{señor Juan Martínez} and \MaleOrFemale{señora
María Pérez}
\stoptext
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
More information about the ntg-context
mailing list