Замена акцентированных символов в переменной

Замена акцентированных символов в переменной

Я хотел бы заменить акцентированные символы в строковой переменной, но я не эксперт в программировании собственных макросов в Latex. Поэтому я нашел макрос здесь:https://openclassrooms.com/forum/sujet/latex-supprimer-des-accents-96612которые могут отображать предложение без ударения после их замены. Однако, когда я пытаюсь использовать переменную в качестве аргумента функции, вместо того, чтобы писать предложение напрямую, это больше не работает. Я размещаю здесь минимальный пример:

\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}

Результат здесь:

введите описание изображения здесь

Try 1 работает нормально, но я не понимаю, почему Try 2 и Try 3 не работают, они дают мне слово с акцентированными символами. Моя цель в том, чтобы Try 3 работал. Мне нужно использовать его в более полном документе. Я был бы очень признателен, если бы кто-нибудь помог мне решить эту проблему.

Заранее спасибо.

решение1

Вы устанавливаете режим расширения, в \expandargкоторый расширяется только \tempодин раз. Когда \tempэто строка, это нормально. Когда это макрос, дальнейшее расширение не происходит, макрос просто возвращается.

В вашем примере кода вы могли бы просто заменить \def\temp{#2}by \edef\temp{#2}, чтобы получить расширение этого термина.

Связанный контент