Mimare \qedhere usando \AtEndEnvironment

  • Creatore
    Topic
  • #92911
    Up
    0
    Down
    ::


    La fine di un ambiente proof solitamente disegna un \qedsymbol. Ho provato a definire dei simboli alla fine di altri ambienti, usando etoolbox e \AtEndEnvironment, con questo metodo rupestre ma funzionante
    ` \documentclass[11pt, a4paper]{amsart}
    \usepackage{amsmath, amsthm}

    \theoremstyle{definition}
    \newtheorem{thm}{Theorem}[section]
    \newtheorem{prop}{Proposition}[section]
    \newtheorem{df}{Definition}[section]

    \usepackage{etoolbox}
    \def\defsymbol{$\diamond$}
    \def\propsymbol{$\triangle$}
    \AtEndEnvironment{df}{\null\hfill\defsymbol}
    \AtEndEnvironment{prop}{\null\hfill\propsymbol}

    \begin{document}
    \begin{df}
    Foo
    \end{df}
    \begin{prop}
    Bar
    \end{prop}
    \begin{proof}
    Trivial.
    \end{proof}
    \end{document}`
    …funzionante almeno fino a quando uno non deve finire una defiinzione con un “itemize”: come faccio a creare un comando \prophere, \defhere o altro, che piazzi il diamante o il triangolo “nel posto giusto”?

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #92912
      Up
      0
      Down
      ::

      killing_buddha” post=92536La fine di un ambiente proof solitamente disegna un \qedsymbol. Ho provato a definire dei simboli alla fine di altri ambienti, usando etoolbox e \AtEndEnvironment, con questo metodo rupestre ma funzionante
      ` \documentclass[11pt, a4paper]{amsart}
      \usepackage{amsmath, amsthm}

      \theoremstyle{definition}
      \newtheorem{thm}{Theorem}[section]
      \newtheorem{prop}{Proposition}[section]
      \newtheorem{df}{Definition}[section]

      \usepackage{etoolbox}
      \def\defsymbol{$\diamond$}
      \def\propsymbol{$\triangle$}
      \AtEndEnvironment{df}{\null\hfill\defsymbol}
      \AtEndEnvironment{prop}{\null\hfill\propsymbol}

      \begin{document}
      \begin{df}
      Foo
      \end{df}
      \begin{prop}
      Bar
      \end{prop}
      \begin{proof}
      Trivial.
      \end{proof}
      \end{document}`
      …funzionante almeno fino a quando uno non deve finire una defiinzione con un “itemize”: come faccio a creare un comando \prophere, \defhere o altro, che piazzi il diamante o il triangolo “nel posto giusto”?

      Il metodo che usi è sicuramente sbagliato. Se l’ultima riga finisce troppo vicino al margine destro, il simbolo sarà stampato al margine sinistro, perché [tt]\hfill[/tt] crea un punto buono per spezzare la riga e sparisce, nel caso questo punto finisca per essere usato.

      A che serva un simbolo distintivo per la fine di una definizione o un teorema mi risulta oscuro: la spaziatura verticale è più che sufficiente. Diverso è il caso delle dimostrazioni, che spesso sono seguite da testo normale; per questo Halmos introdusse la pratica della “pietra tombale”.

      Il pacchetto ntheorem fornisce già la funzionalità che desideri, anche se in genere lo sconsiglio.

      Ciao
      Enrico

    • #92913
      Up
      0
      Down
      ::


      Grazie per la risposta.

      Se l’ultima riga finisce troppo vicino al margine destro, il simbolo sarà stampato al margine sinistro, perché \hfill crea un punto buono per spezzare la riga e sparisce, nel caso questo punto finisca per essere usato.

      Non e’ un problema anche di \qed, questo? Intendo dire: come fa \qed a evitare che questo accada?

      A che serva un simbolo distintivo per la fine di una definizione o un teorema mi risulta oscuro

      Non ha una utilita’ particolare. Sto facendo un esperimento.

      Il pacchetto ntheorem fornisce già la funzionalità che desideri

      Ho cercato un po’, ma evidentemente non lo “vedo”: mi puoi aiutare meglio? Altrimenti cerchero’ di nuovo, non temete 🙂

    • #92914
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Se non lo trovi, vuol dire che hai una installazione incompleta o di TeXLive o, più probabilmente, di MiKTeX; se frequenti il forum, sapresi che sconsigliamo sempre le installazioni parziali.

        Nell’uno o nell’altro caso usa lo specifico Package Manager o Package Wizard, e installa il apcchetto mancante, che è normalmente presente nelle distribuzioni complete; Ho appena controllato sulla mia instalalzione completa di TeXLive.

      • #92915
        Up
        0
        Down
        ::


        Scusa, mi sono spiegato male; intendevo dire che nella documentazione di ntheorem non vedo come poter fare quello che chiedo; in ogni caso ho adottato una soluzione di fortuna per quel paio di ambienti itemize che terminavano un ambiente {df}… Se la cosa e’ altamente esecrata, credo lascero’ perdere.

      • #92916
        Up
        0
        Down
        ::


        Che poi, siete davvero sicuri che sia cosi’ esecrabile denotare con un simbolo la fine di una definizione? Il libro di Johnstone Topos Theory, tanto per dire, fa esattamente questo (con l’aggravante di usare lo stesso simbolo per la fine di una definizione, di una dimostrazione, di un remark o di una serie di esempi).
        (Tutto cio’ detto anche se comprendo perfettamente l’obiezione di egreg)

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

    Go to top