Uno spazio di Parbox non identificato

  • Creatore
    Topic
  • #3851
    Up
    0
    Down
    ::


    Mi si è presentato nuovamente un problema analogo a quello che era stato discusso in questo thread: questa volta l’ambiente in gioco non è tabular ma parbox.

    Se infatti compilate il seguente esempio`\definecolor{grigio}{rgb}{0.9,0.9,0.9}
    \noindent\colorbox{grigio}{\parbox[l]{\textwidth}{Attenzione al margine destro.}}` potete notare come il la box, pur essendo della larghezza del testo, vada oltre il margine destro (una conferma potete averla con l’opzione draft nelle class options). Evidentemente (e si nota anche ad occhio), parbox (o colorbox) sta lasciando un piccolo spazio tra il margine sinistro e l’inizio del testo.

    A questo punto tutto sta nel sapere come si chiama questa lunghezza, in modo da poterla scalare da \textwidth.

    Ho provato a guardare sui manuali ma non sono riuscito a trovare nulla a riguardo. C’è qualcuno che ne sa qualcosa?

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #3852
      mlgdominici
      Amministratore del forum
        Up
        0
        Down
        ::


        La lunghezza è quella settata da \fboxsep, settandola a 0 ottieni un box che non esce dai margini, ma poi il box diventa troppo aderente al testo in altezza. Conviene definirsi una lunghezza da usare per \parbox in questo modo:

        `
        \newlength\boxwidth
        \setlength\boxwidth{\textwidth}
        \addtolength\boxlength{-2\fboxsep}

        \definecolor{grigio}{rgb}{0.9,0.9,0.9}
        \noindent\colorbox{grigio}{\parbox[l]{\boxwidth}{Attenzione al margine destro.}}
        `

        Dovrebbe funzionare.

        Ciao,
        Massimiliano.

      • #3853
        Up
        0
        Down
        ::

        `
        \newlength\boxwidth
        \setlength\boxwidth{\textwidth}
        \addtolength\boxlength{-2\fboxsep}

        \definecolor{grigio}{rgb}{0.9,0.9,0.9}
        \noindent\colorbox{grigio}{\parbox[l]{\boxwidth}{Attenzione al margine destro.}}
        `

        Dovrebbe funzionare.

        Funziona perfettamente. Anche io pensavo di risolvere il problema in questo modo, ma non sapevo il nome della lunghezza (\fboxsep). Grazie mille.

        Mi sono documentato e ho scoperto che \fboxsep non viene introdotto da \parbox ma da \colorbox. Per chi fosse interessato e volesse approfondire, posso consigliare Kopka a pag. 92, Lamport a pag. 225.

      • #3854
        Up
        0
        Down
        ::


        In realtà il mio problema è risolubile in due modi:

        1. si crea un paragrafo in una box colorata che ha i margini destro e sinistro coincidenti con quelli del testo normale; (in questo modo il testo del paragrafo risulta più stretto di 2\fboxsep rispetto ad un paragrafo fuori dalla box)
          `
          \newlength{\pippobox}
          \setlength{\pippobox}{\textwidth}
          \addtolength{\pippobox}{-2\fboxsep}
          \noindent\colorbox{grigio}{\parbox{\pippobox}{Testo}}
          `

        2. si crea un paragrafo con i margini destro e sinistro uguali a quelli del testo normale all’interno di una box più larga rispetto a questi di 2\fboxsep.
          `
          \noindent\kern-\fboxsep\colorbox{grigio}{\parbox{\textwidth}{Testo}}
          `

        Personalmente preferisco la seconda perché non modifica i margini del testo.

      • #3855
        Up
        0
        Down
        ::


        Quando si usa il secondo costrutto con l’opzione draft nella document class, viene segnalato il fatto che quel paragrafo esce dai margini. Dato che in questo caso l’effetto è desiderato, c’è un modo per disabilitare la verifica fatta da draft in corrispondenza di questo parbox?

      • #3856
        mlgdominici
        Amministratore del forum
          Up
          0
          Down
          ::


          Aragorn ha scritto:

          Quando si usa il secondo costrutto con l’opzione draft nella document class, viene segnalato il fatto che quel paragrafo esce dai margini. Dato che in questo caso l’effetto è desiderato, c’è un modo per disabilitare la verifica fatta da draft in corrispondenza di questo parbox?

          Prova con questo:

          `

          \begin{document}
          \usepackage{color}
          \uaepackage{chngpage}

          \definecolor{grigio}{rgb}{0.9,0.9,0.9}

          \begin{adjustwidth}{-\fboxsep}{-\fboxsep}
          \noindent\colorbox{grigio}{\parbox[l]{\textwidth}{Attenzione al
          margine destro.}}
          \end{adjustwidth}

          \end{document}

          `

          Ciao,
          Massimiliano.

        • #3857
          Up
          0
          Down
          ::


          Risolve perfettamente il problema. Grazie mille di nuovo.

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

      Go to top