Re: Accettare solo argomenti non nulli

#48286
OldClaudio
Partecipante
    Up
    0
    Down
    ::


    Credo che a meno di uno spazio dopo \mymark il codice possa essere considerato corretto per una analisi a tre vie come quello che proponi:
    `
    \documentclass[11pt,a4paper]{report}
    \makeatletter
    \def\setmark#1{%
    \def\temp{#1}%
    \ifx\temp\space
    Spazio imbroglione!%
    \else
    \ifx\temp\@empty
    Vuoto maleducato!%
    \else
    \def\mymark{#1}\mymark\ Ok%
    \fi
    \fi
    }
    \makeatother

    \begin{document}

    1: \setmark{ Valore non nullo }

    2: \setmark{}

    3: \setmark{
    }

    4: \setmark{ }
    \end{document}
    `

    Altrimenti hai la possibilità di usare \newcommand con l’argomento facoltativo
    `
    \newcommand\setmark[1][]{%
    \def\mymark{#1}\ifx\mymark\empty …
    \else \ifx\mymark\space …
    \else \mymark\ OK
    \fi
    \fi
    }
    `

    Se lo usi con \setmark senza argomento ti scrive la frase specificate per il caso empty; se ti sbagli e scrivi \setmark[] succede la stessa cosa; se scrivi \setmark[ ] ti scrive la frase per lo spazio; se scrivi \setmark[Pippo] ti scrive Pippo OK.

    Go to top