TikZ e amsthm: ambiente per teoremi con sfondo

  • Creatore
    Topic
  • #96885
    lorenzo.pantieri
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti. Portate pazienza se vi “scoccio” ancora. 😉

      Vorrei definire un ambiente per esercizi pari pari a quello che si può agevolmente ottenere con amsthm, ma con in più un box con lo sfondo colorato. Dopo la mia ricerca, ho trovato qualcosa che gli va vicino.
      `\documentclass{book}
      \usepackage{xcolor}
      \usepackage{tikz,amsmath,amsthm}
      \definecolor{lightergray}{gray}{0.99}

      \tikzstyle
      {stile} = [draw=black, %very thick,
      rectangle, inner ysep=5pt, inner xsep=5pt, fill=lightergray]

      \theoremstyle{definition}
      \newtheorem{Ese}{Esercizio}[chapter]

      \newcommand{\sfondo}[1]{\noindent\tikzpicture\node [stile] (box){%
      #1};\endtikzpicture%
      \\ }

      \newenvironment{esercizio}{\begin{minipage}{\textwidth}\Ese}{\endEse\end{minipage}}

      \begin{document}
      Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.

      \sfondo{\begin{esercizio}
      Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.
      \end{esercizio}}

      Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.
      \end{document}`
      Il risultato è relativamente vicino a quello che vorrei ottenere, però:

      1. il codice è orrendo, vorrei chiamare l’ambiente semplicemente con
      `\begin{esercizio}

      \end{esercizio}`
      senza specificare \sfondo ogni volta.

      2. Le spaziature non vanno. Orizzontalmente, il testo nel box deve essere allineato ai margini destro e sinistro come il testo normale (è il box deve sbordare leggermente). verticalmente, il box va spaziato bene da quanto precede e segue.

      3. Mi piacerebbe un rettangolo dai vertici arrotondati e non dritti.

      Grazie anticipate… 😉

    Visualizzazione 7 filoni di risposte
    • Autore
      Risposte
      • #96886
        Up
        0
        Down
        ::


        Quel codice è un tantino obsoleto (giusto per dire oggi si consiglia di non usare [tt]tikzstyle[/tt], deprecato, in favore di [tt]tikzstyle[/tt]).

        Quello che ti serve è tcolorbox e tra le altre cose ti permette proprio di avere un ambiente semplice del tipo `\begin{esercizio}

        \end{esercizio}` La documentazione è ampia, ma molto dettagliata. Se ti servono personalizzazioni particolari chiedi pure: in background viene usato TikZ perciò si può fare virtualmente di tutto.

        Ciao
        Claudio

      • #96887
        lorenzo.pantieri
        Partecipante
          Up
          0
          Down
          ::


          Che spettacolo di pacchetto! Aveva ragione Tommaso a parlarmene così bene!

          `\definecolor{lightergray}{gray}{0.99}

          \theoremstyle{definition}
          \newtheorem{exe}{Esempio}[chapter]

          \newenvironment{esempio}%
          {
          \begin{tcolorbox}[colback=lightergray,colframe=gray]%,enlarge left by=-1.5em,enlarge right by=1.5em, width=\linewidth+3em]
          \begin{exe}
          }
          {
          \end{exe}
          \end{tcolorbox}
          }
          `
          Ho risolto con questo codice (che dici?). La parte commentata serve empiricamente a far sì che il testo dentro il box sia a filo del testo normale. Prima di chiederti un codice migliore per quest’ultimo punto, vorrei chiederti un parere estetico: meglio un box così o che sbordi dal testo normale?

          Grazie 1000! 🙂

        • #96888
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Meglio un box così.

          • #96889
            Up
            0
            Down
            ::

            cfiandra” post=96449(giusto per dire oggi si consiglia di non usare [tt]tikzstyle[/tt], deprecato, in favore di [tt]tikzstyle[/tt])

            😕

          • #96890
            Up
            0
            Down
            ::

            Elrond” post=96455

            (giusto per dire oggi si consiglia di non usare [tt]tikzstyle[/tt], deprecato, in favore di [tt]tikzstyle[/tt])

            😕

            Penso intendesse [tt]tikzset[/tt], che va utilizzato al posto del deprecato [tt]tikzstyle[/tt] (mantenuto per retrocompatibilità, com’è prassi per i pacchetti di latex) 😀

          • #96891
            Up
            0
            Down
            ::

            skevin93″ post=96458

            [quote=”cfiandra” post=96449](giusto per dire oggi si consiglia di non usare [tt]tikzstyle[/tt], deprecato, in favore di [tt]tikzstyle[/tt])

            😕

            Penso intendesse [tt]tikzset[/tt], che va utilizzato al posto del deprecato [tt]tikzstyle[/tt] (mantenuto per retrocompatibilità, com’è prassi per i pacchetti di latex) :D[/quote]In effetti quella è una perla mica male 😉

            Si, intendevo [tt]tikzset[/tt]. Più informazioni si possono trovare qui. In particolare, secondo me è rilevante un aspetto della seconda risposta. [tt]tikzstyle[/tt] permette di definire soltanto stili, mentre [tt]tikzset[/tt] è una sorta di coltello multiuso utile per usare tutti gli handler del pacchetto pgfkeys (non solo “style” quindi, ma anche “code”, “store in”, “list” e così via). Da notare che rispetto a [tt]\pgfkeys[/tt], il comando generale, [tt]\tikzset[/tt] setta automaticamente il path [tt]/tikz/[/tt].

            Ciao
            Claudio

          • #96892
            lorenzo.pantieri
            Partecipante
              Up
              0
              Down
              ::

              OldClaudio” post=96454Meglio un box così.

              Perfetto, lascio così!

              Grazie ancora,
              L.

            • #96893
              Up
              0
              Down
              ::

              lorenzo.pantieri” post=96451Che spettacolo di pacchetto! Aveva ragione Tommaso a parlarmene così bene!

              Assolutamente!

              lorenzo.pantieri” post=96451
              `\definecolor{lightergray}{gray}{0.99}

              \theoremstyle{definition}
              \newtheorem{exe}{Esempio}[chapter]

              \newenvironment{esempio}%
              {
              \begin{tcolorbox}[colback=lightergray,colframe=gray]%,enlarge left by=-1.5em,enlarge right by=1.5em, width=\linewidth+3em]
              \begin{exe}
              }
              {
              \end{exe}
              \end{tcolorbox}
              }
              `
              Ho risolto con questo codice (che dici?). La parte commentata serve empiricamente a far sì che il testo dentro il box sia a filo del testo normale. Prima di chiederti un codice migliore per quest’ultimo punto, vorrei chiederti un parere estetico: meglio un box così o che sbordi dal testo normale?

              Grazie 1000! 🙂

              Onestamente non mi sono mai trovato nella situazione di doverlo utilizzare per teoremi. Posso però riportare un esempio in cui si sfrutta la proprietà [tt]auto counter[/tt] (direi estremamente utile) e di personalizzazione del riquadro. Come vedi, anche qui torna utile sapere qualcosa di TikZ 😉

              Ciao
              Claudio

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

          Go to top