Ambiente esempio con sfondo e righe orizzontali

  • Creatore
    Topic
  • #31444
    Up
    0
    Down
    ::


    Ho creato uno stile per un ambiente esempio che mi pare si adatti bene con il resto del documento, solo che ci sono alcune imperfezioni che non capisco. L’ambiente, creato col pacchetto amsthm, con comandi aggiuntivi, dovrebbe essere:

      * delimitato sopra e sotto da linee orizzontali;
      * avere uno sfondo di colore grigio chiaro (RGB 250, 250, 250).

    Ci sono quasi riuscito, solo che:

      * Il corpo del testo ed il colore di sfondo sono leggermente spostati a destra, oltre il margine destro del resto del documento;
      * Se inizio l’ambiente alla fine di una pagina, il testo (dell’esempio) comincia alla pagina successiva mentre la linea orizzontale resta sulla pagina precedente;
      * L’ambiente non viene staccato dal resto del testo, lo spazio verticale è lo stesso di quello tra i paragrafi

    Il codice che ho usato è
    `
    \newtheoremstyle{esempio}% name
    {0pt}% Space above
    {0pt}% Space below
    {\small \fontfamily{cmbr}\selectfont}% Body font. Vuole dichiarazioni, non comandi!\itshape
    {1.2em}% Indent amount
    {}% Theorem head font
    {.}% Punctuation after theorem head
    {.5em}% Space after theorem head
    {\textbf{\textsf{\textsc{#1}}}}% Theorem head spec (can be left empty, meaning `normal')
    \theoremstyle{esempio}
    \newtheorem{estheorem}{Esempio}

    \newenvironment{ruledgray}[1][\linewidth]
    {\hrule\vspace{\fboxrule}%
    \noindent\setbox0\vbox\bgroup%
    \hsize#1}
    {\par\egroup\setbox0\vbox{\unvbox0}%
    \colorbox{lightbkgnd}{\box0}%
    \hrule}
    \newenvironment{es}{\ruledgray\estheorem}
    {\endestheorem\endruledgray}
    `

    Grazie, Roberto

Visualizzazione 35 filoni di risposte
  • Autore
    Risposte
    • #31445
      Up
      0
      Down
      ::

      Ho creato uno stile per un ambiente esempio che mi pare si adatti bene con il resto del documento, solo che ci sono alcune imperfezioni che non capisco. L’ambiente, creato col pacchetto amsthm, con comandi aggiuntivi, dovrebbe essere:

        * delimitato sopra e sotto da linee orizzontali;
        * avere uno sfondo di colore grigio chiaro (RGB 250, 250, 250).

      Ci sono quasi riuscito, solo che:

        * Il corpo del testo ed il colore di sfondo sono leggermente spostati a destra, oltre il margine destro del resto del documento;
        * Se inizio l’ambiente alla fine di una pagina, il testo (dell’esempio) comincia alla pagina successiva mentre la linea orizzontale resta sulla pagina precedente;
        * L’ambiente non viene staccato dal resto del testo, lo spazio verticale è lo stesso di quello tra i paragrafi

      Il codice che ho usato è
      `
      \newtheoremstyle{esempio}% name
      {0pt}% Space above
      {0pt}% Space below
      {\small \fontfamily{cmbr}\selectfont}% Body font. Vuole dichiarazioni, non comandi!\itshape
      {1.2em}% Indent amount
      {}% Theorem head font
      {.}% Punctuation after theorem head
      {.5em}% Space after theorem head
      {\textbf{\textsf{\textsc{#1}}}}% Theorem head spec (can be left empty, meaning `normal')
      \theoremstyle{esempio}
      \newtheorem{estheorem}{Esempio}

      \newenvironment{ruledgray}[1][\linewidth]
      {\hrule\vspace{\fboxrule}%
      \noindent\setbox0\vbox\bgroup%
      \hsize#1}
      {\par\egroup\setbox0\vbox{\unvbox0}%
      \colorbox{lightbkgnd}{\box0}%
      \hrule}
      \newenvironment{es}{\ruledgray\estheorem}
      {\endestheorem\endruledgray}
      `

      Grazie, Roberto

      `\newsavebox{\esbox}
      \newenvironment{ruledgray}[1][\linewidth]
      {\addvspace{\medskipamount}\setlength{\fboxrule}{0pt}%
      \hrule\noindent\begin{lrbox}{\esbox}\edef\keepparindent{\the\parindent}%
      \begin{minipage}{#1-2\fboxsep}\setlength{\parindent}{\keepparindent}}
      {\end{minipage}\end{lrbox}%
      \colorbox{lightbkgnd}{\usebox{\esbox}}%
      \hrule\addvspace{\medskipamount}}`
      Direi che è meglio se sostituisci 1.2em nella definizione dello stile esempio con \parindent. Inoltre è inutile chiedere \textsc dentro a \textbf, i font cmbright non possiedono il maiuscoletto nero.

      In definitiva lo trovo piuttosto brutto.

      Ciao
      Enrico

    • #31446
      Up
      0
      Down
      ::


      😯 Ti ringrazio davvero di cuore Enrico, che più volte hai risposto alle mie richieste con rapidità strabiliante.

      Direi che è meglio se sostituisci 1.2em nella definizione dello stile esempio con \parindent.

      Fatto, grazie mille, se l’avessi saputo l’avrei fatto da subito!

      Inoltre è inutile chiedere \textsc dentro a \textbf, i font cmbright non possiedono il maiuscoletto nero.

      Strabiliante, ma a giudicare da quello che vedo ho l’impressione che dal cappello sia uscito il maiuscoletto grassetto! Il risultato della compilazione è disponibile come file pdf all’indirizzo: http://documents.scribd.com/docs/1axsrezopw6qx4g7sofz.pdf Tra l’altro non era neppure mia intenzione, è stato solo un’errore di distrazione!

      In definitiva lo trovo piuttosto brutto.
      Ciao
      Enrico

      Questo mi sembra molto interessante, sono pronto a mettere tutto in discussione! Solo che non ho detto che ho usato lo stile classictesi + arsclassica. al link di sopra si vedono i risultati

      `\newsavebox{\esbox}
      \newenvironment{ruledgray}[1][\linewidth]
      {\addvspace{\medskipamount}\setlength{\fboxrule}{0pt}%
      \hrule\noindent\begin{lrbox}{\esbox}\edef\keepparindent{\the\parindent}%
      \begin{minipage}{#1-2\fboxsep}\setlength{\parindent}{\keepparindent}}
      {\end{minipage}\end{lrbox}%
      \colorbox{lightbkgnd}{\usebox{\esbox}}%
      \hrule\addvspace{\medskipamount}}`

      Ho già abusato della tua pazienza, lo so, ma mi piacerebbe capire quello che sto facendo, per non dover più chiedere aiuto, e magari per poter anche aiutare! Il mio codice l’avevo scritto più o meno dopo una giornata di ricerche, e riprende quanto fatto dalla guida GUIT a pag 207.
      Questo codice dovrebbe comportarsi così:
      * Crea una “scatola”
      * inserisce al suo interno un ambiente
      * l’ambiente per prima cosa mette uno spazio, poi una riga, fin qui più o meno si capisce
      * \begin{lrbox}{\esbox} questo fa un’altra scatola?!?
      * e poi dentro ci metto una minipage?!? Una matriosca di testo!!!
      * il testo al suo interno è largo quanto il testo meno 2 separazioni ( #1-2\fboxsep)
      * chiudo tutto e passo le scatole create a colorbox per applicare lo sfondo,
      * infine la riga orizzontale di chiusura e l’altro spazio..
      Quello che non capisco è il perché di questo gioco di matriosche e l’uso dei tanti \keepparindent

      Come si vede dal pdf la riga iniziale non è attaccata al blocco seguente, infatti resta alla pagina precedente! Non è un problema, non mi va di fare altre richieste, alla fine forzo un’interruzione di pagina manualmente dove dovesse servire. Infine faccio notare che se si guarda il pdf al 105% con il reader di adobe la riga superiore scompare (almeno sul mio pc), per via di una erronea visualizzazione, superabile se lo sfondo grigio fosse messo sotto le linee orizzontali!

      Ciao, grazie mille, Roberto!

    • #31447
      Up
      0
      Down
      ::

      😯 Ti ringrazio davvero di cuore Enrico, che più volte hai risposto alle mie richieste con rapidità strabiliante.

      Direi che è meglio se sostituisci 1.2em nella definizione dello stile esempio con \parindent.

      Fatto, grazie mille, se l’avessi saputo l’avrei fatto da subito!

      Inoltre è inutile chiedere \textsc dentro a \textbf, i font cmbright non possiedono il maiuscoletto nero.

      Strabiliante, ma a giudicare da quello che vedo ho l’impressione che dal cappello sia uscito il maiuscoletto grassetto! Il risultato della compilazione è disponibile come file pdf all’indirizzo: http://documents.scribd.com/docs/1axsrezopw6qx4g7sofz.pdf Tra l’altro non era neppure mia intenzione, è stato solo un’errore di distrazione!

      In definitiva lo trovo piuttosto brutto.
      Ciao
      Enrico

      Questo mi sembra molto interessante, sono pronto a mettere tutto in discussione! Solo che non ho detto che ho usato lo stile classictesi + arsclassica. al link di sopra si vedono i risultati

      `\newsavebox{\esbox}
      \newenvironment{ruledgray}[1][\linewidth]
      {\addvspace{\medskipamount}\setlength{\fboxrule}{0pt}%
      \hrule\noindent\begin{lrbox}{\esbox}\edef\keepparindent{\the\parindent}%
      \begin{minipage}{#1-2\fboxsep}\setlength{\parindent}{\keepparindent}}
      {\end{minipage}\end{lrbox}%
      \colorbox{lightbkgnd}{\usebox{\esbox}}%
      \hrule\addvspace{\medskipamount}}`

      Ho già abusato della tua pazienza, lo so, ma mi piacerebbe capire quello che sto facendo, per non dover più chiedere aiuto, e magari per poter anche aiutare! Il mio codice l’avevo scritto più o meno dopo una giornata di ricerche, e riprende quanto fatto dalla guida GUIT a pag 207.
      Questo codice dovrebbe comportarsi così:
      * Crea una “scatola”
      * inserisce al suo interno un ambiente
      * l’ambiente per prima cosa mette uno spazio, poi una riga, fin qui più o meno si capisce
      * \begin{lrbox}{\esbox} questo fa un’altra scatola?!?
      * e poi dentro ci metto una minipage?!? Una matriosca di testo!!!
      * il testo al suo interno è largo quanto il testo meno 2 separazioni ( #1-2\fboxsep)
      * chiudo tutto e passo le scatole create a colorbox per applicare lo sfondo,
      * infine la riga orizzontale di chiusura e l’altro spazio..
      Quello che non capisco è il perché di questo gioco di matriosche e l’uso dei tanti \keepparindent

      Come si vede dal pdf la riga iniziale non è attaccata al blocco seguente, infatti resta alla pagina precedente! Non è un problema, non mi va di fare altre richieste, alla fine forzo un’interruzione di pagina manualmente dove dovesse servire. Infine faccio notare che se si guarda il pdf al 105% con il reader di adobe la riga superiore scompare (almeno sul mio pc), per via di una erronea visualizzazione, superabile se lo sfondo grigio fosse messo sotto le linee orizzontali!

      Ciao, grazie mille, Roberto!

      Il comando \newsavebox{\esbox} riserva un registro box; meglio fare così che usare \box0 in questo caso. L’ambiente ruledgray è essenzialmente lo stesso che hai scritto tu, ma in linguaggio LaTeX; meglio così per via del colore, credimi.

      L’ambiente lrbox crea una box memorizzandola nel registro \esbox; ma questa box è simile a una \mbox, quindi dentro ci metto una minipage larga #1-2\fboxsep (dimenticavo che occorre caricare il pacchetto calc). Tu usavi una \vbox con \hsize=#1 e questo era la causa dello “spostamento” che lamentavi: devi tenere conto del piccolo margine dovuto al \colorbox seguente. Prima ho impostato a zero \fboxrule, che non ci interessa, altrimenti si avrebbe un riquadro.

      Il trucco con \keepparindent serve per impostare dentro alla minipage il rientro uguale a quello normale, nel caso ci sia più di un paragrafo.

      Per evitare il problema della riga iniziale nella pagina precedente, inserisci \nobreak fra \hrule e \noindent.

      Il fatto che il filetto sparisca probabilmente è dovuto al visualizzatore di pdf. Guarda al massimo ingrandimento e vedrai che c’è

      Ciao
      Enrico

    • #31448
      Up
      0
      Down
      ::


      Troppo forte!!! 😀 Non ho parole! 😀

    • #31449
      Up
      0
      Down
      ::


      Stavo anche io cercando di creare un effetto simile. Se non sei contrario potresti postare il codice per realizzare un esempio tipo quello riportato nel file pdf postato?
      Grazie!

    • #31450
      Up
      0
      Down
      ::

      Stavo anche io cercando di creare un effetto simile. Se non sei contrario potresti postare il codice per realizzare un esempio tipo quello riportato nel file pdf postato?
      Grazie!

      Certo, il codice c’è già tutto su questa pagina, ma vale la pena fare chiarezza per una consultazione più veloce. Spero di aver compreso correttamente la logica…

      Per prima cosa si crea una ambiente, che crea un box largo quanto \textwidth, “correttamente” spaziato dal testo precedente e successivo, con sfondo grigio, linee orizzontali sopra e sotto, e lo spazio interno per inserire il testo leggermente più stretto. Il codice è il seguente:
      `% AMBIENTE CON SFONDO GRIGIO E LINEE SOPRA E SOTTO
      \newsavebox{\esbox}
      \newenvironment{ruledgray}[1][\linewidth]
      {\addvspace{\medskipamount}\setlength{\fboxrule}{0pt}%
      \hrule\nobreak\noindent\begin{lrbox}{\esbox}\edef\keepparindent{\the\parindent}%
      \begin{minipage}{#1-2\fboxsep}\setlength{\parindent}{\keepparindent}}
      {\end{minipage}\end{lrbox}%
      \colorbox{lightbkgnd}{\usebox{\esbox}}%
      \hrule\addvspace{\medskipamount}}`
      Poi creo uno stile per teoremi che non presenta alcuna spaziatura sopra e sotto, in questo caso mi interessa definire un ambiente esempio. Il codice, che richiede il pacchetto amsthm, è il seg:
      `% AMBIENTE PER ESEMPI TIPO THEOREM
      \newtheoremstyle{esempio}% name % 1. CREO LO STILE PER GLI ESEMPI
      {0pt}% Space above
      {0pt}% Space below
      {\small}% Body font. Vuole dichiarazioni, non comandi!\fontfamily{cmbr}\selectfont \itshape
      {\parindent}% Indent amount
      {}% Theorem head font %dichiarazioni tipo \bfseries
      {.}% Punctuation after theorem head
      {.5em}% Space after theorem head
      {\textbf{\textsf{\textsc{#1\ }}}\textbf{#2}}% #1=esempio, #2=numero – Theorem head spec
      \theoremstyle{esempio} % 2. CREO UN AMBIENTE CON LO STILE DEFINITO
      \newtheorem{estheorem}{Esempio}`
      Infine mi creo l’ambiente esempio inserendo l’ambiente di tipo teorema personalizzato come esempio, nell’ambiente grigio con linee di delimitazione orizzontali:
      `\newenvironment{es}{\ruledgray\estheorem} % 3. LO INSERISCO IN 1 CON SFONDO GRIGIO/LINEE
      {\endestheorem\endruledgray}`

      Posso creare un esempio con lo stile indicato scrivendo \begin{es}Testo dell’esempio\end{esempio}, oppure posso usare solo il primo blocco di codice per creare un ambiente evidenziato in grigio con i comandi \begin{ruledgray}il testo scritto qui è delimitato da linee orizzontali ed evidenziato da uno sfondo grigio\end{ruledgray}.

      Saluti, Roberto

    • #31451
      Up
      0
      Down
      ::


      PS: lo stile è stato pensato per essere sfruttato coerentemente con classicthesi+arsclassica, con le classi standard potrebbe essere poco indicato…

    • #31452
      Up
      0
      Down
      ::


      Putroppo mi da errore.
      Allora, sto scrivendo un documento con classe scrbook.
      Ho messo tutto il codice riportato nel penultimo post di mondopinguino e poi, all’interno tra i tag \begin{document} e \end{document} ho scritto
      `\begin{document}
      \begin{esempio} Testo dell'esempio \end{esempio}
      \end{document}`
      Quando premo PDF TeXity mi dice:

      Runway argument?
      {textcomp \usepackage{amsthm} \newsavebox{\esbox} \newenviroment \ETC.
      ! File ended while scanning use of \@filewith@ption

      \par

    • #31453
      Up
      0
      Down
      ::

      Putroppo mi da errore.
      Allora, sto scrivendo un documento con classe scrbook.
      Ho messo tutto il codice riportato nel penultimo post di mondopinguino e poi, all’interno tra i tag \begin{document} e \end{document} ho scritto
      `\begin{document}
      \begin{esempio} Testo dell'esempio \end{esempio}
      \end{document}`
      Quando premo PDF TeXity mi dice:

      Runway argument?
      {textcomp \usepackage{amsthm} \newsavebox{\esbox} \newenviroment \ETC.
      ! File ended while scanning use of \@filewith@ption

      \par

      Non hai chiuso un argomento:
      `\usepackage{textcomp}`
      Ciao
      Enrico

    • #31454
      Up
      0
      Down
      ::


      Hai ragione! Purtropo però ora mi dice che non riconosce il colore lightbkgnd.
      `undefined color lightbkgnd`

    • #31455
      Up
      0
      Down
      ::

      Hai ragione! Purtropo però ora mi dice che non riconosce il colore lightbkgnd.
      `undefined color lightbkgnd`

      Ops.. hai ragione tu, mi sono scordato di scriverti la definizione del colore…`\definecolor{lightbkgnd}{RGB}{250,250,250}`
      Puoi definirti il colore che vuoi, al posto di lightbkgnd metti un nome che ti piace (sia quando lo definisci che quando lo usi), poi specifichi le componenti RGB, se hai un programma di grafica qualunque probabilmente puoi scegliere il colore vedendolo e leggi le componenti RGB.

    • #31456
      Up
      0
      Down
      ::


      Perfect!

      Grazie. 😀

    • #31457
      Up
      0
      Down
      ::


      Mi dispiace ma sono sempre io. Ho creato un file di prova in cui ho solo il prologo con tutti i pacchetti usati e il resto e poi il testo dell’esempio tra i tag “document”.
      Se compilo il file con solo l’esempio tutto OK ma se metto l’esempio in un file che avevo già mi da il seguente errore:
      `! LateX error: something's wrong–perhalps a missin \item`
      Immagino che in questa situazione sia difficle individuare il problema ma hai per caso idea di cosa può essere?
      Grazie!

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

        Mi dispiace ma sono sempre io. Ho creato un file di prova in cui ho solo il prologo con tutti i pacchetti usati e il resto e poi il testo dell’esempio tra i tag “document”.
        Se compilo il file con solo l’esempio tutto OK ma se metto l’esempio in un file che avevo già mi da il seguente errore:
        `! LateX error: something's wrong–perhalps a missin \item`
        Immagino che in questa situazione sia difficle individuare il problema ma hai per caso idea di cosa può essere?
        Grazie!

        Se scrivi
        `\begin{itemize}
        Pippo`
        ottieni quell’errore. In ogni caso, vale la regola aurea del forum: invia un esempio minimo compilabile che riproduce il problema.

        Ciao,
        L.

      • #31459
        Up
        0
        Down
        ::


        Hai ragione, spiegato così non si capisce tanto.
        Il punto è questo: se faccio una pagina con solo il testo dell’esempio me la compila correttamente mentre se faccio una struttura più complessa con una pagina centrale in cui includo i diversi capitoli invece mi da quell’errore. Vista la mole di testo non posso realizzare tutto il libro in una pagina unica.

        Faccio un esempio pratico:
        Questo è il contenuto del file Main.tex
        `\include{Preambolo} % include il preambolo

        \begin{document}
        \include{Argomento_1}
        \end{document}
        `

        Questo è il contenuto del file Preambolo.tex
        `\documentclass[a4paper,12pt,italian]{scrbook}

        %============================================================
        %PACCHETTI UTILIZZATI
        %============================================================
        \usepackage[italian]{babel}
        \usepackage[ansinew]{inputenc}
        \usepackage[pdftex]{lscape} %Questo pacchetto serve per la pagina in orizzontale
        \usepackage{times}
        \usepackage{graphicx}
        \usepackage{pdfpages} %Questo pacchetto serve per includere pagine pdf
        \usepackage{float}
        \usepackage{hyperref}
        \usepackage{color}
        \usepackage{soul}
        \usepackage{fancyhdr}
        \usepackage{longtable}
        \usepackage{textcomp}
        \usepackage{amsthm}

        %============================================================
        %CONFIGURAZIONE HYPERREF
        %============================================================
        \hypersetup{ %Questa parte configura i vari collegamenti interni nel documento
        colorlinks=true,
        linkcolor=blue,
        urlcolor=cyan}

        %============================================================
        %AMBIENTE CON SFONDO GRIGIO E LINEE SOPRA E SOTTO
        %============================================================
        \newsavebox{\esbox}
        \newenvironment{ruledgray}[1][\linewidth]
        {\addvspace{\medskipamount}\setlength{\fboxrule}{0pt}%
        \hrule\nobreak\noindent\begin{lrbox}{\esbox}\edef\keepparindent{\the\parindent}%
        \begin{minipage}{#1-2\fboxsep}\setlength{\parindent}{\keepparindent}}
        {\end{minipage}\end{lrbox}%
        \colorbox{lightbkgnd}{\usebox{\esbox}}%
        \hrule\addvspace{\medskipamount}}
        % AMBIENTE PER ESEMPI TIPO THEOREM
        \newtheoremstyle{esempio}% name % 1. CREO LO STILE PER GLI ESEMPI
        {0pt}% Space above
        {0pt}% Space below
        {\small}% Body font. Vuole dichiarazioni, non comandi!\fontfamily{cmbr}\selectfont \itshape
        {\parindent}% Indent amount
        {}% Theorem head font %dichiarazioni tipo \bfseries
        {.}% Punctuation after theorem head
        {.5em}% Space after theorem head
        {\textbf{\textsf{\textsc{#1\ }}}\textbf{#2}}% #1=esempio, #2=numero – Theorem head spec
        \theoremstyle{esempio} % 2. CREO UN AMBIENTE CON LO STILE DEFINITO
        \newtheorem{estheorem}{Esempio}
        \newenvironment{es}{\ruledgray\estheorem} % 3. LO INSERISCO IN 1 CON SFONDO GRIGIO/LINEE
        {\endestheorem\endruledgray}
        \definecolor{lightbkgnd}{RGB}{232,232,232} `

        Questo è il contenuto del file Argomento_1.tex
        `\subsection*{Limiti di esposizione}
        Qui ho scritto una facciata e mezza sul rischio da vibrazioni in generale con riferimenti alle norme e alle leggi specifiche oltre ad altri contenuti che potrebbero interessare.
        %CONTENUTO: Esempio sul rischio vibrazioni
        \begin{es}Il signor Tizio è dipendente di una piccola cooperativa che si occupa lavori di giardinaggio eseguiti soprattutto presso clienti privati e piccole aziende. Il datore di lavoro, a capo della cooperativa, decide di fare una valutazione sull'esposizione a rischio vibrazioni dei propri dipendenti. Una di queste riguarda Tizio che, nell'arco della giornata lavorativa in esame deve andare dalla signora Pina per lavori di sfalcio del prato, potatura arbusti e per abbattere (tagliare) un pino diventato troppo alto. Da un'analisi della giornata lavorativa (della durata complessiva di 8 ore) sono emersi i seguenti dati: \textbf{- Taglio albero:} 3 ore complessive di cui 40 minuti in cui è stata impiegata una motosega con motore a scoppio. \textbf{- Taglio erba:} 6 ore complessive di cui 120 minuti utilizzando un tosaerba semovente con motore a scoppio e 1 ora utilizzando un decespugliatore sempre alimentato a benzina. \textbf{- Potatura arbusti:} 1,5 ore di cui 1 ora utilizzando una sega elettrica più piccola della precedente. Il resto del turno è stato dedicato al carico e allo scarico degli utensili impiegati e per la pulizia finale degli stessi. Gli utensili impiegati ed i relativi dati sulle vibrazioni sono i seguenti.
        \begin{description}
        \item[Decespugliatore] con motore a scoppio (benzina) e organo di taglio a filo di plastica. Il database I.S.P.E.S.L., nel caso in cui questo utensile venga impiegato con la mano destra, fornisce i seguenti dati: $a_{W,x}= 4,3\frac{m}{s^2}$, $a_{W,y}= 3,9\frac{m}{s^2}$, $a_{W,z}=7,6\frac{m}{s^2}$ da cui si ricava, applicando la formula \ref{eq:vibrazioni0}, $a_{W,sum,decespugliatore}=\sqrt{4,3^2+3,9^2+7,6^2}=\sqrt{91,46}=9,563\frac{m}{s^2}$
        \item[Tagliaerba semovente] con motore a scoppio (benzina) da 150cc e 4000W. Il costruttore ha dichiarato $a_{W,sum,tagliaerba}=8\frac{m}{s^2}$
        \item[Motosega] con motore a scoppio (benzina) da 51cc e 2300W. Dal database I.S.P.E.S.L. si ottiene $a_{W,x}=4,3\frac{m}{s^2}$, $a_{W,y}=4,5\frac{m}{s^2}$, $a_{W,z}=3,5\frac{m}{s^2}$ da cui si può calcolare $a_{W,sum,motosega}=\sqrt{4,2^2+4,5^2+3,5^2}=\sqrt{32,676}=7,716\frac{m}{s^2}$
        \item[Sega elettrica] da 1600W il cui costruttore ha dichiarato $a_{W,sum,sega_elettrica}=4\frac{m}{s^2}$
        \end{description}
        \end{es}`

        Premendo PDFTeXify da WinEdt mi da l’errore

        LaTeX Font Info: Try loading font information for OT1+phv on input line 1.

        (“C:\Programmi\MiKTeX 2.7\tex\latex\psnfss\ot1phv.fd”
        File: ot1phv.fd 2001/06/04 scalable font definitions for OT1/phv.
        )
        LaTeX Font Info: Font shape `OT1/phv/bx/n’ in size <12> not available
        (Font) Font shape `OT1/phv/b/n’ tried instead on input line 1.
        LaTeX Font Info: Font shape `OT1/phv/bx/n’ in size <14.4> not available
        (Font) Font shape `OT1/phv/b/n’ tried instead on input line 1.

        ! LaTeX Error: Something’s wrong–perhaps a missing \item.

        See the LaTeX manual or LaTeX Companion for explanation.
        Type H for immediate help.

        l.4 \begin{es}
        Il signor Tizio è dipendente di una piccola cooperativa che si…

        ?

      • #31460
        Up
        0
        Down
        ::


        Il codice che hai postato non è proprio minimo, anzi è decisamente troppo ingombrante… Non so se funziona, ma puoi provare a disattivare il pacchetto times e ad aggiungere la riga \usepackage[T1]{fontenc}

        Resta un problema serio!!! L’ambiente così creato non è floating, e non è neppure spezzabile su più pagine poiché fa uso di una minipage! Come risultato si ha che la pagina precedente è fortemente “stirata” verticalmente, quasi vuota, probabilmente se il testo occupa più di una pagina ho un errore! Forse non sarebbe il caso di rivedere il precedente codice, che non fa uso della minipage?

        Grazie, Roberto!

      • #31461
        Up
        0
        Down
        ::


        Effettivamente ho visto che il codice non risulta proprio perfettamente quando l’esempio è lungo. Proverò allora a scrivere solamente il testo dell’esercizio nel riquadro grigio e la soluzione all’esterno. Peccato perchè mi sembrava proprio buono come stile proprio per la sua semplicità.
        Appena ho un po’ di tempo provo a scrivere solo il testo dell’esempio per vedere se me lo compila. Quello che mi faceva venire qualche dubbio irrisolto è perchè la compilazione in una pagina unica in cui c’era solo quello funzionava mentre inserito in un documento più ampio non funzionava.

      • #31462
        Up
        0
        Down
        ::


        Qualcuno sa dirmi dov’è che sbaglio, si usa così lrbox?!? Mi da la bellezza di 101 errori, che spariscono commentando le tre righe \begin…\end
        `\newsavebox{\pippo}
        \begin{lrbox}{\pluto}
        questo è il contenuto di un box passato come comando
        \end{\pluto}
        \fbox{\usebox{\pluto}}
        `
        Non funziona neppure creando un box all’interno di lrbox, ad esempio con \parbox{}{testo}.
        Chi sa qual’è l’errore?!? Grazie, Roberto

      • #31463
        Up
        0
        Down
        ::

        Qualcuno sa dirmi dov’è che sbaglio, si usa così lrbox?!? Mi da la bellezza di 101 errori, che spariscono commentando le tre righe \begin…\end
        `\newsavebox{\pippo}
        \begin{lrbox}{\pluto}
        questo è il contenuto di un box passato come comando
        \end{\pluto}
        \fbox{\usebox{\pluto}}
        `
        Non funziona neppure creando un box all’interno di lrbox, ad esempio con \parbox{}{testo}.
        Chi sa qual’è l’errore?!? Grazie, Roberto

        Se la box si chiama \pippo, perché vuoi usarne una inesistente di nome \pluto?

        Ciao
        Enrico

      • #31464
        Up
        0
        Down
        ::

        Se la box si chiama \pippo, perché vuoi usarne una inesistente di nome \pluto?

        Ciao
        Enrico

        Scusa.. è stato un errore di distrazione per vari tentativi… il codice non funziona comunque… suppongo però che ho capito il concetto, di come dovrebbe funzionare?!? Oppure è proprio sbagliato visto che non funziona?!

      • #31465
        Up
        0
        Down
        ::

        Se la box si chiama \pippo, perché vuoi usarne una inesistente di nome \pluto?

        Ciao
        Enrico

        Scusa.. è stato un errore di distrazione per vari tentativi… il codice non funziona comunque… suppongo però che ho capito il concetto, di come dovrebbe funzionare?!? Oppure è proprio sbagliato visto che non funziona?!

        E io ho visto la pagliuzza ma non la trave. 🙂
        `…
        \end{lrbox}
        …`
        Ciao
        Enrico

      • #31466
        Up
        0
        Down
        ::


        😥 grazie Enrico, solo che penso di averti fatto perdere soltanto tempo… cioè la soluzione che mi hai dato in effetti funziona, il problema è che se uso un \parbox, non posso suddividerlo in paragrafi o fare al suo interno cose complicate, non nasce per questo…

        Ricapitolando:
        -Il problema è quello di creare un ambiente con sfondo grigio e righe orizzontali sopra e sotto
        soluzioni:
        > uso i comandi Tex, come vbox, forse qualcosa di vagamente funzionante si ottiene, ma non è adatto alla gestione del colore! (almeno credo…)
        > Uso i comandi LaTex, che in particolare sarebbero, minpage e parbox, solo che
        >>\parbox è un comando, accetta testo come argomento, quindi è difficile da sfruttare come un ambiente, quel che è peggio è che non è adatto a gestire più paragrafi [ Vedi qui]
        >>minpage è già un ambiente, con il codice proposto tutto funziona. L’unico difetto è che l’ambiente minpage non si spezza su più pagine!! 😥

      • #31467
        Up
        0
        Down
        ::

        😥 grazie Enrico, solo che penso di averti fatto perdere soltanto tempo… cioè la soluzione che mi hai dato in effetti funziona, il problema è che se uso un \parbox, non posso suddividerlo in paragrafi o fare al suo interno cose complicate, non nasce per questo…

        Ricapitolando:
        -Il problema è quello di creare un ambiente con sfondo grigio e righe orizzontali sopra e sotto
        soluzioni:
        > uso i comandi Tex, come vbox, forse qualcosa di vagamente funzionante si ottiene, ma non è adatto alla gestione del colore! (almeno credo…)
        > Uso i comandi LaTex, che in particolare sarebbero, minpage e parbox, solo che
        >>\parbox è un comando, accetta testo come argomento, quindi è difficile da sfruttare come un ambiente, quel che è peggio è che non è adatto a gestire più paragrafi [ Vedi qui]
        >>minpage è già un ambiente, con il codice proposto tutto funziona. L’unico difetto è che l’ambiente minpage non si spezza su più pagine!! 😥

        Pacchetto framed; la documentazione è all’inizio del file framed.sty

        Ciao
        Enrico

      • #31468
        Up
        0
        Down
        ::

        Pacchetto framed; la documentazione è all’inizio del file framed.sty

        Ciao
        Enrico

        😯 EUREKA!!! Questo si che è interessante, sto provando a decifrare la scarna documentazione, appena arrivo ad un risultato soddisfacente metto qui il risultato!!! PS: tra ricerche verie ho anche trovato questo forum che potrebbe essere considerato come una soluzione alternativa….
        http://www.guit.sssup.it/phpbb/viewtopic.php?t=3316&highlight=longmedal
        Ciao, grazie, Roberto

      • #31469
        Up
        0
        Down
        ::

        (cut)
        PS: tra ricerche verie ho anche trovato questo forum che potrebbe essere considerato come una soluzione alternativa….
        http://www.guit.sssup.it/phpbb/viewtopic.php?t=3316&highlight=longmedal
        Ciao, grazie, Roberto

        L’avevo trovato anche io infatti sto provando a vedere di farlo funzionare anche se speravo in qualcosa di più semplice visto che quello è piuttosto lungo per via della continuità tra una pagina e l’altra. A me basterebbe il box semplice ed in grado, eventualmente di continuare nella pagina dopo. Devo dire però che è un ottimo punto di partenza.
        Speriamo che lo pubblichino come pacchetto.

      • #31470
        Up
        0
        Down
        ::


        Ho riscritto l’ambiente che aggiunge uno sfondo grigio, una linea orizzonatale prima del testo ed una dopo. Questo ambiente fornisce un outout analogo a quello dei primi esempi, ma permette l’interruzione dell’ambiente su più pagine! Per prima cosa richiamo il pacchetto \usepackage{framed} e definisco il colore da usare, che nel mio caso è \definecolor{lightbkgnd}{RGB}{250,250,250}, poi creo l’ambiente con sfondo grigio:
        `\newenvironment%
        {sfondocolorato}
        { \setlength{\topsep}{0pt}
        \def\FrameCommand{ \colorbox{lightbkgnd}}
        \MakeFramed {%
        \advance\hsize-4\fboxrule \FrameRestore}}%
        {\endMakeFramed}`
        Poi inserisco l’ambiente tra due linee orizzontali
        `\newenvironment{prova}
        {\addvspace{\medskipamount} \hrule\nobreak\sfondocolorato}
        {\endsfondocolorato\nobreak\hrule \addvspace{\medskipamount}}`
        ottengo un ambiente analogo al precedente `ruledgray`.

        I problemi sono gli stessi di partenza, cioè lo sfondo grigio fuoriesce leggermente dal margine destro e non è largo quanto le righe nere… anche se per vedere tali difetti bisogna ingrandire molto il pdf! Come si può correggere?! Io proprio non ci sono riuscito! (ricordo che è per la classe Arsclassica, riprende lo stile grafico delle porzioni di codice usate da Lorenzo Pantieri nelle sue guide)

      • #31471
        Up
        0
        Down
        ::


        Ho provato a scrivere questo obbrobbio:
        `\newenvironment%
        {sfondocolorato}
        { \setlength{\topsep}{0pt}
        %\leftskip=200pt
        \hsize=307.5pt
        \setlength{\hoffset}{100pt}
        \def\FrameCommand{ \colorbox{lightbkgnd}}
        \MakeFramed {%
        \FrameRestore}}%\advance\hsize-10pt
        {\endMakeFramed}

        \newenvironment{prova}
        {\addvspace{\medskipamount} \hrule\nobreak\sfondocolorato}
        {\endsfondocolorato\nobreak\hrule \addvspace{\medskipamount}}`
        con \hsize prima di creare il box riescpo a specificare la sua grandezza e riesco a stringerlo. Solo non capisco perché non posso usare come \hsize qualcosa tipo \width-2\parindent, poiché i -2\parindent finiscono nel testo come -2 0.5… il pacchetto calc c’è, ma non funziona! Seppure funzionasse, io cosa dovrei togliere? Un \fboxsep? ma se non ho il box non posso farlo giusto? Tra l’altro a me servirebbe semplicemente che l’area in grigio non uscisse dai margini (destro e sinistro)!

        Se con \hsize riesco a restringere la colonna in modo che non fuoriesca dal bordo destro, non risolvo il problema sul lato sinistro. Ho provato ad inserire comandi tipo \hoffset, ma non hanno alcun effetto sul box colorato, semmai agiscono sul testo!

        Come faccio a far entrare il box colorato all’interno della pagina senza che fuoriesca leggermente dai margini?!? Quale sarebbe un codice più umano, o dove potrei cercare per trovare qualche possibile spiegazione per scrivermelo da solo??
        Grazie, Roberto!

      • #31472
        Up
        0
        Down
        ::

        Ho provato a scrivere questo obbrobbio:
        `\newenvironment%
        {sfondocolorato}
        { \setlength{\topsep}{0pt}
        %\leftskip=200pt
        \hsize=307.5pt
        \setlength{\hoffset}{100pt}
        \def\FrameCommand{ \colorbox{lightbkgnd}}
        \MakeFramed {%
        \FrameRestore}}%\advance\hsize-10pt
        {\endMakeFramed}

        \newenvironment{prova}
        {\addvspace{\medskipamount} \hrule\nobreak\sfondocolorato}
        {\endsfondocolorato\nobreak\hrule \addvspace{\medskipamount}}`
        con \hsize prima di creare il box riescpo a specificare la sua grandezza e riesco a stringerlo. Solo non capisco perché non posso usare come \hsize qualcosa tipo \width-2\parindent, poiché i -2\parindent finiscono nel testo come -2 0.5… il pacchetto calc c’è, ma non funziona! Seppure funzionasse, io cosa dovrei togliere? Un \fboxsep? ma se non ho il box non posso farlo giusto? Tra l’altro a me servirebbe semplicemente che l’area in grigio non uscisse dai margini (destro e sinistro)!

        Se con \hsize riesco a restringere la colonna in modo che non fuoriesca dal bordo destro, non risolvo il problema sul lato sinistro. Ho provato ad inserire comandi tipo \hoffset, ma non hanno alcun effetto sul box colorato, semmai agiscono sul testo!

        Come faccio a far entrare il box colorato all’interno della pagina senza che fuoriesca leggermente dai margini?!? Quale sarebbe un codice più umano, o dove potrei cercare per trovare qualche possibile spiegazione per scrivermelo da solo??
        Grazie, Roberto!

        Ma perché non provare con una semplice modifica dell’ambiente shaded?
        `\newenvironment{sfondocolorato}
        {\addvspace{\medskipamount} \hrule\nobreak
        \def\FrameCommand{\fboxsep=\FrameSep \colorbox{lightbkgnd}}
        \MakeFramed {\advance\hsize-\width \FrameRestore}}
        {\endMakeFramed\nobreak\hrule \addvspace{\medskipamount}}`
        Ciao
        Enrico

      • #31473
        Up
        0
        Down
        ::

        Ma perché non provare con una semplice modifica dell’ambiente shaded?

        Per pura, profonda, ignoranza!… era proprio quello che stavo cercando di fare ma non capivo come!

        `\newenvironment{sfondocolorato}
        {\addvspace{\medskipamount} \hrule\nobreak
        \def\FrameCommand{\fboxsep=\FrameSep \colorbox{lightbkgnd}}
        \MakeFramed {\advance\hsize-\width \FrameRestore}}
        {\endMakeFramed\nobreak\hrule \addvspace{\medskipamount}}`
        Ciao
        Enrico

        Grazie Enrico, sono commosso, davvero, adesso funziona a meraviglia!!

        Se non scrivo orrori, vorrei solo far notare che per evitare che le righe orizzontali siano separate dall’ambiente grigio occorre inserire \setlength{\topsep}{0pt}, io l’ho inserito dopo {\medskipamount}. Inoltre mi sembra più corretto che lo spazio prima e dopo l’ambiente sia maggiore di quello che separa le righe orizzontali dall’interno dell’ambiente, per cui se lo spazio esterno è \medskipamount, lo spazio interno l’ho impostato a \smallskipamount sostituendo questa scrittura al posto di \FrameSep.

        Spero con questo il problema sia chiuso, grazie ancora Enrico, Roberto!

      • #31474
        Up
        0
        Down
        ::


        Il \nobreak per l’ambiente creato, serve ad evitare che le linee di delimitazione finiscano su una pagina a se stante, e funziona!

        Per i codici, ottengo lo stesso ambiente con il pacchetto listing, e le impostazioni

        `\lstset{tabsize=3, numbers=left, numberstyle=\tiny, %
        stepnumber=1, numbersep=5pt, frame=lines, backgroundcolor=\color{lightbkgnd},%
        language=matlab, columns=flexible, captionpos=b, % `

        solo che la linea di fondo spesso in questo caso si può staccare dal resto dell’ambiente, e va a finire sulla pagina successiva! C’è un’opzione come nobreak per attaccare la linea all’ambiente oppure mi conviene sistemare eventuai errori alla fine del lavoro?

        Ciao, grazie, Roberto

      • #31475
        Up
        0
        Down
        ::

        Il \nobreak per l’ambiente creato, serve ad evitare che le linee di delimitazione finiscano su una pagina a se stante, e funziona!

        Per i codici, ottengo lo stesso ambiente con il pacchetto listing, e le impostazioni

        `\lstset{tabsize=3, numbers=left, numberstyle=\tiny, %
        stepnumber=1, numbersep=5pt, frame=lines, backgroundcolor=\color{lightbkgnd},%
        language=matlab, columns=flexible, captionpos=b, % `

        solo che la linea di fondo spesso in questo caso si può staccare dal resto dell’ambiente, e va a finire sulla pagina successiva! C’è un’opzione come nobreak per attaccare la linea all’ambiente oppure mi conviene sistemare eventuai errori alla fine del lavoro?

        Non dici come ottieni il filetto finale. Potresti mostrare un esempio completo? Non necessariamente che produca il filetto nella pagina successiva, quello si può arrangiare.

        Ciao
        Enrico

      • #31476
        Up
        0
        Down
        ::

        Non dici come ottieni il filetto finale. Potresti mostrare un esempio completo? Non necessariamente che produca il filetto nella pagina successiva, quello si può arrangiare.

        Ciao
        Enrico

        frame=lines

        Questo è il comando che mi aggiunge il filetto iniziale e finale. Per avere uno sfondo grigio basta inserire l’opzione:

        backgroundcolor=\color{lightbkgnd}

        sempre tra le impostazioni di listing, cioè nel comando \lstset.

      • #31477
        Up
        0
        Down
        ::

        Non dici come ottieni il filetto finale. Potresti mostrare un esempio completo? Non necessariamente che produca il filetto nella pagina successiva, quello si può arrangiare.

        Ciao
        Enrico

        frame=lines

        Questo è il comando che mi aggiunge il filetto iniziale e finale. Per avere uno sfondo grigio basta inserire l’opzione:

        backgroundcolor=\color{lightbkgnd}

        sempre tra le impostazioni di listing, cioè nel comando \lstset.

        Esempio completo? 😕

        Ciao
        Enrico

      • #31478
        Up
        0
        Down
        ::


        Ok, questo è l’esempio completo:
        `\documentclass{book}
        \usepackage{listings}
        \lstset{basewidth=0.5em, tabsize=2, numbers=left, numberstyle=\tiny, %
        stepnumber=1, numbersep=5pt, frame=lines, %
        stringstyle=\ttfamily, language=matlab, columns=flexible, captionpos=b}

        \begin{document}

        \chapter{Questo è un capitolo}
        Testo, poi un listato

        \lstinputlisting[lastline=29, caption=Codice di esempio ]
        {listato.m}

        Altro testo

        \end{document}`

        Serve un file, che in questo caso ho chiamato listato.m, che contiene almeno 29 linee di codice. In realtà uso la classe scrbook, in tal caso per l’overflow occorrono 36 linee!

      • #31479
        Up
        0
        Down
        ::

        Ok, questo è l’esempio completo:
        `\documentclass{book}
        \usepackage{listings}
        \lstset{basewidth=0.5em, tabsize=2, numbers=left, numberstyle=\tiny, %
        stepnumber=1, numbersep=5pt, frame=lines, %
        stringstyle=\ttfamily, language=matlab, columns=flexible, captionpos=b}

        \begin{document}

        \chapter{Questo è un capitolo}
        Testo, poi un listato

        \lstinputlisting[lastline=29, caption=Codice di esempio ]
        {listato.m}

        Altro testo

        \end{document}`

        Serve un file, che in questo caso ho chiamato listato.m, che contiene almeno 29 linee di codice. In realtà uso la classe scrbook, in tal caso per l’overflow occorrono 36 linee!

        Temo che risolvere il problema automaticamente richieda un’analisi piuttosto profonda del codice del pacchetto. Il filetto finale non è prodotto con \hrule, ma con \vrule dentro una \hbox che viene preceduta da \baselineskip, il quale è un buon posto per cambiare pagina, secondo le regole di TeX.

        Credo che ci sia poco da fare oltre al tentativo di segnalare la faccenda a chi si occupa del pacchetto.

        Ciao
        Enrico

      • #31480
        Up
        0
        Down
        ::


        Ok, volevo segnalare il bug, sulla documentazione di listings ho trovato l’indirizzo bmoses@dpdx.net, che però non è valido, il messaggio mi torna indietro con l’errore:other or undefined network or routing status. Riproverò…

        Intanto vorrei segnalare una possibile soluzione manuale per i casi di emergenza: invece di usare l’input da file, basta copiare ed incollare il codice tra \begin{listing} e \end{listing} per risolvere!

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

    Go to top