Parametri nella terza parte di un newenvironment

  • Creatore
    Topic
  • #12528
    Up
    0
    Down
    ::


    Ho bisogno di passare il nome di un’immagine come parametro all’interno di un ambiente. Un esempio minimale è riportato sotto.
    `\documentclass{article}
    \usepackage{graphicx}

    \newenvironment{provaT}[1]{Titolo.}{\includegraphics[width=10ex]{#1}}

    \begin{document}
    \begin{provaT}{immagine}
    \end{provaT}
    Testo.
    \end{provaT}
    \end{document}
    `
    La compilazione produce questo errore
    `! Illegal parameter number in definition of \endprovaT.

    1
    l.4 …{Titolo.}{\includegraphics[width=10ex]{#1}}

    ? `
    Se il nome della figura viene passato senza parametro, l’ambiente funziona perfettamente
    `\documentclass{article}
    \usepackage{graphicx}

    \newenvironment{provaT}{Titolo.}{\includegraphics[width=10ex]{immagine}}

    \begin{document}
    \begin{provaT}
    \end{provaT}
    Testo.
    \end{provaT}
    \end{document}`
    Qual’è il problema?

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

      Ho bisogno di passare il nome di un’immagine come parametro all’interno di un ambiente. Un esempio minimale è riportato sotto.
      `\documentclass{article}
      \usepackage{graphicx}

      \newenvironment{provaT}[1]{Titolo.}{\includegraphics[width=10ex]{#1}}`
      La compilazione produce questo errore
      `! Illegal parameter number in definition of \endprovaT.

      1
      l.4 …{Titolo.}{\includegraphics[width=10ex]{#1}}

      ? `
      Qual è il problema?

      È un “problema” noto. I parametri # possono essere usati solo nel secondo argomento di \newenvironment (apertura) e non nel terzo (chiusura). Il trucco è semplice: passi l’argomento a una macro.
      `\newcommand{\provaTarg}{}
      \newenvironment{provaT}[1]
      {\renewcommand{\provaTarg}{#1}Titolo.}
      {\includegraphics[width=10ex]{\provaTarg}}`
      Ciao
      Enrico

    • #12530
      Up
      0
      Down
      ::

      È un “problema” noto.

      Adesso anche a me! Grazie mille!

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

Go to top