- Questo topic ha 7 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 16 anni, 3 mesi fa da .
-
Topic
-
Buongiorno.
Ammettiamo di dover gestire la seguente sintassi con la chiave extends:
`
oppure:
extends ` Mi servirebbe un comando che elabori la stringa di testo dell’utente e mi restituisca il valore del nome nel primo caso oppure i valori dei due nomi nel secondo.
La soluzione che ho pensato (e che chiarirà meglio il problema) è quella di utilizzare gli argomenti delimitati, ecco il codice:
`\documentclass{minimal}\makeatletter
\def\extends{extends}
\def\pnn#1 #2 ){%
\def\key{#1}
\ifx\key\extends
padre=#2.
\else
Error 'extends'
\fi
}
%
\def\pn(#1 #2){%
\def\tmp{#2}
\ifx\tmp\@empty
nome=#1.
\else
nome=#1, \pnn#2)
\fi
}
%
\def\parsename#1{%
\pn(#1 )
}
\makeatother\begin{document}
\parsename{pippo}
\parsename{pippo extends sempronio}
\end{document}`Questo codice fa esattamente quello che desidero: ma smette di funzionare non appena l’utente prova ad inserire caratteri spazio prima od anche dopo l’argomento di\parsename
Chiedo quindi se esiste un altro modo per implementare l’idea sintattica o se è possibile farlo aggiustando il codice che fa uso della tecnica ad argomenti delimitati.
Grazie a tutti.
Roberto.
- Devi essere connesso per rispondere a questo topic.