Della nomenclatura e del suo stile

  • Creatore
    Topic
  • #21771
    Up
    0
    Down
    ::


    Diciamo che ho già letto la documentazione e i topic (non molti, in fin dei conti) qui sul forum relativi alla nomenclatura.
    I pacchetti più consigliati/usati sono:

    listofsymbols
    nomencl

    E fin qua non ci piove.

    Secondo voi, qual è l’approccio che devo usare, i pacchetti che mi servono per realizzare una nomenclatura che mi permetta il seguente grado di personalizzazione?

      1. Dividere i simboli in gruppi a mio piacere
      2. Porre dei titoli per ogni sottogruppo della nomenclatura (subscripts, superscripts, abbreviations, etc.)
      3. Personalizzare carattere, spazi lasciati, etc. dopo questi titoli di “sottogruppo”

    Diciamo che ho visto una bella nomenclatura su un libro e cerco di imitarla. Consigli su pacchetti e approcci da usare?

Visualizzazione 37 filoni di risposte
  • Autore
    Risposte
    • #21772
      DMW
        Up
        0
        Down
        ::


        Il pacchetto glossaries è l’ultimo arrivato ed è anche il più potente. Secondo me permette di personalizzare molte cose.
        http://www.ctan.org/tex-archive/macros/latex/contrib/glossaries/
        http://www.ctan.org/tex-archive/macros/latex/contrib/glossaries/doc/

        Dagli una letta, vedi se fa al caso tuo.

        Gli script per far funzionare il pacchetto li trovi qui
        http://www.ctan.org/tex-archive/macros/latex/contrib/glossaries/scripts/

        anche se non sono indispensabili, come scritto anche sulla guida.

        Ciao

        Andrea

      • #21773
        Up
        0
        Down
        ::


        Do una bella occhiata e poi vi farò risapere che ne penso.

        Grazie mille per le dritte.

      • #21774
        Up
        0
        Down
        ::


        e la prima domanda nacque sponstanea…

        Come si associa glossaries a TeXnicCenter?

        makeindex -s myfile.ist -t myfile.glg -o myfile.gls myfile.glo
        makeindex -s myfile.ist -t myfile.alg -o myfile.acr myfile.acn

        al posto di myfile metto “%bm”. E fin qui, ok.
        Ma per fargli fare due riche di comando a TeXnicCenter? Divido con cosa? punto e virgola?

      • #21775
        Up
        0
        Down
        ::


        un po’ ci ho “aggeggiato”… ho un’idea di ocme funziona. Però mi mancano due semplici cose: come definisco i gruppi (subscripts, abbreviations, etc…) e come definisco lo stile di questi titoli (appunto subscripts, abbreviations, etc.)?

      • #21776
        Up
        0
        Down
        ::


        allora… in questo giorno ho un po’ letto meglio le varie cose e ho concluso che per i miei scopi può andar bene nomencl, meno flessibile, ma con quale furbizia si può piegarlo alle nostre volontà.
        `\usepackage{ifthen}
        \usepackage[italian]{nomencl}%serve MakeIndex:”%bm”.nlo -s nomencl.ist -o “%bm”.nls, argomento di makeindex. \nomenclature{prefix}{symbol}{description}
        \makenomenclature
        \renewcommand{\nomgroup}[1]{\ifthenelse{\equal{#1}{A}}{\item[\fontfamily{pag}\fontsize{14}{1}\fontseries{b}\selectfont Abbreviazione]}{\ifthenelse{\equal{#1}{S}}{\item[ \fontfamily{pag}\fontsize{14}{1}\fontseries{b}\selectfont Simboli]}{}}
        {\ifthenelse{\equal{#1}{P}}{\item[\fontfamily{pag}\fontsize{14}{1}\fontseries{b}\selectfont Pedici]}{}}}`

        Con questo papocchio sono riuscito a mettere i sottogruppi, a dare lo stile che volevo io ai loro titoli, ma NON a decidere la distanza ad esempio sopra un nuovo titolo di sottogruppo. Idee?

        Inoltre ordina i sottogruppi in ordine alfabetico, che non è proprio una grande idea. L’ordine concettuale corretto sarebbe:
        Simboli, Abbreviazioni, Pedici (per ordine di importanza)

        e NON Abbreviazioni, Pedici, Simboli
        Idee?

      • #21777
        Up
        0
        Down
        ::

        allora… in questo giorno ho un po’ letto meglio le varie cose e ho concluso che per i miei scopi può andar bene nomencl, meno flessibile, ma con quale furbizia si può piegarlo alle nostre volontà.
        `\usepackage{ifthen}
        \usepackage[italian]{nomencl}%serve MakeIndex:”%bm”.nlo -s nomencl.ist -o “%bm”.nls, argomento di makeindex. \nomenclature{prefix}{symbol}{description}
        \makenomenclature
        \renewcommand{\nomgroup}[1]{\ifthenelse{\equal{#1}{A}}{\item[\fontfamily{pag}\fontsize{14}{1}\fontseries{b}\selectfont Abbreviazione]}{\ifthenelse{\equal{#1}{S}}{\item[ \fontfamily{pag}\fontsize{14}{1}\fontseries{b}\selectfont Simboli]}{}}
        {\ifthenelse{\equal{#1}{P}}{\item[\fontfamily{pag}\fontsize{14}{1}\fontseries{b}\selectfont Pedici]}{}}}`

        Con questo papocchio sono riuscito a mettere i sottogruppi, a dare lo stile che volevo io ai loro titoli, ma NON a decidere la distanza ad esempio sopra un nuovo titolo di sottogruppo. Idee?

        Inoltre ordina i sottogruppi in ordine alfabetico, che non è proprio una grande idea. L’ordine concettuale corretto sarebbe:
        Simboli, Abbreviazioni, Pedici (per ordine di importanza)

        e NON Abbreviazioni, Pedici, Simboli
        Idee?

        Il comando \nomenclature accetta un prefisso proprio per modificare l’ordine alfabetico. Prova a dare un esempio di ciò che scrivi per vedere che si può fare.

        Ti do qualche dritta per scrivere in modo meno perfido quel codice:
        `\renewcommand{\nomgroup}[1]{%
        \if#1A%
        \formattitle{Abbreviazioni}%
        \else
        \if#1S%
        \formattitle{Simboli}%
        \else
        \if#1P%
        \formattitle{Pedici}%
        \else
        \GenericError{\string\nomgroup}{The argument can be only A, S or P}{}{}%
        \fi
        \fi
        \fi}`
        \ifthenelse è comodo, ma gli annidamenti sono veramente complicati da gestire.

        Non userei mai comandi espliciti di font, ma solo comandi di medio o alto livello. Sta a te definire \sfdefault per scegliere AvantGarde in tutto il documento: non si usano due font lineari diversi nello stesso documento. Poi basterà dare una definizione opportuna a \formattitle del tipo
        `\newcommand{\formattitle}[1]{\item[\sffamily #1]}`
        anche se penso che \item non sia il modo migliore, visto anche che vorresti una spaziatura aggiuntiva.

        Prova a mandare un esempio, poca roba, mi raccomando, togliendo dal preambolo tutto ciò che non c’entra con la questione.

        Ciao
        Enrico

      • #21778
        DMW
          Up
          0
          Down
          ::


          L’ordine lo definisce il parametro opzionale. Se usi, anche per semplicità, solo le lettere A,B e C, puoi scrivere
          `\renewcommand{\nomgroup}[1]{%
          \if#1B%
          \formattitle{Abbreviazioni}%
          \else
          \if#1A%
          \formattitle{Simboli}%
          \else
          \if#1C%
          \formattitle{Pedici}%
          \else
          \GenericError{\string\nomgroup}{The argument can be only A, S or P}{}{}%
          \fi
          \fi
          \fi}
          \newcommand{\formattitle}[1]{\item[\sffamily #1]}`

          Così avrai Simboli (A). Abbreviazioni (B) e Pedici(C). Già testato e va benissimo.

          Ciao

          Andrea

        • #21779
          Up
          0
          Down
          ::


          Voi sì che davvero siete sapienti (what a wonderful forum, direbbe Louis) così io vi seguo a ruota:

          `\renewcommand{\sffamily}{\fontfamily{pag}\selectfont}`
          ricordando comunque che nonostante ogni volta scrivessi \fontfamily{pag} ho seguito alla lettere le tue correttissime indicazioni di usare un solo sans serif e un sono serif per un testo.

          poi:
          `\renewcommand{\nomgroup}[1]{%
          \if#1B%
          \formattitle{Abbreviazioni}%
          \else
          \if#1A%
          \formattitle{Simboli}%
          \else
          \if#1C%
          \formattitle{Pedici}%
          \else
          \GenericError{\string\nomgroup}{The argument can be only A, B or C}{}{}%
          \fi
          \fi
          \fi}

          \newcommand{\formattitle}[1]{\item[\sffamily \fontsize{14}{1}\fontseries{b}\selectfont #1]}%uso questo tipo di carattere perché uguale allo stile section (che ho definito manualmente tramite titlesec ma non ho, per snellezza di codice, definito con un \newcommand{}{}`

          Unica cosa: per dare lo spazio prima di un nuovo titolo, cosa potrei usare? non ne ho idea! Ho pensato a framebox ma non è una grande idea. Comunque nomencl vuole che \formattitle sia un oggetto \item, ma accetta di tutto annidato dentro l’oggetto \item in questione. E’ uno spunto per le vostre menti illuminate.

        • #21780
          Up
          0
          Down
          ::

          Voi sì che davvero siete sapienti (what a wonderful forum, direbbe Louis) così io vi seguo a ruota:

          `\renewcommand{\sffamily}{\fontfamily{pag}\selectfont}`

          `\renewcommand{\sfdefault}{pag}`

          `\newcommand{\formattitle}[1]{\item[\sffamily \fontsize{14}{1}\fontseries{b}\selectfont #1]}`
          uso questo tipo di carattere perché uguale allo stile section (che ho definito manualmente tramite titlesec ma non ho, per snellezza di codice, definito con un \newcommand{}{}

          Male hai fatto. Corri ai ripari prima che sia tardi. E non dare quell’uno come secondo argomento di \fontsize: almeno 16.

          Unica cosa: per dare lo spazio prima di un nuovo titolo, cosa potrei usare? non ne ho idea! Ho pensato a framebox ma non è una grande idea. Comunque nomencl vuole che \formattitle sia un oggetto \item, ma accetta di tutto annidato dentro l’oggetto \item in questione. E’ uno spunto per le vostre menti illuminate.

          \rule{0pt}{} è spesso un modo valido per ottenere ciò che si desidera; nel tuo caso puoi aggiungerlo al codice che produce i titoletti di separazione; certo, se ci dovessero essere cambi di pagina non funzionerebbe. Aggiunge un filetto invisibile che però occupa un certo spazio verticale: quanto? Be’, prova con 20pt e poi correggi.

          Ciao
          Enrico

        • #21781
          DMW
            Up
            0
            Down
            ::


            Srivere \renewcommand{\sffamily}{\fontfamily{pag}\selectfont} mi sembra una pazzia.

            Devi usare lo stesso font in tutto il documento come già detto da Enrico. Al limite puoi scrivere
            `\newcommand{\fontnomenc}{\fontfamily{pag}\selectfont}
            \newcommand{\formattitle}[1]{\vskip10pt\item[\fontnomenc #1]}`

            Ridefinire \ssfamily mi sembra un errore grave.

            Se vuoi staccare un po’ prova a scrivere
            `\newcommand{\formattitle}[1]{\vskip10pt\item[\fontnomenc #1]}`

            Ciao

            Andrea

          • #21782
            DMW
              Up
              0
              Down
              ::


              Ho ridefinito \formattitle. Prova a scrivere
              `
              \renewcommand{\nomgroup}[1]{%
              \if#1B%
              \formattitle{Abbreviazioni}%
              \else
              \if#1A%
              \formattitle[0pt]{Simboli}%
              \else
              \if#1C%
              \formattitle{Pedici}%
              \else
              \GenericError{\string\nomgroup}{The argument can be only A, S or P}{}{}%
              \fi
              \fi
              \fi}
              \newcommand{\formattitle}[2][15pt]{\vspace{#1}\item[\sffamily #2]}%o 10pt
              `

              Siccome il primo sottogruppo è un po’ troppo staccato dal nome iniziale Nomenclatura,
              ho messo \formattitle[0pt]{Simboli} per anullare quello spazio che normalmente vale 15pt, come puoi vedere dalla definizione di \formattitle. Se vuoi mettilo a 10pt che va più che bene.

              Ciao

              Andrea

            • #21783
              Up
              0
              Down
              ::


              Avete ragione, ridefinire \ssfamily è assurdo, svista mia. Ho corretto con:
              `\renewcommand{\sfdefault}{pag}%definisce la famiglia sans serif predefinita: qui AvantGarde`

              Le varie soluzioni sono buone (sia Andrea che Enrico).

              Varie domande sorgono spontanee:

                1.Con \fontsize{}{} il secondo parametro definisce il \baselineskip, che giuro, dopo aver letto mille definizioni diverse, non so che diavolo sia!
                2.Mi spiegate questo concetto: in un documento qualunque si avranno vari titoli (section, subsection, tec. o comunque quelle che decidiate voi). Questi titoli presuppongono che dopo di essi vi sia del testo. Supponiamo che LaTeX all’inserimento di tale titolo sia arrivato in fondo alla pagina, e quindi possa solo mettere il titolo ma nemmeno una riga di testo sotto di esso. Esteticamente sarebbe orripilante (es. Titolo di paragrafo a pag.5 in fondo e prima riga di tale paragrafo all’inizio di pag.6). Come si comporta LaTeX in tali situazioni? Come faccio a dire: beh, se trovi una situazione del genere salta direttamente alla pagina successiva anche con il titolo e il testo vada di conseguenza?
                Finché si tratta di nomenclatura posso risolvere facendo un “po’ a occhio” visto che sono pochissimi titoli, ma nel caso generale di un testo molto lungo sarebbe impensabile e servirebbe una definizione automatica.

              Un caro saluto.

            • #21784
              Up
              0
              Down
              ::


              p.s.: Il discorso di usare un solo font è ben chiaro! io ed Enrico ne abbiamo discusso a lungo in un vecchio topic. testo con un solo font con grazie (che ne so, Utopia, o Palatino o Times o che vi pare a voi) e titolo al massimo con un solo senza grazie oppure con lo stesso con grazie del testo. Su questo non ci son dubbi, tranquilli.

            • #21785
              Up
              0
              Down
              ::

              Varie domande sorgono spontanee:
              1.Con \fontsize{}{} il secondo parametro definisce il \baselineskip, che giuro, dopo aver letto mille definizioni diverse, non so che diavolo sia!

              Ogni riga di stampa si appoggia a una linea invisibile; alcuni caratteri stanno completamente sopra (a, b, c, m, per esempio), altri invece possono avere discendenti, cioè parti che stanno sotto questa linea (p, q, per esempio).

              \baselineskip è il parametro che contiene la distanza fra due di queste linee successive.

              2.Mi spiegate questo concetto: in un documento qualunque si avranno vari titoli (section, subsection, tec. o comunque quelle che decidiate voi). Questi titoli presuppongono che dopo di essi vi sia del testo. Supponiamo che LaTeX all’inserimento di tale titolo sia arrivato in fondo alla pagina, e quindi possa solo mettere il titolo ma nemmeno una riga di testo sotto di esso. Esteticamente sarebbe orripilante (es. Titolo di paragrafo a pag.5 in fondo e prima riga di tale paragrafo all’inizio di pag.6). Come si comporta LaTeX in tali situazioni? Come faccio a dire: beh, se trovi una situazione del genere salta direttamente alla pagina successiva anche con il titolo e il testo vada di conseguenza?
              Finché si tratta di nomenclatura posso risolvere facendo un “po’ a occhio” visto che sono pochissimi titoli, ma nel caso generale di un testo molto lungo sarebbe impensabile e servirebbe una definizione automatica.

              LaTeX usa un comando interno, in questi casi, per evitare di separare un titolo da ciò che segue: \@afterheading. Una costruzione equivalente è aggiunta ai comandi della definizione di \item, quindi il problema non si dovrebbe presentare in una lista.

              Ciao
              Enrico

            • #21786
              Up
              0
              Down
              ::


              Grande Enrico. Ho capito cosa è baselineskip, ma non so mai quali sono i corretti valori da dargli, nel caso di scelta dimensioni carattere con \fontsize. Qual è la linea da seguire?

            • #21787
              Up
              0
              Down
              ::

              Grande Enrico. Ho capito cosa è baselineskip, ma non so mai quali sono i corretti valori da dargli, nel caso di scelta dimensioni carattere con \fontsize. Qual è la linea da seguire?

              Questione di gusti, in dipendenza dal font usato. Con Computer Modern è normale usare 10/12 (corpo 10 con “passo” di 12 punti) oppure 11/13.6 oppure 12/14.5. Con Times a corpo 11 potrebbe essere più indicato un “passo” minore, 11/13 perché i caratteri sono più piccoli. Ma l’avanzamento di riga può (anzi deve) aumentare se le righe sono lunghe.

              Non c’è una regola, l’interlinea va regolata secondo molti fattori in modo che la pagina stampata risulti il più uniforme possibile.

              Se invece di valori “assoluti” ti appoggi ai comandi \large e simili, fissi anche \baselineskip in modo di solito adeguato.

              Ciao
              Enrico

            • #21788
              Up
              0
              Down
              ::

              Varie domande sorgono spontanee:
              1.Con \fontsize{}{} il secondo parametro definisce il \baselineskip, che giuro, dopo aver letto mille definizioni diverse, non so che diavolo sia!

              Ogni riga di stampa si appoggia a una linea invisibile; alcuni caratteri stanno completamente sopra (a, b, c, m, per esempio), altri invece possono avere discendenti, cioè parti che stanno sotto questa linea (p, q, per esempio).

              \baselineskip è il parametro che contiene la distanza fra due di queste linee successive.

              2.Mi spiegate questo concetto: in un documento qualunque si avranno vari titoli (section, subsection, tec. o comunque quelle che decidiate voi). Questi titoli presuppongono che dopo di essi vi sia del testo. Supponiamo che LaTeX all’inserimento di tale titolo sia arrivato in fondo alla pagina, e quindi possa solo mettere il titolo ma nemmeno una riga di testo sotto di esso. Esteticamente sarebbe orripilante (es. Titolo di paragrafo a pag.5 in fondo e prima riga di tale paragrafo all’inizio di pag.6). Come si comporta LaTeX in tali situazioni? Come faccio a dire: beh, se trovi una situazione del genere salta direttamente alla pagina successiva anche con il titolo e il testo vada di conseguenza?
              Finché si tratta di nomenclatura posso risolvere facendo un “po’ a occhio” visto che sono pochissimi titoli, ma nel caso generale di un testo molto lungo sarebbe impensabile e servirebbe una definizione automatica.

              LaTeX usa un comando interno, in questi casi, per evitare di separare un titolo da ciò che segue: \@afterheading. Una costruzione equivalente è aggiunta ai comandi della definizione di \item, quindi il problema non si dovrebbe presentare in una lista.

              Ciao
              Enrico

              Ottimo. E per evitare che una cosa del genere accada anche con le voci dei capitoli, della toc o della le lof (per cui uso i titoli dei capitolo per dividere meglio le figure)?

            • #21789
              Up
              0
              Down
              ::

              Ottimo. E per evitare che una cosa del genere accada anche con le voci dei capitoli, della toc o della le lof (per cui uso i titoli dei capitolo per dividere meglio le figure)?

              Si fa a mano, quando il testo è definitivo, correggendo i file .toc e affini. Ebbene sì. Nessun sistema automatico può prendere decisioni estetiche.

              Quando il testo è ormai in forma definitiva, un comando \nofiles nel preambolo impedisce la riscrittura di tutti i file ausiliari.

              Ciao
              Enrico

            • #21790
              Up
              0
              Down
              ::


              Sono scandalizzato!!!!!

              Mi spingete a tornare a Word!!!! 😯

            • #21791
              Up
              0
              Down
              ::

              Sono scandalizzato!!!!!

              Mi spingete a tornare a Word!!!! 😯

              Accomodati. 🙂 Seriamente: certe decisioni non possono essere rese automatiche. I fattori in gioco sono troppi. Un testo di qualità richiede l’intervento dell’uomo.

              È come la differenza fra il risotto in busta e quello della mamma.

              Ciao
              Enrico

            • #21792
              Up
              0
              Down
              ::


              Ma certo scherzavo! Battuta dopo essere rientrato a casa con pc acceso!

            • #21793
              Up
              0
              Down
              ::


              Nell’usare \nofiles e modificare manualmente il file .toc, ad esempio, ho notato che purtroppo c’è un limite. Il limite è che, se si usa hyperref, i collegamenti tra le entrate della Table of Contents e le sezioni (collegamenti realizzati da hyperref appunto) vengono tutti sbagliati e in pratica eliminati (il compilatore da dei warning in merito).

              C’è un modo per evitare questo oppure no?

            • #21794
              Up
              0
              Down
              ::

              Nell’usare \nofiles e modificare manualmente il file .toc, ad esempio, ho notato che purtroppo c’è un limite. Il limite è che, se si usa hyperref, i collegamenti tra le entrate della Table of Contents e le sezioni (collegamenti realizzati da hyperref appunto) vengono tutti sbagliati e in pratica eliminati (il compilatore da dei warning in merito).

              C’è un modo per evitare questo oppure no?

              Non mi pare. Ho scritto un breve documento, compilandolo normalmente un paio di volte. Poi ho dato \nofiles e modificato il .toc spostando una parte dell’indice a una nuova pagina senza avere alcun avviso durante la compilazione successiva; i collegamenti sono corretti.

              Esempio?

              Ciao
              Enrico

            • #21795
              Up
              0
              Down
              ::


              Tutto il mega documento latex non posso riportartelo comunque spero che questo basti:
              `% Aggiunge i bookmark ed i collegamenti nel file pdf

              \usepackage[colorlinks=true, bookmarks=true, pdfstartpage=1, pdfstartview=FitV,
              pdfpagemode=UseNone]{hyperref}
              \hypersetup{
              bookmarksnumbered=true,%numeri dei bookmark
              bookmarksdepth=3%profondità dei bookmark (default 2 fino a subsection)
              linkcolor=black,%colore dei link
              citecolor=black,%Color for bibliographical citations in text.
              urlcolor=black,%Color for linked URLs.
              bookmarksopen=false, %false o true: vogliamo i bookmark aperti o chiusi all'apertura?
              bookmarksopenlevel=1,%profondità dei bookmark aperti
              hypertexnames=false,
              linkcolor=black %colore link interni (come i \ref)
              }
              \hypersetup{pdfauthor={Lorenzo Alteri}, pdftitle={TATEF2 Report}} %Autore e titolo file pdf`

              Nel file .toc laddove io voglio che mi vada ad una nuova pagina metto un classico

              \newpage (per sicurezza ho provato in alternativa anche \clearpage ma si hanno gli stessi risultati)

              ma i collegamenti nella Table of Contents saltano del tutto (per le entrate successive al \newpage). I numerosi warning che appaiono sono:

              pdfTeX warning (dest): name{s
              ubfigure.105} has been referenced but does not exist, replaced by a fixed one

            • #21796
              Up
              0
              Down
              ::

              Tutto il mega documento latex non posso riportartelo comunque spero che questo basti:
              `% Aggiunge i bookmark ed i collegamenti nel file pdf

              \usepackage[colorlinks=true, bookmarks=true, pdfstartpage=1, pdfstartview=FitV,
              pdfpagemode=UseNone]{hyperref}
              \hypersetup{
              bookmarksnumbered=true,%numeri dei bookmark
              bookmarksdepth=3%profondità dei bookmark (default 2 fino a subsection)
              linkcolor=black,%colore dei link
              citecolor=black,%Color for bibliographical citations in text.
              urlcolor=black,%Color for linked URLs.
              bookmarksopen=false, %false o true: vogliamo i bookmark aperti o chiusi all'apertura?
              bookmarksopenlevel=1,%profondità dei bookmark aperti
              hypertexnames=false,
              linkcolor=black %colore link interni (come i \ref)
              }
              \hypersetup{pdfauthor={Lorenzo Alteri}, pdftitle={TATEF2 Report}} %Autore e titolo file pdf`

              Nel file .toc laddove io voglio che mi vada ad una nuova pagina metto un classico

              \newpage (per sicurezza ho provato in alternativa anche \clearpage ma si hanno gli stessi risultati)

              ma i collegamenti nella Table of Contents saltano del tutto (per le entrate successive al \newpage). I numerosi warning che appaiono sono:

              `pdfTeX warning (dest): name{s
              ubfigure.105} has been referenced but does not exist, replaced by a fixed one`

              Ho la netta impressione che non c’entri nulla il \nofiles, ma non importa. Se tutto ciò che ti serve modificare dell’indice è aggiungere un comando di “va a nuova pagina”, puoi semplicemente scrivere nel posto adatto (per esempio prima del capitolo che vuoi spostare)
              `\addtocontents{toc}{\protect\newpage}`
              Ovviamente anche questo si fa quando la stesura è definitiva.

              Manca una virgola in \hypersetup, dopo bookmarksdepth=3

              Ciao
              Enrico

            • #21797
              Up
              0
              Down
              ::


              Giusto! avevo la soluzione davanti agli occhi!

              Bravissimo!

            • #21798
              Up
              0
              Down
              ::


              Diciamo che io non tornerò mai a word, questo perché basta ingegnarsi, avere lo spirito da programmatore e scrivere questa cosa che vorrei fosse controllata a e migliorata da voi cervelloni.

              `\newcommand{\capitolo}[5]{ %definizione di ogni capitolo. Si usa così:
              %\capitolo{Titolo breve}{Titolo lungo}{}{}{}, mettere y in una delle ultime tre caselle se si vuole andare alla pagina successiva rispettivamente per toc, lof, lot

              \if#3y
              \addtocontents{toc}{\protect\newpage}%usato per andare a pagina successiva nell'indice (toc)
              \fi

              \if#4y
              \addtocontents{lof}{\protect\newpage}%usato per andare a pagina successiva nell'indice delle figure(lof)
              \fi

              \if#5y
              \addtocontents{lot}{\protect\newpage}%usato per andare a pagina successiva nell'indice delle tabelle(lot)
              \fi

              \chapter[#1]{#2} %1=titolo breve, 2=titolo lungo
              \label{cap:#1}
              \markboth{\thechapter . #1}{\thechapter . #1} %in markboth mettere titolo breve o lungo?

              \phantomsection
              \addcontentsline{lof}{chapter}{Capitolo \thechapter \ – #1}%aggiunge un entrata nell'indice delle figure (lof=list of figures) a livello chapter

              \phantomsection
              \addcontentsline{lot}{chapter}{Capitolo \thechapter \ – #1}%aggiunge un entrata nell'indice delle tabelle (lot=list of tables) a livello chapter
              }`

              Sinceramente sta cosa mi piace, sebben vorrei verificare errori e fare anche una cosa raffinata in più. Non necessarimante in un chapter si definisce il titolo breve. Vorrei definire questo comando \capitolo con la possibilità analoga a \chapter di mettere o no il titolo breve.

            • #21799
              Up
              0
              Down
              ::


              CORREZIONE: Prima dei vari if va messo un `\clearpage` altrimenti nel caso in cui alcune figure/tabelle siano alla fine del capitolo precedente dopo tutto il testo nelle lof e lot vanno a pagina successiva insieme al capitolo per cui ho usato l’opzione y per lof, lot.

            • #21800
              Up
              0
              Down
              ::

              Diciamo che io non tornerò mai a word, questo perché basta ingegnarsi, avere lo spirito da programmatore e scrivere questa cosa che vorrei fosse controllata a e migliorata da voi cervelloni.

              `\newcommand{\capitolo}[5]{ %definizione di ogni capitolo. Si usa così:
              %\capitolo{Titolo breve}{Titolo lungo}{}{}{}, mettere y in una delle ultime tre caselle se si vuole andare alla pagina successiva rispettivamente per toc, lof, lot
              \if#3y
              \addtocontents{toc}{\protect\newpage}%usato per andare a pagina successiva nell'indice (toc)
              \fi
              \if#4y
              \addtocontents{lof}{\protect\newpage}%usato per andare a pagina successiva nell'indice delle figure(lof)
              \fi
              \if#5y
              \addtocontents{lot}{\protect\newpage}%usato per andare a pagina successiva nell'indice delle tabelle(lot)
              \fi
              \chapter[#1]{#2} %1=titolo breve, 2=titolo lungo
              \label{cap:#1}
              \markboth{\thechapter . #1}{\thechapter . #1} %in markboth mettere titolo breve o lungo?
              \phantomsection
              \addcontentsline{lof}{chapter}{Capitolo \thechapter \ – #1}%aggiunge un entrata nell'indice delle figure (lof=list of figures) a livello chapter
              \phantomsection
              \addcontentsline{lot}{chapter}{Capitolo \thechapter \ – #1}%aggiunge un entrata nell'indice delle tabelle (lot=list of tables) a livello chapter
              }`

              Sinceramente sta cosa mi piace, sebben vorrei verificare errori e fare anche una cosa raffinata in più. Non necessarimante in un chapter si definisce il titolo breve. Vorrei definire questo comando \capitolo con la possibilità analoga a \chapter di mettere o no il titolo breve.

              Soluzioni in cui si arriva a un dettaglio così specifico mi lasciano perplesso. Che succede se per caso in un capitolo non ci sono figure o tabelle? Nell’elenco relativo compare il titolo del capitolo seguito dal titolo del capitolo successivo. Mi pare di ricordare di aver scritto qualche macro al proposito qui, prova a cercare.

              Per il problema più importante, quello di emettere un \newpage nell’indice o in uno degli elenchi, la sintassi che proponi è pesante e involuta: ti costringe a scrivere tre argomenti quando nella maggioranza dei casi saranno vuoti. Meglio secondo me introdurre un secondo tipo di argomento opzionale:
              `\makeatletter
              \newcommand{\capitolo}{\@ifnextchar<{\@modifylist}{\chapter}} \def\@modifylist<#1>{\cleardoublepage
              \@for\@tomodify:=#1\do{\addtocontents{\@tomodify}{\protect\newpage}}
              \chapter}
              \makeatother`
              Vediamo i vari casi:
              `\capitolo{A}
              \capitolo{A}
              \capitolo{A}
              \capitolo
              {A}
              \capitolo{A}
              \capitolo{A}`
              I primi due sono gli usuali. Con il terzo e il quarto dici di scrivere un \newpage nel file .toc; ciò che va fra < e > è la lista separata da virgole delle estensioni di file in cui vuoi che sia scritto \newpage. Il vantaggio è che se usi il pacchetto newfloat con il quale puoi definire nuovi elenchi per nuovi oggetti galleggianti, il comando \capitolo non ha bisogno di alcuna modifica.

              Come altre volte, prendilo come un esercizio per studiare come funziona LaTeX. È molto più economico fare questi aggiustamenti a mano se si rendono davvero necessari. Una buona marcatura con commenti appropriati del documento .tex rende facile, in caso, ritrovare le modifiche per annullarle o raffinarle.

              Non userei per alcun motivo il titolo breve di un capitolo come etichetta (cioè come argomento di \label): l’idea è destinata al fallimento se per caso nel titolo breve metti una lettera accentata. Provare per credere.

              Ciao
              Enrico

            • #21801
              Up
              0
              Down
              ::


              Si, in effetti è meglio una cosa più manuale. Va beh, l’ho preso come un esercizio.

              Un saluto.

            • #21802
              Up
              0
              Down
              ::

              Si, in effetti è meglio una cosa più manuale. Va beh, l’ho preso come un esercizio.

              In generale è meglio evitare di appesantire le macro con argomenti il più delle volte inutili; si rischia, fra l’altro, di non ricordarsi più perché mai ci vanno!

              Un collega aveva la passione di definire decine di abbreviazioni per locuzioni ripetute come \sv per “spazio vettoriale” o \svv per “spazi vettoriali”, \svdf per “spazio vettoriale di dimensione finita” e roba simile. Può sembrare che questo permetta un risparmio, ma ha il grosso difetto di rendere illeggibile il documento .tex; e poi, a distanza di tempo, non è facile ricordarsi all’istante il significato delle abbreviazioni meno frequenti.

              Anche l’automatizzazione delle etichette è una pratica da evitare. Può sembrare conveniente definirsi qualcosa come
              `\newtheorem{teorema}{Teorema}
              \newcommand{teo}[2]{\begin{teorema}\label{#1}#2\end{teorema}}`
              e poi scrivere
              `\teo{pitagora}{La somma dei quadrati dei cateti è uguale al quadrato
              dell'ipotenusa.}`
              ma riflettendoci meglio si scopre che questo metodo ha vari difetti. Per esempio, rende impossibile fare ricerche globali delle etichette usate, cosa che invece è possibile se ogni etichetta è argomento esplicito di un comando \label. Inoltre la struttura \begin-\end marca meglio il file .tex, rendendo più visibili le varie strutture logiche. Se poi l’enunciato del teorema è molto lungo, si rischia di non trovare più la graffa di chiusura dell’argomento.

              Altro esempio da un altro collega:
              `\newcommand{\Hom}[3]{\operatorname{Hom}_{#1}(#2,#3)}`
              Io preferisco di gran lunga
              `\newcommand{\Hom}{\operatorname{Hom}}`
              (abbreviabile in \DeclareMathOperator{\Hom}{Hom}) e scrivere $\Hom_{A}(M,N)$ piuttosto che, come il collega, $\Hom AMN$. La marcatura dell’input è molto più evidente nel primo caso, secondo me, ed evita roba come
              `\Hom{S^{-1}A}{S^{-1}M}{S^{-1}N}`
              che invece diventerebbe
              `\Hom_{S^{-1}A}(S^{-1}M,S^{-1}N)`
              rispecchiando meglio l’output.

              Ne parlo qui. Magari non ti piacerà lo stile “professorale” :), ma forse qualcosa di buono lo trovi.

              Ciao
              Enrico

            • #21803
              Up
              0
              Down
              ::


              Chiaro come sempre Enrico. Sai, quando avevo scritto quel codice non mi erano venuti in mente gli svantaggi. Grazie, come al solito. Do una lettura al pdf.

              un saluto! ❗ 😀

            • #21804
              Up
              0
              Down
              ::


              cortomaltese83\n

              Voi sì che davvero siete sapienti (what a wonderful forum, direbbe Louis) così io vi seguo a ruota:

              `\renewcommand{\sffamily}{\fontfamily{pag}\selectfont}`
              ricordando comunque che nonostante ogni volta scrivessi \fontfamily{pag} ho seguito alla lettere le tue correttissime indicazioni di usare un solo sans serif e un sono serif per un testo.

              poi:
              `\renewcommand{\nomgroup}[1]{%
              \if#1B%
              \formattitle{Abbreviazioni}%
              \else
              \if#1A%
              \formattitle{Simboli}%
              \else
              \if#1C%
              \formattitle{Pedici}%
              \else
              \GenericError{\string\nomgroup}{The argument can be only A, B or C}{}{}%
              \fi
              \fi
              \fi}

              \newcommand{\formattitle}[1]{\item[\sffamily \fontsize{14}{1}\fontseries{b}\selectfont #1]}%uso questo tipo di carattere perché uguale allo stile section (che ho definito manualmente tramite titlesec ma non ho, per snellezza di codice, definito con un \newcommand{}{}`

              Ciao, ho letto un pò tutto per cercar di capire e utilizzare i preziosi suggerimenti al fine di ottenere un elenco di simboli, abbreviazioni, ecc decente. Ora, vista la mia conoscenza molto base di LaTeX, mi trovo in difficoltà sul DOVE inserire il comando \nomgroup, che immagino differenzi per categoria il simbolo/parola inserito. Riporto qui di seguito il codice, funzionante, di una prova che ho fatto; unico problema, non riesco a differenziare per categoria (simbolo, abbreviazione, pedice):

              `
              \documentclass{article}
              \usepackage[applemac]{inputenc}
              \usepackage[T1]{fontenc}
              \usepackage[italian]{babel}
              % Elenco simboli
              \usepackage{ifthen}
              \usepackage[italian]{nomencl}%serve MakeIndex:”%bm”.nlo -s nomencl.ist -o “%bm”.nls, argomento di makeindex. \nomenclature{prefix}{symbol}{description}
              \makenomenclature

              \renewcommand{\nomgroup}[1]{%
              \if#1B%
              \formattitle{Abbreviazioni}%
              \else
              \if#1A%
              \formattitle[0pt]{Simboli}%
              \else
              \if#1C%
              \formattitle{Pedici}%
              \else
              \GenericError{\string\nomgroup}{The argument can be only A, S or P}{}{}%
              \fi
              \fi
              \fi}
              \newcommand{\formattitle}[2][15pt]{\vspace{#1}\item[\sffamily #2]}%o 10pt

              \begin{document}

              Prova.
              \nomenclature{$\alpha$}{angolo}
              \nomenclature{$\mu$}{media} %{Simbolo}{}{}
              \nomenclature{\textbf{X}}{matrice}
              \nomenclature{abbr.}{Abbreviazione}

              \printnomenclature

              \end{document}`

              Grazie in anticipo per l’illuminazione…. 😳

            • #21805
              DMW
                Up
                0
                Down
                ::


                Non hai capito molto bene. Per prima cosa togli quell’orrendo \fontsize{14}{1}\fontseries{b} dentro \formattitle e usa \large\bfseries o \Large\bfseries, anche se la trovo una cosa orrenda.

                Poi \makenomenclature va alla fine cioè dopo
                `
                \renewcommand{\nomgroup}[1]{….}
                \newcommand{\formattitle}[2][15pt]{\vspace{#1}\item[\sffamily #2]}
                `

                e quando inserisci le voci devi usare anche l’argomento opzionale. Nel nosto caso
                `
                \nomenclature[A]{..}{…}%`

                mette la voce sotto simboli, con la mette sotto Abbreviazioni e con [C] sotto Pedici.
                Se vuoi cambiare l’ordine basta modificare il semplice codice scritto nella definizione di \nomgroup.

                Basta capire un po’ il codice e leggere i messaggi precedenti.

                Ciao

                Andrea

              • #21806
                Up
                0
                Down
                ::

                Non hai capito molto bene. Per prima cosa togli quell’orrendo \fontsize{14}{1}\fontseries{b} dentro \formattitle e usa \large\bfseries o \Large\bfseries, anche se la trovo una cosa orrenda.

                Poi \makenomenclature va alla fine cioè dopo
                `
                \renewcommand{\nomgroup}[1]{….}
                \newcommand{\formattitle}[2][15pt]{\vspace{#1}\item[\sffamily #2]}
                `

                e quando inserisci le voci devi usare anche l’argomento opzionale. Nel nosto caso
                `
                \nomenclature[A]{..}{…}%`

                mette la voce sotto simboli, con la mette sotto Abbreviazioni e con [C] sotto Pedici.
                Se vuoi cambiare l’ordine basta modificare il semplice codice scritto nella definizione di \nomgroup.

                Basta capire un po’ il codice e leggere i messaggi precedenti.

                Ciao

                Andrea

                No, non avevo messo \fontsize{14}{1}\fontseries, avevo semplicemente riportato il messaggio di cortomaltese. Il codice da me utilizzato era riportato più in basso.

                Ciò che non riuscivo a capire era come assegnare la classe nel comando \nomenclature[ ]{ }{ }, per il resto è tutto chiaro, GRAZIE !
                😀

              • #21807
                Up
                0
                Down
                ::


                Riprendo questo vecchio post per notare una cosa: con le dritte da voi datemi (quello di dividere i gruppi di simboli per categorie come Simboli, Abbreviazioni, Pedici, etc.) la nomenclatura viene ordinatamente stampata.

                C’è un solo probelma: all’interno di ogni gruppo (ad es. Simboli) tutti i vari simboli NON vengono ordinati con il classico stile di nomencl, ovvero prima le stringhe, poi i simboli che iniziano con numeri ed infine gli altri simboli. A loro volta le stringhe sono tra di loro in ordine alfabetico, così come i simboli.

                La domanda è la seguente:

                come faccio a mantenere tale tipo di ordinamento standard anche all’interno di ogni sottogruppo da me creato (ad es. Pedici)?

              • #21808
                Up
                0
                Down
                ::


                Nulla mi sono già risposto da solo. In praticausando dei comandi definiti con newcommand per la nomenclatura, l’ordine non dipende dal comando reale, ma dal nome di quest’ultimo. Tutto qua.

              • #21809
                Up
                0
                Down
                ::


                Tornando al pacchetto glossaries di cui si parlava a inizio topic per la lista degli acronimi.
                Ho caricato come dice
                `
                \usepackage[italian]{babel}
                \usepackage[italian]{translator}
                \usepackage[acronym,nonumberlist]{glossaries}
                \loadglsentries[\acronymtype]{myacronyms}
                \makeglossaries
                `
                e in myacronyms.tex
                `
                \newacronym{ue}{UE}{Unione Europea}
                `

                ma continua a chimare la sezione degli acronimi Acronyms
                Babel funziona bene perchè ho “Capitolo”, “Lista delle figure”, etc…(in MikTex 2.6 ho eseguito la procedura suggerita sul forum per attivarlo)
                Cosa mi dite?

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

            Go to top