Ambiente con un numero variabile di elementi

  • Creatore
    Topic
  • #53724
    ernded
    Partecipante
      Up
      0
      Down
      ::


      Dato questo ambiente
      `
      \newcommand{\qf}[1]{\quad\fbox{#1}}
      \newenvironment{risp}[4]{\par\noindent\begin{quote}\begin{slshape}\footnotesize\fbox a #1;\qf b #2;\qf c #3;\qf d #4.}{\end{slshape}\par\end{quote}}
      `

      è possibile modificarlo in modo da scegliere di volta in volta il numero dei parametri da passare all’ambiente?
      Grazie
      ciao
      Ernesto

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #53725
        Up
        0
        Down
        ::

        Dato questo ambiente
        `
        \newcommand{\qf}[1]{\quad\fbox{#1}}
        \newenvironment{risp}[4]{\par\noindent\begin{quote}\begin{slshape}\footnotesize\fbox a #1;\qf b #2;\qf c #3;\qf d #4.}{\end{slshape}\par\end{quote}}
        `

        è possibile modificarlo in modo da scegliere di volta in volta il numero dei parametri da passare all’ambiente?

        Non è del tutto chiaro quello che vuoi. A parte l’abbondanza di cose del tutto inutili nel tuo codice.

        Intanto non ti serve un ambiente, bensì un comando con un argomento. Quello che vuoi, mi pare di capire, è mettere le possibili risposte subito dopo la domanda.
        `\documentclass[a4paper]{article}

        \makeatletter
        \newcommand{\risposte}[1]{\\*
        \indent{\slshape\footnotesize\process@answers{#1}\par}}
        \def\process@answers#1{\def\ans@list{#1}\count@=\z@
        \@for\next:=\ans@list\do{\write@answer}%
        \setbox\z@=\lastbox.}
        \def\write@answer{\advance\count@\@ne
        \unskip\quad\@alph{\count@}\ \next\hbox{;}}
        \makeatother

        \begin{document}
        Ciao
        \risposte{Uno,Due,Tre}

        Arturo
        \risposte{A,B, C, D}

        \end{document}`
        Se preferisci i riquadri, sostituisci la definizione di \write@answers:
        `\def\write@answer{\advance\count@\@ne
        \unskip\quad\fbox{\@alph{\count@}\ \next}}`
        e togli “\setbox\z@=\lastbox.” nella definizione di \process@answers. Aggiusta a piacere.

        Ciao
        Enrico

      • #53726
        ernded
        Partecipante
          Up
          0
          Down
          ::


          PERFETTO!
          grazie mille Ernico
          Ernesto

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top