Problema utilizzo ambiente personalizzato

  • Creatore
    Topic
  • #68431
    Up
    0
    Down
    ::


    Salve a tutti,

    sto sperimentando un problema piuttosto strano: ho creato un ambiente “sistema” (per sistemi di equazioni) che faccia uso dell’ambiente “split”; in quanto a sintassi sembrerebbe tutto ok, ma in compilazione dà errore. Quel che è strano è che se, anziché scrivere il sistema dentro l’ambiente da me creato, scrivo esplicitamente apertura e chiusura dell’ambiente, allora funziona correttamente.

    L’ambiente è questo
    `\newenvironment{sistema}{ \left\{ \begin{split} }{ \end{split}\right. }`

    Un esempio di utilizzo:
    `\begin{sistema}
    %\left\{
    %\begin{split}
    &\dfrac{e^2}{r^2} = \dfrac{m\,v^2}{r} \\[1ex]
    &m\,v\,r = \hbar\,n
    %\end{split}
    %\right.
    \end{sistema}`

    Come dicevo, in questo modo non funziona (dà il messaggio “Package amsmath Warning: Cannot use `split’ here”), mentre se commento le righe \begin{sistema} e \end{sistema} e s-commento le altre funziona perfettamente.

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


      Ciao,

      per creare un nuovo “ambiente” sistema puoi utilizzare il metodo dell’Arte: trovi la guida nella documentazione in alto, poi cerca “\newenvironment{sistema}”.

      Ciao
      Claudio

    • #68433
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Non puoi creare un sistema in quel modo; l’ambiente split provvede lui stesso a creare l’ambiente matematico e quindi non lo puoi dare essendo già in ambiente matematico.

        Però puoi usare l’ambiente aligned che è fatto apposta per creare equazioni e pezzi di equazioni all’interno di una altro ambiente che provveda a numerare. Fra l’altro il tup problema si semplificherebbe moltissimo, senza definire nessun ambiente particolarecon
        `
        \begin{equation}
        \left\{
        \begin{aligned}

        \end{aligned}
        \right.
        \label{…}
        \end{equation}
        `
        dove hai lo spazio anche epr il \label da usare per l’intero sistema.

        Se vuoi numerare l’intero sistema e poi le singole equazioni devi usare l’abiente aligned dento all’ambiente subequations.

        Documentazione: texdoc amsmath pagine 5 e 7.

      • #68434
        Up
        0
        Down
        ::

        OldClaudio” post=67521Non puoi creare un sistema in quel modo; l’ambiente split provvede lui stesso a creare l’ambiente matematico e quindi non lo puoi dare essendo già in ambiente matematico.

        Mmm… ma di “split” ho visto esempi di utilizzo solo come ambiente “subordinato”. Lo uso spesso all’interno di “equation” e non dà alcun tipo di problema. Inoltre, come ho scritto all’inizio, questo codice
        `\begin{equation}
        \left\{
        \begin{split}
        &\dfrac{e^2}{r^2} = \dfrac{m\,v^2}{r} \\[1ex]
        &m\,v\,r = \hbar\,n
        \end{split}
        \right.
        \end{equation}`
        funziona come vorrei. Ed è proprio quel che l’ambiente “sistema” così come l’ho definito dovrebbe fare. 😕 E’ questo che non mi spiego!

        Comunque grazie mille! “aligned” fa quel che volevo! non l’avevo considerato!

      • #68435
        Up
        0
        Down
        ::

        Cerbero” post=67523

        Non puoi creare un sistema in quel modo; l’ambiente split provvede lui stesso a creare l’ambiente matematico e quindi non lo puoi dare essendo già in ambiente matematico.

        Mmm… ma di “split” ho visto esempi di utilizzo solo come ambiente “subordinato”. Lo uso spesso all’interno di “equation” e non dà alcun tipo di problema. Inoltre, come ho scritto all’inizio, questo codice
        `\begin{equation}
        \left\{
        \begin{split}
        &\dfrac{e^2}{r^2} = \dfrac{m\,v^2}{r} \\[1ex]
        &m\,v\,r = \hbar\,n
        \end{split}
        \right.
        \end{equation}`
        funziona come vorrei. Ed è proprio quel che l’ambiente “sistema” così come l’ho definito dovrebbe fare. 😕

        Gli ambienti come split, align e gather non possono essere usati negli argomenti di \newenvironment. Il motivo è che \begin{split} (o uno degli altri) deve leggere tutto il testo fino al comando \end{split} corrispondente e, se questo è nascosto in \end{qualcosa}, non può essere “visto” da quel processo.

        Ma siccome non ti serve split, perché array va benissimo, puoi trarre le tue conclusioni.

        Ciao
        Enrico

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

    Go to top