Reemplazo de caracteres acentuados en una variable

Reemplazo de caracteres acentuados en una variable

Me gustaría reemplazar caracteres acentuados en una variable de cadena pero no soy un experto en programar mis propias macros en Latex. Entonces, encontré una macro aquí:https://openclassrooms.com/forum/sujet/latex-supprimer-des-accents-96612que puede mostrar una oración sin tilde después de reemplazarlas. Sin embargo, cuando intento usar una variable como argumento de la función, en lugar de escribir directamente la oración, ya no funciona. Publico aquí un ejemplo mínimo:

\documentclass[11pt]{article}

\usepackage{luatextra}
\usepackage[french]{babel}
\usepackage{xstring}

\makeatletter
\def\delaccent[#1]#2{% #1=liste des substitutions
\begingroup
\expandarg\exploregroups\def\temp{#2}%
\delaccent@i#1\delaccent@i\delaccent@i
\expandafter\temp\endgroup}
\def\delaccent@i#1#2{\ifx\delaccent@i#1\else\StrSubstitute\temp{\noexpand#1}{\noexpand#2}[\temp]\expandafter\delaccent@i\fi}
\makeatother

\newcommand{\name}{Michaël}
\newcommand{\nameSA}{\delaccent[{à}{a}{é}{e}{è}{e}{ë}{e}{ê}{e}{ï}{i}{ô}{o}{ù}{u}]{\name}}

\begin{document}

Name : \name

Try 1 : \delaccent[{à}{a}{é}{e}{è}{e}{ë}{e}{ê}{e}{ï}{i}{ô}{o}{ù}{u}]{Michaël}

Try 2 : \delaccent[{à}{a}{é}{e}{è}{e}{ë}{e}{ê}{e}{ï}{i}{ô}{o}{ù}{u}]{\name}

Try 3 : \nameSA

\end{document}

El resultado está aquí:

ingrese la descripción de la imagen aquí

El intento 1 funciona bien, pero no entiendo por qué el intento 2 y el intento 3 no funcionan, me dan la palabra con los caracteres acentuados. Mi objetivo es que Try 3 funcione. Lo necesito para usarlo en un documento más completo. Agradecería mucho si alguien pudiera ayudarme a resolver este problema.

Gracias de antemano.

Respuesta1

Establece el modo de expansión para \expandargque solo se expanda \tempuna vez. Cuando \tempes una cuerda que está bien. Cuando es una macro, no se produce ninguna expansión adicional, la macro simplemente se devuelve.

En su código de ejemplo, podría simplemente reemplazar por \def\temp{#2}para \edef\temp{#2}obtener la expansión de este término.

información relacionada