enumerate

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


      Ho letto sulla “Breve guida” le note di Enrico sul pacchetto in oggetto e sui suoi fratelli enumitem e paralist che permette di fare diverse belle cose.
      Non ho però trovato come si può fare ad evidenziare (per esempio con un simbolo qualsiasi o con un font diverso) le label solo di alcuni item.

      Un possibile ‘uso che mi viene in mente potrebbe essere quello di evidenziare, in una lista di esercizi, quelli più difficili..
      Avete idea di come si potrebbe fare?
      grazie
      ciao
      Ernesto

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #41832
        Up
        0
        Down
        ::

        Ho letto sulla “Breve guida” le note di Enrico sul pacchetto in oggetto e sui suoi fratelli enumitem e paralist che permette di fare diverse belle cose.
        Non ho però trovato come si può fare ad evidenziare (per esempio con un simbolo qualsiasi o con un font diverso) le label solo di alcuni item.

        Un possibile ‘uso che mi viene in mente potrebbe essere quello di evidenziare, in una lista di esercizi, quelli più difficili..

        Non c’entra enumerate; da’ un’occhiata a enumitem, in ogni caso. Il codice seguente dovrebbe funzionare con entrambi.
        `\makeatletter
        \newcommand\flag{%
        \settowidth{\dimen@}{\@nameuse{label\@enumctr}\hskip\labelsep}%
        \makebox[0pt][r]{*\,\kern\dimen@}}
        \makeatother`
        Per avere un \item con l’asterisco, scrivi \item\flag:
        `\begin{enumerate}
        \item $1+1$
        \item\flag $1+2$
        \end{enumerate}`
        Ciao
        Enrico

      • #41833
        ernded
        Partecipante
          Up
          0
          Down
          ::


          Grazie, funziona perfettamente.
          Mi spieghi come funziona?
          grazie
          ciao
          ernesto

        • #41834
          Up
          0
          Down
          ::

          Grazie, funziona perfettamente.
          Mi spieghi come funziona?

          Volentieri. Vista la domanda, ho cercato in giro e ho trovato una “soluzione” che consisteva nel fare “a occhio” quello che invece si può impostare con precisione; ed ecco la soluzione:
          `\newcommand\flag{%
          \settowidth{\dimen@}{\@nameuse{label\@enumctr}\hskip\labelsep}%
          \makebox[0pt][r]{*\,\kern\dimen@}}`
          Occorre sapere che, appena LaTeX incontra il comando \item in un ambiente enumerate, fa scattare il contatore e quindi l’espansione del comando \labelenumi (\labelenumii, \labelenumiii oppure \labelenumiv) è l’etichetta che viene posta davanti all’elemento della lista. Fra l’etichetta e il testo viene posto uno spazio di ampiezza \labelsep.

          Come fa LaTeX a conoscere quale fra i quattro “\labelenumX” deve usare? A ogni livello di annidamento ne viene usato uno; al momento di \begin{enumerate} viene definito \@enumctr con espansione “enumi”, “enumii”, “enumiii” oppure “enumiv”. Con \@nameuse{label\@enumctr} è come se usassi \labelenumi, se \@enumctr si espande a “enumi”, e lo stesso negli altri casi.

          A questo punto si può capire che fa \flag. La prima cosa è impostare \dimen@ all’ampiezza di “\labelenumi” (ma può essere \labelenumii, eccetera, se siamo a un livello di annidamento superiore) seguita da uno spazio \labelsep. Poi il trucco finale: inseriamo una box larga zero con allineamento al bordo destro: quindi il contenuto della box sporgerà sulla sinistra rispetto al punto in cui la box viene composta; il contenuto è proprio il segnale (l’asterisco), seguito da un piccolo spazio di separazione e, infine, uno spazio dell’ampiezza calcolata prima che ci permette di “saltare” l’etichetta.

          Ci sono limitazioni: funziona solo se l’etichetta è, come nel caso standard di LaTeX, anche usando il pacchetto “enumerate”. composta a filo della separazione \labelsep. Se dovessi usare enumitem, occorre fare attenzione a come viene posta l’etichetta nello spazio che viene riservato. Seconda limitazione: \flag fa entrare in modo orizzontale, quindi un eventuale \begin{enumerate} che seguisse \item\flag andrebbe alla riga successiva.

          Ciao
          Enrico

        • #41835
          ernded
          Partecipante
            Up
            0
            Down
            ::


            grazie, chiarissimo
            ciao
            Ernesto

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

        Go to top