Personalizza stile indice, capitoli, sezioni ecc

  • Creatore
    Topic
  • #70272
    Up
    0
    Down
    ::


    Salve,
    come da oggetto vorrei ottenere una personalizzazione degli stili dell’indice generale, dei capitoli ecc.
    così come nell’allegato pdf
    Penso ci sia bisogno di un po’ di programmazione LaTex oppure di qualche package che non conosco.

    [attachment=147]esempi.jpg[/attachment]

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 17 filoni di risposte
  • Autore
    Risposte
    • #70273
      GKT
      Partecipante
        Up
        0
        Down
        ::


        Per i capitoli: pacchetto titlesec.
        Per l’indice: pacchetto tocloft.

        Lorenzo

      • #70274
        Up
        0
        Down
        ::


        Ti ringrazio, queste guide sono molto utili ma non sono ancora riuscito ad impostare il colore di sfondo con testo bianco per gli esempi e le osservazioni.

      • #70275
        GKT
        Partecipante
          Up
          0
          Down
          ::

          Matemax” post=69634Ti ringrazio, queste guide sono molto utili ma non sono ancora riuscito ad impostare il colore di sfondo con testo bianco per gli esempi e le osservazioni.

          Potresti riportare un esempio minimo compilabile? È un po’ difficile fornire un aiuto avendo come appoggio soltanto una figura che descrive il risultato finale da ottenere.
          Intanto ti posso suggerire di usare il comando`\DeclareCaptionFormat` messo a disposizione dal pacchetto caption.

          Lorenzo

        • #70276
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::



            @Matemax
            vuol scrivere bianco su grigio come nei due esempi di “manina con l’indice puntato”+ Ossevazione e “stella” + Esercizi 1.4 (strano il plurale che precede l’etichetta del 4.o esercizio del 1.o capitolo).

            Ma se ci sono degli altri titolini con sfondo su cui è scritto in nero invece che in bianco che problema c’è a scrivere \textcolor{white}{Osservazione} ?

            Voglio dire: se titlesec consente di fare tutte le altre cose, gestire i colori delle scritte mi pare l’ultimo dei problmi.

          • #70277
            Up
            0
            Down
            ::


            Scusate se vi rispondo un po’ in ritardo ma finora non avevo avuto tempo di dedicarmici.
            Ho cercato di replicare gli stili della figura e per ora (a parte l’indice) sono riuscito a fare questo:

            \documentclass[a4paper]{book}
            \usepackage[T1]{fontenc} %imposta la codifica dei font
            \usepackage[utf8]{inputenc} %lettere accentate da tastiera
            \usepackage[english,italian]{babel} %per scrivere in italiano
            \usepackage{layaureo} %imposta i margini di pagina
            \usepackage{amsthm, amsmath, amsfonts, amssymb}
            \usepackage[colored]{shadethm}
            \usepackage{color, xcolor}
            \usepackage{pstricks, colortab}
            \usepackage{titlesec}

            %Nuovo stile per \chapter
            \titleformat{\chapter}[display]
            {\bfseries\color{gray}}
            {\filleft\huge{\chaptertitlename} \Huge\thechapter}
            {3ex}
            {\Huge}
            {\filright}

            %Definizione di stile per gli esempi, le osservazioni
            \definecolor{thmnamecolor}{RGB}{198,198,197}

            \newtheoremstyle{definition}
            {2pt} %Spazio che precede l’enunciato
            {} %Spazio che segue l’enunciato
            {\itshape} %Stile del fondo dell’enunciato
            {} %Rientro (se vuoto, non c’è rientro, \parindent = rientro dei capoversi)
            {\bfseries} %Stile del font dell’intestazione
            {} %Punteggiatura che segue l’intestazione
            {\newline} %Spazio che segue l’intestazione
            {} %Specifica l’intestazione dell’enunciato

            \theoremstyle{definition}
            \newtheorem{dfn}{Definizione}
            \newenvironment{ddfn}%
            {{\color{thmnamecolor}{\rule{13cm}{1mm}}}\begin{dfn}{\color{thmnamecolor}{\rule{23mm}{1mm}}}\newline}%
            {\end{dfn}}

            \newtheoremstyle{example}
            {2pt} %Spazio che precede l’enunciato
            {2pt} %Spazio che segue l’enunciato
            {\itshape} %Stile del fondo dell’enunciato
            {} %Rientro (se vuoto, non c’è rientro, \parindent = rientro dei capoversi)
            {\bfseries} %Stile del font dell’intestazione
            {} %Punteggiatura che segue l’intestazione
            {\newline} %Spazio che segue l’intestazione
            {\colorbox{thmnamecolor}{\S \textcolor{white}{\thmname{#1}\thmnumber{~#2}}}} %Specifica l’intestazione dell’enunciato

            \theoremstyle{example}
            \newtheorem{es}{Esempio}

            \newtheoremstyle{observation}
            {2pt} %Spazio che precede l’enunciato
            {2pt} %Spazio che segue l’enunciato
            {\itshape} %Stile del fondo dell’enunciato
            {} %Rientro (se vuoto, non c’è rientro, \parindent = rientro dei capoversi)
            {\bfseries} %Stile del font dell’intestazione
            {} %Punteggiatura che segue l’intestazione
            {} %Spazio che segue l’intestazione
            {\colorbox{thmnamecolor}{\S \textcolor{white}{\thmname{#1}\thmnumber{~#2}}}} %Specifica l’intestazione dell’enunciato

            \theoremstyle{observation}
            \newtheorem{oss}{Osservazione}[es]

            \begin{document}

            \chapter{Sistemi lineari}

            \section{Primo teorema}

            \begin{ddfn}
            Se e solo se
            \end{ddfn}

            \begin{es}
            Se e solo se
            \end{es}

            \begin{oss}
            Se e solo se
            \end{oss}

            \end{document}

            Rimango però i seguenti problemi:
            1) Non sono riuscito a trovare i simboli che creano la manina e la stellina rispettivamente davanti alle osservazioni e esempi.
            2) Per la definizione ho creato delle righe tramite il comando rule che però sono fisse (23mm, 5mm), mentre invece a me piacerebbe che, per quanto riguarda la sottolineatura venisse automaticamente grande quanto il nome dell’enunciato (Definizione 1 o Definizione 1.1 ecc) e per la riga superiore sia grande quanto i margini della pagina.
            Ho provato con \hrule ma non riesco a definirne lo spessore.
            3)Con colorbox e textwidth riesco a scrivere Problemi Proposti con lo sfondo grigio e scritta nera ma non riesco ad estendere lo sfondo grigio fino ai margini della pagina
            4)Infine ma non è nell’immagine che ho postato mi servirebbe creare una \section che abbia sempre una linea grigia che arrivi fino al margine in questo modo:
            Paragrafo 1_________________ oppure Nozioni di insiemistica_____________. Naturalmente più il nome del paragrafo è lungo più la linea fino al margine si accorcia.

            Vi ringrazio,
            Massimiliano

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

              Matemax” post=700001) Non sono riuscito a trovare i simboli che creano la manina e la stellina rispettivamente davanti alle osservazioni e esempi.

              http://ftp.uniroma2.it/TeX/info/symbols/comprehensive/symbols-a4.pdf

              Cerca “ding”.

            • #70279
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                La sintassi di \hrule è:

                [tt]\hrule width[/tt] lunghezza [tt]height[/tt] altezza [tt]depth[/tt] profondità

                e ti scrive un rettangolo nero largo larghezza, sporgente sopra la linea di nase altezza e sporgente sotto alla linea di base di profondità;
                di default larghezza è pari alla giustezza corrente del testo, altezza è pari a 0.4pt e profondità è uguale a zero; in definitiva lu pessore della riga è altezza + profondità; se giochi con valori positivi e negativi riesci a produrre lo spessore che vuoi e a spostare la riga orizzontale più in alto o più in basso.

                Invece [tt]\hrulefill[/tt] rimepie tutto lo spazio che resta, si allunga automaticamente come se fosse una molla compressa; il tuo esempio

                Paragrafo 1_________________ oppure Nozioni di insiemistica_____________

                diventa:
                `
                \makebox[\textwidth]{Paragrafo 1\hrulefill}
                `
                oppure
                `
                \makebox[\textwidth]{Nozioni di insiemeistica\hrulefill}
                `

                Potrebbe essere necessario inserire [tt]\noindent[/tt] prima di [tt]\makebox[/tt]

              • #70280
                Up
                0
                Down
                ::



                @lorenzo
                .pantieri: ti ringrazio per i simboli, sono riuscito ad inserirli


                @OldClaudio
                : Credo che la sintassi di cui tu parli riguardi il comando \rule. Se provo a ridefinire l’altezza e la profondità di hrule, cercando di far rimanere inalterata la larghezza, che deve coprire il corpo del foglio (all’interno dei margini), il compilatore mi da errore.

                Avevo pensato alla soluzione di \hrulefill per riempire lo spazio mancante però anche in questo caso non riesco a definire lo spessore.
                Inoltre mi piacerebbe che questo avvenisse all’interno del comando \section in quando deve seguire una numerazione (usando appunto il package titlesec)

                Continuerò a lavorarci, intanto vi ringrazio per le veloci risposte.
                Massimilano

              • #70281
                Up
                0
                Down
                ::


                `\documentclass[a4paper,11pt]{book}
                \usepackage[T1]{fontenc} %imposta la codifica dei font
                \usepackage[utf8]{inputenc} %lettere accentate da tastiera
                \usepackage[english,italian]{babel} %per scrivere in italiano
                \usepackage{layaureo} %imposta i margini di pagina
                \usepackage{amsthm, amsmath, amsfonts, amssymb}
                \usepackage[colored]{shadethm}
                \usepackage{color, xcolor}
                \usepackage{pstricks, colortab}
                \usepackage{titlesec} %Personalizza stile parti, capitoli sezioni ecc.
                \usepackage{bbding} %serie di simboli (stella, manina ecc.)
                \usepackage{changebar} %Aggiunge una barra di revisione al documento

                %Nuovo stile per \chapter
                \titleformat{\chapter}[display]
                {\bfseries\color{gray}}
                {\filleft\huge{\chaptertitlename} \Huge\thechapter}
                {3ex}
                {\Huge}
                {\filright}

                %Definizione di stile per gli esempi, le osservazioni
                \definecolor{thmnamecolor}{RGB}{198,198,197}

                \newtheorem{teo}{Teorema}
                \setlength{\changebarsep}{5pt}
                \newenvironment{thm}{\cbstart \changebarsep \begin{teo}}{\end{teo}\cbend}

                \newtheoremstyle{definition}
                {3pt} %Spazio che precede l'enunciato
                {0pt} %Spazio che segue l'enunciato
                {\itshape} %Stile del fondo dell'enunciato
                {} %Rientro (se vuoto, non c'è rientro, \parindent = rientro dei capoversi)
                {\bfseries} %Stile del font dell'intestazione
                {} %Punteggiatura che segue l'intestazione
                {\newline} %Spazio che segue l'intestazione
                {} %Specifica l'intestazione dell'enunciato

                \theoremstyle{definition}
                \newtheorem{dfn}{Definizione}
                \newenvironment{ddfn}%
                {\noindent{\color{thmnamecolor}{\hrule height 1mm}}\vspace{2mm}\begin{dfn}{\color{thmnamecolor}{\rule{26mm}{1mm}}}\newline}%
                {\end{dfn}}

                \newtheoremstyle{example}
                {4pt} %Spazio che precede l'enunciato
                {4pt} %Spazio che segue l'enunciato
                {\itshape} %Stile del fondo dell'enunciato
                {} %Rientro (se vuoto, non c'è rientro, \parindent = rientro dei capoversi)
                {\bfseries} %Stile del font dell'intestazione
                {} %Punteggiatura che segue l'intestazione
                {\newline} %Spazio che segue l'intestazione
                {\FiveStarShadow \ \colorbox{thmnamecolor}{\textcolor{white}{\thmname{#1}\thmnumber{~#2}}} \vspace{2mm}} %Specifica l'intestazione dell'enunciato

                \theoremstyle{example}
                \newtheorem{es}{Esempio}

                \newtheoremstyle{observation}
                {} %Spazio che precede l'enunciato
                {} %Spazio che segue l'enunciato
                {\itshape} %Stile del fondo dell'enunciato
                {} %Rientro (se vuoto, non c'è rientro, \parindent = rientro dei capoversi)
                {\bfseries} %Stile del font dell'intestazione
                {} %Punteggiatura che segue l'intestazione
                {} %Spazio che segue l'intestazione
                {\HandRight \ \colorbox{thmnamecolor}{\textcolor{white}{\thmname{#1}\thmnumber{~#2}}}\ } %Specifica l'intestazione dell'enunciato

                \theoremstyle{observation}
                \newtheorem{oss}{Osservazione}[es]

                %Ridefinizione del formato delle sezioni
                \newcommand*{\Hrulefill}[1][0.4pt]{%
                \leavevmode\leaders\hrule height #1\hfill\kern0pt}
                \newcommand{\sect}[1]{\section{#1 \color{thmnamecolor}{\Hrulefill[0.6mm]}}}

                %Problemi proposti
                \newcommand{\problblack}{\noindent\colorbox{thmnamecolor}{\makebox[137mm][l]{Problemi Proposti}}\newline}
                \newcommand{\problwhite}{\noindent\colorbox{thmnamecolor}{\textcolor{white}{\makebox[137mm][l]{Problemi Proposti}}}\newline}

                %Stile per la numerazione degli elenchi (enumerate)
                \renewcommand\labelenumi{\colorbox{thmnamecolor}{\theenumi} \hspace{2.3mm}}

                \begin{document}

                \chapter{Sistemi lineari}

                \sect{Primo teorema}

                \begin{thm}[Teorema di Pitagora]
                La somma dei quadrati ….\\
                fdfsdafds\\
                sdfsdfsd
                \end{thm}

                \begin{enumerate}
                \item prova
                \end{enumerate}

                \problblack
                \problwhite

                \begin{ddfn}
                Se e solo se
                \end{ddfn}

                \begin{es}
                Se e solo se
                \end{es}

                \begin{oss}
                Se e solo se
                \end{oss}

                \end{document}`

                Questo è ciò che sono riuscito a fare finora. Il compilatore mi da però il seguente errore anche se poi la visualizzazione dvi è ok

                Missing nuber, treated as zero \def\begin{thm}
                Illegal unit of measure

                Missing nuber, treated as zero \relax\begin{oss}
                Illegal unit of measure

                Inoltre vorrei un makebox flessibile invece che impostato a 137mm. Un po’ come hrulefill.

                Grazie
                Massimiliano

              • #70282
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Vuoi proprio farti male da solo! 😯 🙁 😡 👿

                  \begin è un comando del kernel di LaTeX e tu lo ridefinisci impunemente con \def (pratica sempre sconsigliabile almeno fin quando il comando da definire ha argomenti non delimitati) che ti permette di fare i danni più mostruosi.

                  Usa \newcommand e vedrai che NON puoi deifnire \begin.

                  Usa \newcommand e definisci un comando con un nome diverso da \begin, foss’anche soltanto \Begin

                • #70283
                  Up
                  0
                  Down
                  ::


                  Ma nel codice che ho postato non ho scritto da nessuna parte \def\begin per questo non capisco il motivo di tale errore.
                  Nè per i teoremi nè per le osservazioni.

                  Per il problema di makebox c’è un modo per creare una scatola che riempia i margini?

                • #70284
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::

                    Missing nuber, treated as zero \def\begin{thm}

                    Quello è ciò che hai riportato a proposito del messaggio di errore; se il messaggio non è quello, allora sarebbe meglio che riportassi verbatim quella ventina di righe che nel file log stanno a cavallo del messaggio di errore.

                  • #70285
                    Up
                    0
                    Down
                    ::


                    [verbatim]
                    ! Missing number, treated as zero.

                    \def
                    l.127 \begin{thm}
                    [Teorema di Pitagora]
                    A number should have been here; I inserted `0′.
                    (If you can’t figure out why I needed to see a number,
                    look up `weird error’ in the index to The TeXbook.)
                    ! Illegal unit of measure (pt inserted).

                    \def
                    l.127 \begin{thm}
                    [Teorema di Pitagora]
                    Dimensions can be in units of em, ex, in, pt, pc,
                    cm, mm, dd, cc, nd, nc, bp, or sp; but yours is a new one!
                    I’ll assume that you meant to say pt, for printer’s points.
                    To recover gracefully from this error, it’s best to
                    delete the erroneous units; e.g., type `2′ to delete
                    two letters. (See Chapter 27 of The TeXbook.)
                    Underfull \hbox (badness 10000) in paragraph at lines 137–139
                    []
                    LaTeX Font Warning: Font shape `U/ding/bx/n’ undefined
                    (Font) using `U/ding/m/n’ instead on input line 145.
                    ! Missing number, treated as zero.

                    \relax
                    l.148 \begin{oss}
                    A number should have been here; I inserted `0′.
                    (If you can’t figure out why I needed to see a number,
                    look up `weird error’ in the index to The TeXbook.)
                    ! Illegal unit of measure (pt inserted).

                    \relax
                    l.148 \begin{oss}
                    Dimensions can be in units of em, ex, in, pt, pc,
                    cm, mm, dd, cc, nd, nc, bp, or sp; but yours is a new one!
                    I’ll assume that you meant to say pt, for printer’s points.
                    To recover gracefully from this error, it’s best to
                    delete the erroneous units; e.g., type `2′ to delete
                    two letters. (See Chapter 27 of The TeXbook.)
                    [3] (“E:\Latex\Stili per Artale\Geometria_1.aux”)
                    LaTeX Font Warning: Some font shapes were not available, defaults substituted.
                    )[/verbatim]

                    Questo è il log!

                  • #70286
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Non so bene dove la definizione degli ambienti generati da \newtheorem usi dei comandi \def, ma certamente le definzioni dei nuovi teoremi \thm e oss contengon qualcosa che non va. o manca un argomento, o non sono stati specificati correttamente i parametri ausiliari, oppure la definzione dei loro stili è errata, nel senso, magari, che qualche coppie di graffe invece di essere vuoto dovrebbe contenere, per esempi, 0pt.

                      devi, cioè rivere accuratamente che tu abbia eseguito delle definizioni o ridefinizioni corrette di quegli ambienti thm e oss.

                    • #70287
                      Up
                      0
                      Down
                      ::


                      Ti ringrazio, cercherò di rivedere le definizioni di questi due ambienti.
                      La cosa strana però è che io li ho creati in modo identico allo stile degli esempi e non capisco perché per l’ambiente \begin{es}\end{es} non mi dia lo stesso errore. Mah!

                      Per l’atro problema invece c’è qualche soluzione diversa?
                      Mi basterebbe riuscire a creare un rettangolo largo quanto i margini della pagina e non con larghezza definita da me.

                    • #70288
                      OldClaudio
                      Partecipante
                        Up
                        0
                        Down
                        ::

                        Matemax” post=70096Ti ringrazio, cercherò di rivedere le definizioni di questi due ambienti.
                        La cosa strana però è che io li ho creati in modo identico allo stile degli esempi e non capisco perché per l’ambiente \begin{es}\end{es} non mi dia lo stesso errore. Mah!

                        Per l’atro problema invece c’è qualche soluzione diversa?
                        Mi basterebbe riuscire a creare un rettangolo largo quanto i margini della pagina e non con larghezza definita da me.

                        Per l’ambiente es hai definito esplicitamente il contatore es, per gli altri no, né ha specificato con le dovute variabili con quale altro contatore vuoi che siano numerati; forse è quello l’errore, anche se in realtà la sintassi di \newtheorem prevede il nome del contatore come una variabile facoltativa.

                        Per rettangolo largo quanto la pagina intendi una scatola contenente del testo e che riempia il resto della riga?

                      • #70289
                        Up
                        0
                        Down
                        ::


                        Forse il problema è proprio quello; proverò a definire un contatore anche per oss e thm.

                        Per l’altro problema intendo proprio un scatola che riempia il resto della riga.
                        Così come ho definito il comando \problwhite dove ho impostato una larghezza di 137mm fissa mentre invece io vorrei che riempissa la riga
                        automaticamente anche se impostassi margini differenti di pagina.

                      • #70290
                        OldClaudio
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Invece di 137mm scrivici \linewidth

                          \linewidth è il valore della lunghezza di riga corrente, sia che tu componga a piena pagina sia in più colonne; è anche la larghezza ridotta della riga quando ti trovi dentro ambienti come description, itemize, enumerate.

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

                      Go to top