Indice analitico: perfezionare classic.ist

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


      Ciao a tutti.

      A pagina 157 dell’Arte consiglio di personalizzare l’indice analitico con il file di stile classic.ist:
      `headings_flag 1
      heading_prefix “\n \\item \\textsc{”
      heading_suffix “}”
      symhead_positive “Simboli”
      symhead_negative “simboli”
      numhead_positive “Numeri”
      numhead_negative “numeri”`
      Oggi il prof. Beccari mi ha scritto sottolineando un problema con questo file:

      Ho provato ad usare il piccolo file classic.ist, ma al primo indice che ho compilato mi è venuto un titolino in fondo ad una colonna e la prima voce corrispondente a quella lettera all’inizio della colonna successiva; È chiaro che si può modificare il file ist per far sì che il titolino non sia separato da quanto segue da un salto colonna o, peggio ancora, da un salto pagina. La soluzione più semplice, ma non priva di inconvenienti, che sono riuscito a trovare senza usare magie strane con il comandi \@idxitem e \nobreak o le varie possibili penalties, è la seguente:
      `headings_flag 1
      heading_prefix “\n \\item
      \\subsubsection\*{\\normalfont\\normalsize\\textsc{”
      heading_suffix “}}”
      symhead_positive “Simboli”
      symhead_negative “simboli”
      numhead_positive “Numeri”
      numhead_negative “numeri”`L’inconveniete principale, almeno con la classe book, è che se in una colonna appaiono almeno due titolini, allora una parte delle righe risulta non allineata con le righe della colonna accanto, cosa che invece non succede con la tua soluzione. Questo dipende dai contrografismi associati al comando \subsection; li si potrebbe modificare, ma di nuovo andremmo su soluzioni complicate.

      Questo problema con classic.ist lo conoscevo: aggiorno l’Arte tutti i mesi, e a volte capita di avere un titolino alla fine di una colonna e le voci nella colonna successiva – davvero inaccettabile.

      Finora me la sono cavata “a mano”, aggiungendo a togliendo una voce dall’indice analitico, ma certo questa non è una soluzione valida. Tempo fa Enrico aveva osservato, fra l’altro, che usare \textsc{A} non fa nulla di particolare e mi aveva consigliato di provare con la seguente modifica:
      `heading_prefix “\textsc{\MakeLowercase{”
      heading_suffix “}}\\hfil\\nopagebreak\n”`
      Provai, ottenni un errore e lasciai stare, rimandando la cosa a quando avessi avuto un po’ più di tempo.

      Questo topic ripropone la questione, con l’obiettivo di risolverla.

      Grazie anticipate,
      Lorenzo

    Visualizzazione 8 filoni di risposte
    • Autore
      Risposte
      • #33803
        Up
        0
        Down
        ::

        Ciao a tutti.

        A pagina 157 dell’Arte consiglio di personalizzare l’indice analitico con il file di stile classic.ist:
        `headings_flag 1
        heading_prefix “\n \\item \\textsc{”
        heading_suffix “}”
        symhead_positive “Simboli”
        symhead_negative “simboli”
        numhead_positive “Numeri”
        numhead_negative “numeri”`
        Oggi il prof. Beccari mi ha scritto sottolineando un problema con questo file:

        Ho provato ad usare il piccolo file classic.ist, ma al primo indice che ho compilato mi è venuto un titolino in fondo ad una colonna e la prima voce corrispondente a quella lettera all’inizio della colonna successiva; È chiaro che si può modificare il file ist per far sì che il titolino non sia separato da quanto segue da un salto colonna o, peggio ancora, da un salto pagina. La soluzione più semplice, ma non priva di inconvenienti, che sono riuscito a trovare senza usare magie strane con il comandi \@idxitem e \nobreak o le varie possibili penalties, è la seguente:
        `headings_flag 1
        heading_prefix “\n \\item
        \\subsubsection\*{\\normalfont\\normalsize\\textsc{”
        heading_suffix “}}”
        symhead_positive “Simboli”
        symhead_negative “simboli”
        numhead_positive “Numeri”
        numhead_negative “numeri”`L’inconveniete principale, almeno con la classe book, è che se in una colonna appaiono almeno due titolini, allora una parte delle righe risulta non allineata con le righe della colonna accanto, cosa che invece non succede con la tua soluzione. Questo dipende dai contrografismi associati al comando \subsection; li si potrebbe modificare, ma di nuovo andremmo su soluzioni complicate.

        Questo problema con classic.ist lo conoscevo: aggiorno l’Arte tutti i mesi, e a volte capita di avere un titolino alla fine di una colonna e le voci nella colonna successiva – davvero inaccettabile.

        Finora me la sono cavata “a mano”, aggiungendo a togliendo una voce dall’indice analitico, ma certo questa non è una soluzione valida. Tempo fa Enrico aveva osservato, fra l’altro, che usare \textsc{A} non fa nulla di particolare e mi aveva consigliato di provare con la seguente modifica:
        `heading_prefix “\textsc{\MakeLowercase{”
        heading_suffix “}}\\hfil\\nopagebreak\n”`
        Provai, ottenni un errore e lasciai stare, rimandando la cosa a quando avessi avuto un po’ più di tempo.

        Questo topic ripropone la questione, con l’obiettivo di risolverla.

        In quello che riporti con \MakeLowercase mancavano solo un paio di barre rovesce. Aggiungo per sicurezza un \goodbreak
        `headings_flag 1
        heading_prefix “\\goodbreak\\textsc{\\MakeLowercase{”
        heading_suffix “}}\\nopagebreak\n”
        symhead_positive “Simboli”
        symhead_negative “simboli”
        numhead_positive “Numeri”
        numhead_negative “numeri”`
        Ciao
        Enrico

      • #33804
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          La soluzione di Enrico è ottima; tuttavia il titolino inserito in maiuscoletto, molto elegante di per sé, non emerge abbastanza fra le voci dell’indice, specialmente se queste sono piuttosto scure; anche \goodbreak è un ordine di saltare colonna piuttosto energico conn una penalità di -500; \filbreak introduce una penalità solo di -200, ma il suo giochetto di allungamenti positivi e negativi fa sì che le colonne venganno spezzate quasi ad ogni titolino. Volendo evitare di mettere in neretto i titolini, mantenere minimo il numero di salti a colonna non giustificata, mantenere l’allineamento delle righe delle due colonne dell’indice e staccare il titolino dal contenuto della sua colonna, io ho pensato ad una modifica del genere:
          `
          headings_flag 1
          heading_prefix “\\par\\penalty-50\\textsc{\\MakeLowercase{”
          heading_suffix “}}\\\\\~\\\\\*”
          symhead_positive “Simboli”
          symhead_negative “simboli”
          numhead_positive “Numeri”
          numhead_negative “numeri”
          `
          Uso una piccola penalità negativa prima del titolino, mantengo il codice di composizione di Enrico, vado a capo con una riga che contiene solo uno spazio non cancellabile (la tilde) e poi vado ancora a capo con il comando asteriscato che impedisce un salto colonna.
          Il risultato può piacere o non piacere, ma il titolono rimane bene in vista e non staccato da quanto segue se non da una riga bianca; l’inconveniente, presente anche con la soluzione di Enrico, è che talvolta si ha un salto pagina alla penultima riga di una colonna, che riimane quindi monca. Però, come nella soluzione di Enrico, le righe delle due colonne si mantengono allineate, anche in corrispondenza dei titolini.

        • #33805
          Up
          0
          Down
          ::

          La soluzione di Enrico è ottima; tuttavia il titolino inserito in maiuscoletto, molto elegante di per sé, non emerge abbastanza fra le voci dell’indice, specialmente se queste sono piuttosto scure; anche \goodbreak è un ordine di saltare colonna piuttosto energico conn una penalità di -500; \filbreak introduce una penalità solo di -200, ma il suo giochetto di allungamenti positivi e negativi fa sì che le colonne venganno spezzate quasi ad ogni titolino. Volendo evitare di mettere in neretto i titolini, mantenere minimo il numero di salti a colonna non giustificata, mantenere l’allineamento delle righe delle due colonne dell’indice e staccare il titolino dal contenuto della sua colonna, io ho pensato ad una modifica del genere:
          `
          headings_flag 1
          heading_prefix “\\par\\penalty-50\\textsc{\\MakeLowercase{”
          heading_suffix “}}\\\\\~\\\\\*”
          symhead_positive “Simboli”
          symhead_negative “simboli”
          numhead_positive “Numeri”
          numhead_negative “numeri”
          `
          Uso una piccola penalità negativa prima del titolino, mantengo il codice di composizione di Enrico, vado a capo con una riga che contiene solo uno spazio non cancellabile (la tilde) e poi vado ancora a capo con il comando asteriscato che impedisce un salto colonna.
          Il risultato può piacere o non piacere, ma il titolono rimane bene in vista e non staccato da quanto segue se non da una riga bianca; l’inconveniente, presente anche con la soluzione di Enrico, è che talvolta si ha un salto pagina alla penultima riga di una colonna, che riimane quindi monca. Però, come nella soluzione di Enrico, le righe delle due colonne si mantengono allineate, anche in corrispondenza dei titolini.

          Temo che non funzioni proprio; direi che
          `heading_suffix “}}\\par\\nobreak\\vskip\\medskipamount\\nobreak”`
          sia quello che ci vuole.

          Ciao
          Enrico

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

            La soluzione di Enrico è ottima; tuttavia il titolino inserito in maiuscoletto, molto elegante di per sé, non emerge abbastanza fra le voci dell’indice […].

            Posto che il dotto scambio tra Enrico e Claudio mi risulta un poco oscuro (per colpa delle mie modestissime capacità TeXniche), condivido questa osservazione di Claudio: i titolini vengono un po’ troppo piccoli. Ho provato con
            `headings_flag 1
            heading_prefix “\\goodbreak\\textsc{”
            heading_suffix “}\\nopagebreak\n”
            symhead_positive “Simboli”
            symhead_negative “simboli”
            numhead_positive “Numeri”
            numhead_negative “numeri”`
            che mi sembra funzionare, ma si tratta solo di un tentativo alla cieca.

            Che sintesi si può fare di tutte le proposte fin qui emerse?

            Grazie anticipate,
            Lorenzo

          • #33807
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::

              La soluzione di Enrico è ottima; tuttavia il titolino inserito in maiuscoletto, molto elegante di per sé, non emerge abbastanza fra le voci dell’indice, specialmente se queste sono piuttosto scure; anche \goodbreak è un ordine di saltare colonna piuttosto energico conn una penalità di -500; \filbreak introduce una penalità solo di -200, ma il suo giochetto di allungamenti positivi e negativi fa sì che le colonne venganno spezzate quasi ad ogni titolino. Volendo evitare di mettere in neretto i titolini, mantenere minimo il numero di salti a colonna non giustificata, mantenere l’allineamento delle righe delle due colonne dell’indice e staccare il titolino dal contenuto della sua colonna, io ho pensato ad una modifica del genere:
              `
              headings_flag 1
              heading_prefix “\\par\\penalty-50\\textsc{\\MakeLowercase{”
              heading_suffix “}}\\\\\~\\\\\*”
              symhead_positive “Simboli”
              symhead_negative “simboli”
              numhead_positive “Numeri”
              numhead_negative “numeri”
              `
              Uso una piccola penalità negativa prima del titolino, mantengo il codice di composizione di Enrico, vado a capo con una riga che contiene solo uno spazio non cancellabile (la tilde) e poi vado ancora a capo con il comando asteriscato che impedisce un salto colonna.
              Il risultato può piacere o non piacere, ma il titolono rimane bene in vista e non staccato da quanto segue se non da una riga bianca; l’inconveniente, presente anche con la soluzione di Enrico, è che talvolta si ha un salto pagina alla penultima riga di una colonna, che riimane quindi monca. Però, come nella soluzione di Enrico, le righe delle due colonne si mantengono allineate, anche in corrispondenza dei titolini.

              Temo che non funzioni proprio; direi che
              `heading_suffix “}}\\par\\nobreak\\vskip\\medskipamount\\nobreak”`
              sia quello che ci vuole.

              Enrico, il mio codice funziona perché l’ho usato e ottengo quello che volevo, in particolare una riga bianca dopo il titolino esattamente giusta per non disallineare le righe delle colonne adiacenti. Mi pare che nella mia soluzione, benché funzionante, ci sia un errore logico, e cioè manchi un \* prima di \~. Non ho provato a togliere gli escape davanti ai caratteri * e ~ che forse sono superflui, ma meglio troppo che troppo poco. La tua soluzione era quella che io stesso avevo provato prima di inviare la soluzione con la tilde; \medskiamount vale normalmente mezza riga e \bigskipamount vale circa un \baslineskip intero; il primo è troppo poco per mantenere allineate le righe, il secondo è troppo grande. Ovviamente il codice della tua soluzione si legge molto meglio, ma non conserva, almeno secondo le mie prove, l’allineamento delle righe.

              Lorenzo dice: che ne facciamo di tutte queste proposte? Io non saprei dire; so dire che cosa fa l’una e che cosa fa l’altra o la terza, o…; ma il gusto estetico è diverso da persona a persona. Probabilmente per essere usato in classicthesis meriterebbe lasciare i titolini in maiuscoletto chiaro con l’iniziale maiuscola, anche se restano maiuscoli quasi tutti i titolini tranne “Simboli”; con altre clasi potrebbe essere preferibile il tondo nero, magari senza grazie se anche gli altri titoli sono senza grazie. In ogni caso userei lo stesso font usato per gli altri titolini. Quindi ognuno che volesse avere un indice analitico con i titolini dovrebbe personalizzarselo cambiando \textsc in quel che occorre per la sua classe.

            • #33808
              Up
              0
              Down
              ::

              [quote]La soluzione di Enrico è ottima; tuttavia il titolino inserito in maiuscoletto, molto elegante di per sé, non emerge abbastanza fra le voci dell’indice, specialmente se queste sono piuttosto scure; anche \goodbreak è un ordine di saltare colonna piuttosto energico conn una penalità di -500; \filbreak introduce una penalità solo di -200, ma il suo giochetto di allungamenti positivi e negativi fa sì che le colonne venganno spezzate quasi ad ogni titolino. Volendo evitare di mettere in neretto i titolini, mantenere minimo il numero di salti a colonna non giustificata, mantenere l’allineamento delle righe delle due colonne dell’indice e staccare il titolino dal contenuto della sua colonna, io ho pensato ad una modifica del genere:
              `
              headings_flag 1
              heading_prefix “\\par\\penalty-50\\textsc{\\MakeLowercase{”
              heading_suffix “}}\\\\\~\\\\\*”
              symhead_positive “Simboli”
              symhead_negative “simboli”
              numhead_positive “Numeri”
              numhead_negative “numeri”
              `
              Uso una piccola penalità negativa prima del titolino, mantengo il codice di composizione di Enrico, vado a capo con una riga che contiene solo uno spazio non cancellabile (la tilde) e poi vado ancora a capo con il comando asteriscato che impedisce un salto colonna.
              Il risultato può piacere o non piacere, ma il titolono rimane bene in vista e non staccato da quanto segue se non da una riga bianca; l’inconveniente, presente anche con la soluzione di Enrico, è che talvolta si ha un salto pagina alla penultima riga di una colonna, che riimane quindi monca. Però, come nella soluzione di Enrico, le righe delle due colonne si mantengono allineate, anche in corrispondenza dei titolini.

              Temo che non funzioni proprio; direi che
              `heading_suffix “}}\\par\\nobreak\\vskip\\medskipamount\\nobreak”`
              sia quello che ci vuole.

              Enrico, il mio codice funziona perché l’ho usato e ottengo quello che volevo, in particolare una riga bianca dopo il titolino esattamente giusta per non disallineare le righe delle colonne adiacenti. Mi pare che nella mia soluzione, benché funzionante, ci sia un errore logico, e cioè manchi un \* prima di \~. Non ho provato a togliere gli escape davanti ai caratteri * e ~ che forse sono superflui, ma meglio troppo che troppo poco. La tua soluzione era quella che io stesso avevo provato prima di inviare la soluzione con la tilde; \medskiamount vale normalmente mezza riga e \bigskipamount vale circa un \baslineskip intero; il primo è troppo poco per mantenere allineate le righe, il secondo è troppo grande. Ovviamente il codice della tua soluzione si legge molto meglio, ma non conserva, almeno secondo le mie prove, l’allineamento delle righe.

              Lorenzo dice: che ne facciamo di tutte queste proposte? Io non saprei dire; so dire che cosa fa l’una e che cosa fa l’altra o la terza, o…; ma il gusto estetico è diverso da persona a persona. Probabilmente per essere usato in classicthesis meriterebbe lasciare i titolini in maiuscoletto chiaro con l’iniziale maiuscola, anche se restano maiuscoli quasi tutti i titolini tranne “Simboli”; con altre clasi potrebbe essere preferibile il tondo nero, magari senza grazie se anche gli altri titoli sono senza grazie. In ogni caso userei lo stesso font usato per gli altri titolini. Quindi ognuno che volesse avere un indice analitico con i titolini dovrebbe personalizzarselo cambiando \textsc in quel che occorre per la sua classe.[/quote]
              Ogni titolino è preceduto da \indexspace, impostandolo con cura si dovrebbe avere l’allineamento desiderato. Una riga intera mi sembra troppo, ma, come dici giustamente, è questione di gusti.

              Ciao
              Enrico

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


                Ciao a tutti. Ho fatto qualche prova: trovo particolarmente gradevole il risultato che si ottiene con
                `headings_flag 1
                heading_prefix “\\goodbreak\\textsc{”
                heading_suffix “}\\par\\nobreak\\vskip\\smallskipamount\\nobreak”
                symhead_positive “Simboli”
                symhead_negative “simboli”
                numhead_positive “Numeri”
                numhead_negative “numeri”`
                Potete vedere il risultato nell’indice analitico dell’Arte, appena aggiornata:
                http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf

                Ho scritto bene il codice? Se non ci sono errori o controindicazioni, lo suggerirei senz’altro per personalizzare l’indice analitico (pag. 157 dell’Arte medesima).

                Grazie mille,
                Lorenzo

              • #33810
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Ho usato a lungo lo stile per l’indice analitico di ClassicThesis, classic.ist, che avevo proposto qualche tempo fa. Ho notato alcune imprecisioni e ho modificato il codice nel modo seguente:
                  `
                  headings_flag 1
                  heading_prefix “\\par\\penalty-50\\textsc{\\MakeLowercase{”
                  heading_suffix “}}\\\\\*\~\\\\\*”
                  symhead_positive “Simboli”
                  symhead_negative “simboli”
                  numhead_positive “Numeri”
                  numhead_negative “numeri”
                  delim_0 “, \\nolinebreak ”
                  `
                  In sostanza ho aggiunto un asterisco dopo il primo `\\*` che compare nella variabile `headings_suffix` e ho aggiunto l’ultima riga. Peccato che dovendo raddoppiare i backslash il codice sia difficilmente leggibile…

                  L’asterisco aggiunto elimina la possibilità di avere un titolino alla fine della colonna e il testo con la riga bianca nella colonna successiva.

                  Molto più tricky è l’ultima riga; a me succedeva, che con lemmi molto lunghi ripiegati nella seconda riga, il numero della pagina finisse in una riga ancora successiva, anche se c’era abbondante spazio non per uno ma per diversi numeri di pagina.

                  Per quanto una soluzione sia pensata, finché non la si prova sistematicamente, non si trovano tutti i possibili inghippi che potrebbero succedere.

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

                    Ho usato a lungo lo stile per l’indice analitico di ClassicThesis, classic.ist, che avevo proposto qualche tempo fa. Ho notato alcune imprecisioni e ho modificato il codice nel modo seguente:
                    `
                    headings_flag 1
                    heading_prefix “\\par\\penalty-50\\textsc{\\MakeLowercase{”
                    heading_suffix “}}\\\\\*\~\\\\\*”
                    symhead_positive “Simboli”
                    symhead_negative “simboli”
                    numhead_positive “Numeri”
                    numhead_negative “numeri”
                    delim_0 “, \\nolinebreak ”
                    `

                    Ho provato questo codice, ma, alla fine, ho deciso di continuare a usare quello di prima (che è riportato a pagina 157 dell’Arte). La ragione di questa scelta è duplice. Innanzitutto, il risultato estetetico: con quest’ultimo codice di OldClaudio trovo che la spaziatura tra il titolino e l’elenco di voci corrispondente sia eccessiva. In secondo luogo, quest’ultimo codice è più complicato, meno intuitivo.

                    Va notato che con il classic.ist che uso può essere necessario qualche ritocco manuale all’indice analitico (per esempio, aggiungendo o togliendo una voce), se si desidera un risultato tipografico ottimale.

                    In ogni caso (ma è sciocco ribadirlo), il lettore è libero di scelgliere lo stile che più gli aggrada!

                    A presto,
                    L.

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

                Go to top