Pacchetto exam, come mettere etichette tra checkbox e risposte?

  • Creatore
    Topic
  • #111312
    Up
    0
    Down
    ::


    Salve, sto usando in LaTeX (pdflatex) il pacchetto exam per creare una sorta di “quiz” in ambito programmazione. Ho già letto buona parte (non tutta) della documentazione examdoc.pdf. Riesco già a fare discrete cose ma ovviamente non tutto.

    In particolare sto usando l’ambiente checkboxes per ottenere una lista di checkbox ed ho anche configurato il simbolo per avere un quadrato. Per far capire, questo è un codice di esempio:

    `
    \documentclass[a4paper,10pt]{exam}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{amssymb}
    \checkboxchar{$\square$}
    \begin{document}
    \begin{questions}

    \question Questa è una domanda
    \begin{checkboxes}
    \choice risposta1
    \correctchoice risposta2
    \end{checkboxes}

    \end{questions}
    \end{document}
    `

    Quello che vorrei fare è mettere (possibilmente in automatico, come succede per l’ambiente choices) delle etichette A. B. ecc… tra i checkbox e il testo della risposta.
    Insomma vorrei ottenere graficamente qualcosa tipo:

    □ A. risposta1
    □ B. risposta2

    invece che

    □ risposta1
    □ risposta2

    È possibile? Se sì, come? Non chiedo codice completo … basta anche solo qualche indicazione affinché possa documentarmi o scoprire comunque io come fare (ripeto, se possibile).
    Grazie.

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #111313
      LuglioM26
      Partecipante
        Up
        0
        Down
        ::


        Ciao, puoi consultare a partire da pag. 38 del manuale.

        Se usi questo codice dovrebbe funzionare:

        `
        \documentclass[a4paper,10pt,answers]{exam} % il parametro answers evidenzia la risposta corretta
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage{amssymb}

        \checkboxchar{$\square$}
        \checkedchar{$\blacksquare$} % cambia il simbolo per la risposta corretta

        \renewcommand{\thechoice}{$\square$\quad\Alph{choice}}
        \renewcommand{\choicelabel}{\thechoice.}

        \begin{document}

        \begin{questions}

        \question Ambiente \verb|checkboxes| con risposta corretta evidenziata.
        \begin{checkboxes}
        \choice risposta 1
        \correctchoice risposta 2
        \choice risposta 3
        \end{checkboxes}

        \question Ambiente \verb|choices + checkboxes|.

        \begin{choices}
        \choice 1
        \choice 2
        \choice 3
        \end{choices}

        \renewcommand{\thechoice}{\Alph{choice}} % per ristabilire il choice
        \question Ambiente \verb|choices| senza \verb|checkboxes|.
        \begin{choices}
        \choice 1
        \choice 2
        \choice 3
        \end{choices}
        \end{questions}

        \end{document}

        `

        Resta, però, da sistemare l’allineamento a sinistra.

        Stefano

      • #111314
        Up
        0
        Down
        ::


        Salve, scusate se rispondo solo ora ma non ne ho avuto proprio tempo prima. Ringrazio naturalmente @LuglioM26 per la sua risposta, che però purtroppo non mi è stata particolarmente utile perché rimane infatti il problema dell’allineamento e anche il fatto che nel secondo esempio (quello indicato “Ambiente choices + checkboxes”, una \correctchoice non viene mostrata come “marcata”.

        Comunque dopo un po’ di studi, verifiche e prove ho trovato una soluzione che perlomeno al momento mi soddisfa. Mostro qui la “mia” soluzione (con PDF allegato) in modo che magari possa essere utile anche ad altri.
        La mia soluzione non dà le label in “automatico” ma tramite un comando \Item{x} che sfrutta un \makebox per creare una scatola spostata di un tot a sinistra, andando poi anche a “giocare” sulla spaziatura tra checkbox e testo.

        Il fatto che le label non vengano in automatico, non lo trovo un “difetto” in quanto così almeno nel sorgente vedo chiaramente quali sono le label!
        L’allineamento risulta perfetto ed anche il fatto che il testo va a capo correttamente.

        `\documentclass[a4paper,10pt,answers]{exam}

        \usepackage[utf8]{inputenc}
        \usepackage[default,semibold]{sourcesanspro}
        \usepackage{lipsum}
        \usepackage{amssymb}
        \usepackage[T1]{fontenc}

        \checkboxchar{$\square$}
        \checkedchar{$\boxtimes$}
        \CorrectChoiceEmphasis{} % solo per non avere bold nelle risposte corrette

        \renewcommand{\checkboxeshook}{
        \setlength{\labelsep}{24pt}
        \setlength{\leftmargin}{42pt}
        }

        \newcommand{\Item}[1]{\hspace{-17pt}\makebox[17pt][l]{\textbf{#1.}}\ignorespaces}

        \begin{document}

        \begin{questions}

        \question Testo della domanda
        \begin{checkboxes}
        \choice \Item{A} \lipsum[130]
        \correctchoice \Item{B} \lipsum[133]
        \choice \Item{C} \lipsum[138]
        \end{checkboxes}

        \end{questions}

        \end{document}
        `

        P.S. domanda rivolta a chi di voi è molto competente su LaTeX: cosa ne pensate della mia soluzione??

        Attachments:
        You must be logged in to view attached files.
      • #111315
        Up
        0
        Down
        ::

        andbin” post=111772P.S. domanda rivolta a chi di voi è molto competente su LaTeX: cosa ne pensate della mia soluzione??

        Scusate se insisto ma … davvero nessuno sa darmi un feedback sulla “mia” soluzione? È una soluzione “accettabile”? Si può fare di meglio? O invece è “brutta”? O stilisticamente inappropriata per il pacchetto exam o per LaTeX in generale? O potrebbe dare altri problemi che a me ovviamente sfuggono?

        Tra l’altro sono andato anche un po’ oltre: ho definito dei nuovi comandi che incapsulano il checkbox e la label. Inoltre ho usato valori in em per rendere gli spazi proporzionali al font usato.

        `\renewcommand{\checkboxeshook}{
        \setlength{\labelsep}{2.4em}
        \setlength{\leftmargin}{4em}
        }

        \newcommand{\ChoiceLabel}[1]{\hspace{-1.6em}\makebox[1.6em][l]{\textbf{#1.}}\ignorespaces}

        \newcommand{\WrongChoice}[1]{\choice \ChoiceLabel{#1}}
        \newcommand{\RightChoice}[1]{\correctchoice \ChoiceLabel{#1}}
        `

        Così poi è sufficiente fare:

        ` \WrongChoice{A} blabla
        \RightChoice{B} blabla`

        Che mi sembra molto lineare e “pulito”.

        Quindi sto facendo bene o sto facendo “castronerie”? 😛

      • #111316
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::



          @andbin
          , per darti un parere non basta essere esperti di LaTeX, ma bisogna essere esperti di exam.
          Io non lo sono, quindi posso dirti che l’idea di usare delle macro è una buona idea in generale; se sia una buona idea con exam, non te lo so dire.

      Visualizzazione 3 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top