Classicthesis: scshape e spacedlowsmallcaps

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


      Ancora ciao… e ancora (una finezza su) Classicthesis… 😳

      Uso Classicthesis con il pacchetto minitoc. Vorrei che la scritta “Indice” di ciascun mini-indice venisse scritta in “spacedlowsmallcaps”, che è -almeno credo!- il “font” con cui vengono composte le testatine, i titoli delle sezioni, il nome dell’autore nel frontespizio, …

      Ci sono quasi:
      `\renewcommand{\mtifont}{\normalsize\scshape}`
      produce un risultato molto vicino all’ariginale, senonché la “i” iniziale di “Indice” è più grande rispetto alle altre lettere della parola, e quindi il “carattere” non è lo spacedlowsmallcaps che vorrei. Neppure
      `\renewcommand{\mtifont}{\normalsize\scshape\lsstyle }`
      risolve.

      Uso Classicthesis con le opzioni:
      `\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
      cleardoubleempty,abstractoff,pointlessnumbers,
      headinclude,footexclude,BCOR5mm]{scrreprt}

      \usepackage{classicthesis-ldpkg}
      \usepackage[eulerchapternumbers,subfigure,beramono,eulermath]{classicthesis}

      \DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[170]{#1}}}
      \DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[90]{#1}}}
      `
      con il file classicthesis.sty modificato in modo da eliminare tutta la parte relativa a soul (André mi ha “promesso” che la prossima versione dello stile conterrà questa modifica).

      Grazie mille,
      Lorenzo

    Visualizzazione 9 filoni di risposte
    • Autore
      Risposte
      • #14217
        Up
        0
        Down
        ::

        Ancora ciao… e ancora (una finezza su) Classicthesis… 😳

        Uso Classicthesis con il pacchetto minitoc. Vorrei che la scritta “Indice” di ciascun mini-indice venisse scritta in “spacedlowsmallcaps”, che è -almeno credo!- il “font” con cui vengono composte le testatine, i titoli delle sezioni, il nome dell’autore nel frontespizio, …

        Ci sono quasi:
        `\renewcommand{\mtifont}{\normalsize\scshape}`
        produce un risultato molto vicino all’ariginale, senonché la “i” iniziale di “Indice” è più grande rispetto alle altre lettere della parola, e quindi il “carattere” non è lo spacedlowsmallcaps che vorrei. Neppure
        `\renewcommand{\mtifont}{\normalsize\scshape\lsstyle }`
        risolve.

        Uso Classicthesis con le opzioni:
        `\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
        cleardoubleempty,abstractoff,pointlessnumbers,
        headinclude,footexclude,BCOR5mm]{scrreprt}

        \usepackage{classicthesis-ldpkg}
        \usepackage[eulerchapternumbers,subfigure,beramono,eulermath]{classicthesis}

        \DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[170]{#1}}}
        \DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[90]{#1}}}
        `
        con il file classicthesis.sty modificato in modo da eliminare tutta la parte relativa a soul (André mi ha “promesso” che la prossima versione dello stile conterrà questa modifica).

        Se non gli chiedi di usare \spacedlowsmallcaps, come fa a sapere che lo vuoi?

        Credo che il modo migliore sia di dirgli
        `\def\ptctitle{indice}
        \def\mtctitle{indice}
        \def\stctitle{indice}`
        dopo aver caricato minitoc e di usare la seconda definizione (con \lsstyle). In questo modo l’iniziale è minuscola.

        Ciao
        Enrico

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

          Se non gli chiedi di usare \spacedlowsmallcaps, come fa a sapere che lo vuoi?

          Credo che il modo migliore sia di dirgli
          `\def\ptctitle{indice}
          \def\mtctitle{indice}
          \def\stctitle{indice}`
          dopo aver caricato minitoc e di usare la seconda definizione (con \lsstyle). In questo modo l’iniziale è minuscola.

          Grazie Enrico, funziona! Avevo provato in tanti modi a usare il comando \spacedlowsmallcaps, ma non sono risucito a “dirlo a LaTeX in modo corretto”.

          Da quello che capisco, il comando \scshape seleziona il maiscoletto, \lsstyle produce la spaziatura e l’inziale minuscola viene ottenuta ridefinendo ad hoc la “i”.

          Mi resta una curiosità. In Classicthesis ci sono tantissime scritte in spacedlowsmallcaps. Oltre ai casi che dicevo, se scrivo un articolo le voci “Indice” e “Riferimenti bibliografici” sono già in spacedlowsmallcaps, senza bisogno di fare alcun aggiustamento “manuale”. Evidentemente, ci sarà una parte del codice che dice: “metti tutte le scritte in spacedlowsmallcaps”. Io però non l’ho trovata”. 😳 Ecco, sarebbe forse più elegante dire “metti anche la voce Indice dei mini-Indici nell’elenco delle cose da mettere in spacedlowsmallcaps”!

          Ad ogni modo, la tua soluzione funziona benissimo!

          Ciao e grazie,
          L.

        • #14219
          Up
          0
          Down
          ::

          Grazie Enrico, funziona! Avevo provato in tanti modi a usare il comando \spacedlowsmallcaps, ma non sono risucito a “dirlo a LaTeX in modo corretto”.

          Da quello che capisco, il comando \scshape seleziona il maiscoletto, \lsstyle produce la spaziatura e l’inziale minuscola viene ottenuta ridefinendo ad hoc la “i”.

          Mi resta una curiosità. In Classicthesis ci sono tantissime scritte in spacedlowsmallcaps. Oltre ai casi che dicevo, se scrivo un articolo le voci “Indice” e “Riferimenti bibliografici” sono già in spacedlowsmallcaps, senza bisogno di fare alcun aggiustamento “manuale”. Evidentemente, ci sarà una parte del codice che dice: “metti tutte le scritte in spacedlowsmallcaps”. Io però non l’ho trovata”. 😳 Ecco, sarebbe forse più elegante dire “metti anche la voce Indice dei mini-Indici nell’elenco delle cose da mettere in spacedlowsmallcaps”!

          Ad ogni modo, la tua soluzione funziona benissimo!

          Dubito che si riesca a far digerire a minitoc qualcosa di diverso, è un pacchetto molto complesso.

          La tua curiosità è presto soddisfatta: guarda classicthesis.sty.

          Alle righe 200-209 definisce i comandi per i titoli di capitolo e sezione; alla riga 211 il comando per le etichette di description; alle 228-229 quelli per le testatine. Alle righe 318-336 fa qualche trucchetto per l’indice.

          Il problema è che \spacedlowsmallcaps non è un dichiarazione, ma un comando con argomento. Questo ne limita le possibilità di uso.

          Ciao
          Enrico

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


            Chiarissimo. Grazie Emille Enrico! 😀

            Ciao,
            Lorenzo

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

              Il problema è che \spacedlowsmallcaps non è una dichiarazione, ma un comando con argomento. Questo ne limita le possibilità di uso.

              Riprendo questo topic perché, nella mia esperienza d’uso, mi sono accorto che sarebbe molto utile una dichiarazione che faccia lo stesso servizio di \spacedlowsmallcaps, che come osserva Enrico è un comando con argomento. Finora ho usato \lsstyle insieme con il trucco di mettere manualmente la voce in minuscolo. Davvero non c’è altro modo?

              Grazie mille,
              L.

            • #14222
              Up
              0
              Down
              ::

              Il problema è che \spacedlowsmallcaps non è una dichiarazione, ma un comando con argomento. Questo ne limita le possibilità di uso.

              Riprendo questo topic perché, nella mia esperienza d’uso, mi sono accorto che sarebbe molto utile una dichiarazione che faccia lo stesso servizio di \spacedlowsmallcaps, che come osserva Enrico è un comando con argomento. Finora ho usato \lsstyle insieme con il trucco di mettere manualmente la voce in minuscolo. Davvero non c’è altro modo?

              Temo proprio di no, finché non ci sarà un font “tutto minuscolo” e uno “tutto maiuscolo” o un modo meno “barbaro” di convertire da maiuscolo a minuscolo e viceversa. Si può fare con XeTeX e certi font otf. Ma allora ti scordi di comporre matematica. 🙁

              Ciao
              Enrico

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

                Temo proprio di no, finché non ci sarà un font “tutto minuscolo” e uno “tutto maiuscolo” o un modo meno “barbaro” di convertire da maiuscolo a minuscolo e viceversa. Si può fare con XeTeX e certi font otf. Ma allora ti scordi di comporre matematica. 🙁

                Grazie mille Enrico, sei chiarissimo e risolutivo come sempre!

                Scusami se continuo questa discussione sul comando \spacedlowsmallcaps. Ho creato con makebst uno stile bibliografico personalizzato che, fra l’altro, pone il nome degli autori in maiuscoletto. Per omogeneità con il resto del documento, vorrei trasformare questo maiuscoletto in spacedlowsmallcaps. Ho aperto il file .bst, ho cercato “sc” e ho visto che l’unico punto in cui si menziona il maiuscoletto è questo:
                `FUNCTION {scaps}
                { duplicate$ empty$
                { pop$ “” }
                { “\textsc{” swap$ * “}” * }
                if$
                }
                `
                Ho semplicemente rimpiazzato queste righe con
                `FUNCTION {scaps}
                { duplicate$ empty$
                { pop$ “” }
                { “\spacedlowsmallcaps{” swap$ * “}” * }
                if$
                }
                `
                ma evidentemente io e LaTeX ragioniamo in maniera diversa:
                `[67]) [68] (./FrontBackmatter/Bibliografia.tex (./Distribuzioni.bbl
                (./Distribuzioni.brf)
                ! Undefined control sequence.
                arbogast, l.z
                f.
                l.17

                ?
                `
                Questo errore con il vecchio stile bibliografico non veniva generato. Se procedo con la compilazione la bibliografia viene generata, ma è tutta “pasticciata”, con i titoli delle opere e le case editrici a volte in maiuscoletto a volte no. 😯

                Ho anche provato a sostituire manualmente \spacedlowsmallcaps nel file .bbl al posto dei vari \textsc, ma si presenta lo stesso problema.

                C’è modo di risolvere la cosa?

                Ciao e grazie ancora,
                Lorenzo

              • #14224
                Up
                0
                Down
                ::

                Scusami se continuo questa discussione sul comando \spacedlowsmallcaps. Ho creato con makebst uno stile bibliografico personalizzato che, fra l’altro, pone il nome degli autori in maiuscoletto. Per omogeneità con il resto del documento, vorrei trasformare questo maiuscoletto in spacedlowsmallcaps. Ho aperto il file .bst, ho cercato “sc” e ho visto che l’unico punto in cui si menziona il maiuscoletto è questo:
                `FUNCTION {scaps}
                { duplicate$ empty$
                { pop$ “” }
                { “\textsc{” swap$ * “}” * }
                if$
                }`
                Ho semplicemente rimpiazzato queste righe con
                `FUNCTION {scaps}
                { duplicate$ empty$
                { pop$ “” }
                { “\spacedlowsmallcaps{” swap$ * “}” * }
                if$
                }`
                ma evidentemente io e LaTeX ragioniamo in maniera diversa:
                `[67]) [68] (./FrontBackmatter/Bibliografia.tex (./Distribuzioni.bbl
                (./Distribuzioni.brf)
                ! Undefined control sequence.
                arbogast, l.z
                f.
                l.17

                ?`
                Questo errore con il vecchio stile bibliografico non veniva generato. Se procedo con la compilazione la bibliografia viene generata, ma è tutta “pasticciata”, con i titoli delle opere e le case editrici a volte in maiuscoletto a volte no. 😯

                Ho anche provato a sostituire manualmente \spacedlowsmallcaps nel file .bbl al posto dei vari \textsc, ma si presenta lo stesso problema.

                C’è modo di risolvere la cosa?

                Mi pare bizzarro quel messaggio di errore: induce a pensare che “z” sia un carattere attivo e non capisco dove lo sia diventato. Difficile fare una diagnosi a distanza senza vedere il contesto.

                Prova a rispondere a quel messaggio di errore con
                `i\showthe\catcode`\z`
                Ti dovrebbe rispondere con un numero, non necessariamente subito.

                Ciao
                Enrico

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


                  Ciao Enrico, questo è un documento minimale che riproduce il problema:
                  `\documentclass{scrreprt}
                  \usepackage{classicthesis-ldpkg}
                  \usepackage[eulerchapternumbers,subfigure,beramono,eulermath]{classicthesis}
                  \begin{document}
                  \bibliographystyle{classic}
                  \bibliography{/Users/Lorenzo/Documents/Documenti_LaTeX/mat}
                  \nocite{bell:matematici}
                  \end{document}
                  `
                  dove
                  `
                  @BOOK{bell:matematici,
                  AUTHOR = {E.~T.~Bell},
                  TITLE = {I grandi matematici},
                  PUBLISHER = {Sansoni},
                  YEAR = {1988, ed.~or.~1937},
                  ADDRESS = {Firenze}
                  }
                  `
                  La cosa strana è che la voce del file bbl è
                  `\bibitem[{Bell(1937)}]{bell:matematici}
                  \spacedlowsmallcaps{Bell, E.~T.} (1988, ed.~or.~1937), \emph{I grandi
                  matematici}, Sansoni, Firenze.
                  `
                  che mi pare perfetta, eppure nel pdf finale “Sansoni” e “Firenze” sono in small caps (neanche in spacedlowsmallcaps)! 😯 😥

                  La risposta del compilatore al codice che mi hai scritto è
                  `! Undefined control sequence.
                  bell, e.z
                  t.
                  l.15

                  ? i\showthe\catcode`\z
                  > 11.

                  t
                  l.15

                  ?
                  )
                  `
                  Ti invio anche un paio di warning nel log:
                  `pdfTeX warning (font expansion): font should be expanded before its first use
                  Package microtype Info: Character `029' is missing in font
                  (microtype) `T1/pplj/m/sc/10'. Ignoring protrusion settings
                  (microtype) for this character.

                  pdfTeX warning (font expansion): font should be expanded before its first use
                  ! Undefined control sequence.
                  bell, e.z
                  t.
                  l.15

                  ?
                  )
                  `
                  Grazie,
                  L.

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


                    Mi è venuta un’idea. Deve essere il comando \spacedlowsmallcaps che “non sta capito”! Ho provato ad aggiungere manualmente un paio di parentesi graffe
                    `{\spacedlowsmallcaps{Bell, E.~T.}}`
                    e adesso il pdf è corretto, anche se ricevo sempre quell’errore (non fatale) in compilazione.

                    Questo comando \spacedlowsmallcaps si comporta un po’ come una dichiarazione, un po’ come un comando con argomento…

                    Mah!

                    Ricordo che ho ridefinito i comandi in questo modo:
                    `\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[170]{#1}}}
                    \DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[90]{#1}}}`
                    L.

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

                Go to top