Altezza apostrofo

  • Creatore
    Topic
  • #109683
    samiel
    Partecipante
      Up
      0
      Down
      ::


      Nel comporre una bibliografia, dove i nomi degli autori sono in maiuscoletto,
      noto che l’apostrofo è troppo alto. Ho visto le soluzioni affacciate qui:
      http://tex.stackexchange.com/questions/82690/matching-punctuation-size-to-small-caps
      La prima soluzione funziona all’interno di un testo, ma qualora io abbia
      dei titoli in maiuscoletto nel testo ma normali nell’indice, l’apostofo viene abbassato
      anche nel secondo. Mi incuriosiva l’ultima soluzione proposta nella pagina
      che ho segnalato sopra, ovvero «to make the apostrophe an active character»,
      ma il codice mi produce un errore:
      `! LaTeX Error: Missing \begin{document}.
      See the LaTeX manual or LaTeX Companion for explanation.
      Type H for immediate help.

      l.12 \let\horn@s
      cshape\scshape
      ?`
      Risulta anche a voi?

      grazie
      m

    Visualizzazione 10 filoni di risposte
    • Autore
      Risposte
      • #109684
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Se hai messo quella equivalenza nel tuo preambolo, ci vuole prima un \makeatletter.

        • #109685
          samiel
          Partecipante
            Up
            0
            Down
            ::


            Qualcosa cmq l’ho costruita male:
            `\documentclass[a4paper,12pt]{article}

            \usepackage[T1]{fontenc}
            \usepackage[utf8]{inputenc}
            \usepackage[italian]{babel}

            \makeatletter
            \let\horn@scshape\scshape
            \def\scshape{\addfontfeature{Letters=UppercaseSmallCaps,Letters=SmallCaps,LetterSpace=2,WordSpace=1.2}%
            \let\horn@apos\horn@@apos}

            \def\horn@apos{'}
            \def\horn@@apos{\raisebox{-0.4ex}{\kern0.06em'}}

            % make ' (apostophe) active for the argument to chapter so we can lower it for small caps
            \let\horn@chapter\chapter
            \def\chapter{
            \begingroup
            \catcode`\'=\active\begingroup\lccode`\~=`\'\lowercase{\endgroup\def~{\protect\horn@apos}}
            \horn@@chapter
            }

            \def\horn@@chapter#1{%
            \horn@chapter{#1}
            \endgroup
            }
            \makeatother

            \begin{document}

            QUEL RAMO DELL'AGO DI COMO

            \textsc{quel ramo dell'ago di como}

            \end{document}`

          • #109686
            samiel
            Partecipante
              Up
              0
              Down
              ::


              In realtù il problema è dpvuto alla stringa in \textsc, che produce
              `! Undefined control sequence.
              \scshape ->\addfontfeature
              {Letters=UppercaseSmallCaps,Letters=SmallCaps,Let…
              l.33 \textsc{quel ramo dell'ago di como}`

              m

            • #109687
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                \addfontfeature è un comando definito dal pacchetto fontspec, usabile solo con xelatex e lualatex.

                O lavori con pdflatex e chiami un pacchetto di font che contenga il maiuscoletto (lmodern, fourier, kpfonts, neewtxtex, newpxtext, ed altri) o lavori con xelatex o lualatex e non imposti inputenc e fontenc, ma usi fontspec e imposti i font come meglio credi; di default, se non imposti nessuna famiglia particolare di font OpenType, vengono usati i Latin Modern OenType; i fotn della collezione TeX Gyre, dispongono tutti del maiuscoletto; i font Linux Libertine O, altrettanto; giusto per citare alcuni font di cui ogni installazione completa del sistema TeX dispone.

              • #109688
                samiel
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Che idiota… non me n’ero proprio accorto.
                  Ma le pene non sono finite:
                  `! fontspec error: “not-in-addfontfeatures”
                  !
                  ! The “WordSpace” font feature cannot be used in \addfontfeatures.
                  !
                  ! See the fontspec documentation for further information.
                  !
                  ! For immediate help type H .
                  !………………………………………..

                  l.44 \textsc{quel ramo dell'ago di como}

                  ? `
                  Da quello che ho capito si tratta di una caratteristica che non può usarsi
                  in questo modo, almeno secondo il manuale più recente di fontspec

                  m

                • #109689
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Si, si può usare, ma in modo diverso da LetterSpace; leggi la guida di fontspec cecando la parola WordSpace; ricordo di averlo fatto, ma ora non ritrovo più dove e come.

                  • #109690
                    samiel
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      La guida recita così:

                      14.3
                      Interword space
                      While the space between words can be varied on an individual basis with the TEX prim-
                      itive \spaceskip command, it is more convenient to specify this information when
                      the font is first defined.
                      The space in between words in a paragraph will be chosen automatically, and gener-
                      ally will not need to be adjusted. For those times when the precise details are important,
                      the WordSpace feature is provided, which takes either a single scaling factor to scale
                      the default value, or a triplet of comma-separated values to scale the nominal value,
                      the stretch, and the shrink of the interword space by, respectively. (WordSpace={x} is
                      the same as WordSpace={x,x,x}.)
                      Note that TEX’s optimisations in how it loads fonts means that you cannot use this
                      feature in \addfontfeatures.

                      L’uso sempra generale, infatti l’unico esempio della guida è:
                      `\fontspec{texgyretermes-regular.otf}%
                      [WordSpace = 0.3]`
                      Ma nel codice che ho riportato è usato proprio in \addfontfeatures, come evidentemente
                      non è (più) possibile fare. Nel medesimo codice, se capisco bene, tale caratteristica
                      è attribuita al solo maiuscoletto. E non ho idea se si possa mantenere in modo
                      così selettivo, ma aggiornando il codice alla caratteristiche attuali di fontspec

                      m

                    • #109691
                      OldClaudio
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Appunto, nell’esempio della documentazione NON è riportato come argomento di \addfontfeatures, ma come opzione di \fontspec.

                        Quello che puoi fare selettivamente è di definire un’altra famiglia di font che contenga il maiuscoletto, per esempio \spacedcaps dove nell’usare il comando \newfontfamily fra le opzioni segni anche il valore di WordSpace; così nel testo normale usi \scshape e nei titoli usi \spacecaps.

                      • #109692
                        samiel
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Sì, ho visto anche questa discussione:
                          http://tex.stackexchange.com/questions/290937/new-version-of-fontspec-gives-wordspace-error
                          ma lì la ridefinizione del font è semplice. In questo caso non ho idea del codice che serve
                          per ridefinire il font aggiungendo però il codice specifico per rendere carattere attivo l’apostrofo…

                          m

                        • #109693
                          OldClaudio
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Mi spiace, ma non sono in grado di dirti niente in merito.

                          • #109694
                            samiel
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Grazie lo stesso!
                              Ho postato qui il quesito
                              http://tex.stackexchange.com/questions/356921/matching-punctuation-size-to-small-caps-with-recent-fontspec

                              m

                              ADDENDUM
                              E al link ora è leggibile anche la soluzione,
                              codice per me inarrivabile dovuto all’infallibile egreg
                              che ringrazio anche qui

                              m

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

                          Go to top