LaTeX Error: This NFSS system isn’t set up properly.

  • Creatore
    Topic
  • #647
    Up
    0
    Down
    ::


    Ciao a tutti,
    ho qualche piccolo problema con un font Helvetica che non vuole caricarsi nel pacchetto semhelv. Uso Debian Linux con teTeX e in realtà sto usando la classe prosper, lanciando il semplice LaTeX. L’errore è abbastanza comune, anche con altre classi e pacchetti; quindi lo voglio sistemare una volta per tutte e so che qui c’è qualcuno che lo sa fare… (E. non fare 🙄 ). L’errore specifico che mi viene mandato in output è:`
    No file OT2helvetica.fd.

    ! LaTeX Error: This NFSS system isn't set up properly.

    See the LaTeX manual or LaTeX Companion for explanation.
    Type H for immediate help.

    l.197 \begin{document}

    ? H
    For encoding scheme OT2 the defaults helvetica/m/n do not form a valid
    font sha
    pe
    `.
    Ho provato a vedere se l’errore se ne andava chiamando un \usepackage[T1]{fontenc} ma non funziona.
    Non so perché, ma ho come l’impressione che si tratti di un nome scritto male in qualche file di stile… me lo fa pensare il fatto che non ho mai sentito la codifica OT2, ma potrei anche sbagliarmi. Solo non so dove mettere le mani a cercare (ho già dato un’occhiata a semhelv.sty e npsfont.sty). Se sto prendendo una grossa cantonata ditemelo, per favore :D, e se siete “in possesso” della soluzione, rendetemene partecipe.
    Grazie a tutti.

Visualizzazione 12 filoni di risposte
  • Autore
    Risposte
    • #648
      ev
      Partecipante
        Up
        0
        Down
        ::


        Ciao,

        🙄 🙄 Scusatemi in anticipo per le lettere accentate, ma ho solo una tastiera americana 🙁

        ho qualche piccolo problema con un font Helvetica che non vuole caricarsi nel pacchetto semhelv. Uso Debian Linux con teTeX e in realtà sto usando la classe prosper

        Inizierei ad escludere responsabilita’ di prosper: l’ho usato piu’ di qualche volta e non mi ha mai dato alcun problema (soprattutto non di questo tipo, ma forse stiamo parlando di due versioni diverse dello stesso pacchetto: una greppata sul codice disponibile dal cvs di prosper non restituisce alcuna occorrenza di OT2).

        L’errore è abbastanza comune, anche con altre classi e pacchetti;

        Come sarebbe a dire “con altre classi”?!?!? LaTeX dovrebbe utilizzare di default l’encoding OT1, non l’OT2; se ti capita cosi’ spesso c’e’ proprio qualche cosa di gravemente errato nella configurazione generale del tuo teTeX.

        L’errore specifico che mi viene mandato in output è:`
        No file OT2helvetica.fd.

        ! LaTeX Error: This NFSS system isn't set up properly.

        See the LaTeX manual or LaTeX Companion for explanation.
        Type H for immediate help.

        l.197 \begin{document}

        ? H
        For encoding scheme OT2 the defaults helvetica/m/n do not form a valid
        font sha
        pe
        `

        Riassunto del codice: cerca di caricare il file incriminato OT2helvetica.fd che dovrebbe contenere le descrizioni che permetterebbero di associare i font giusti alle richieste dell’utente, ma questo dovrebbe accedere solo se l’encoding attivo in quel momento fosse l’OT2; non trovando il file non riesce a trasformare le richieste dell’utente in nomi di font e quindi si ferma con quell’errore.

        Ho provato a vedere se l’errore se ne andava chiamando un \usepackage[T1]{fontenc} ma non funziona.
        Non so perché, ma ho come l’impressione che si tratti di un nome scritto male in qualche file di stile… me lo fa pensare il fatto che non ho mai sentito la codifica OT2, ma potrei anche sbagliarmi.

        Si mette male 🙁 OT2 e’ uno degli encoding usati per l’alfabeto cirillico. Il pacchetto fontenc puo’ essere usato piu’ volte nello stesso documento e l’encoding attivo e’ sempre quello dell’ultima invocazione: il fatto che il tuo sistema di “ostini” ad usare l’OT2 fa pensare che fontenc venga richiamato da qualche altra parte con l’opzione OT2.

        Curiosita’:

        1. quale versione di teTeX stai usando?

        2. stai usando qualche pacchetto “strano”?

        3. non e’ che hai combinato qualche pasticcio con la tua Debian unstable? 🙂

        Se sto prendendo una grossa cantonata ditemelo, per favore :D, e se siete “in possesso” della soluzione, rendetemene partecipe.

        Come vedi di soluzioni non ne ho, ma non disperare: riusciremo a fare qualche cosa. Inizia con il rispondere a quelle tre domande e poi vedremo di risolvere ‘sta grana.

      • #649
        Up
        0
        Down
        ::

        Ciao,

        🙄 🙄 Scusatemi in anticipo per le lettere accentate, ma ho solo una tastiera americana 🙁

        Sarai picchiato selvaggiamente 😉 Hai già provato a mettere prima l’accento e poi la lettera? Si?! Allora è una tastiera americana s*****a!!

        L’errore è abbastanza comune, anche con altre classi e pacchetti;

        Come sarebbe a dire “con altre classi”?!?!? LaTeX dovrebbe utilizzare di default l’encoding OT1, non l’OT2; se ti capita cosi’ spesso c’e’ proprio qualche cosa di gravemente errato nella configurazione generale del tuo teTeX.

        Ho sbagliato a scrivere, scusa. In realtà mi ricordo che mi succedeva in passato con alcuni documenti includenti hierotex8) e qualche altro pacchetto… se vuoi ricerco conferme, ma… un problema alla volta…

        L’errore specifico che mi viene mandato in output è:`
        No file OT2helvetica.fd.

        ! LaTeX Error: This NFSS system isn't set up properly.

        See the LaTeX manual or LaTeX Companion for explanation.
        Type H for immediate help.

        l.197 \begin{document}

        ? H
        For encoding scheme OT2 the defaults helvetica/m/n do not form a valid
        font sha
        pe
        `

        Riassunto del codice: cerca di caricare il file incriminato OT2helvetica.fd che dovrebbe contenere le descrizioni che permetterebbero di associare i font giusti alle richieste dell’utente, ma questo dovrebbe accedere solo se l’encoding attivo in quel momento fosse l’OT2; non trovando il file non riesce a trasformare le richieste dell’utente in nomi di font e quindi si ferma con quell’errore.

        Ho provato a vedere se l’errore se ne andava chiamando un \usepackage[T1]{fontenc} ma non funziona.
        Non so perché, ma ho come l’impressione che si tratti di un nome scritto male in qualche file di stile… me lo fa pensare il fatto che non ho mai sentito la codifica OT2, ma potrei anche sbagliarmi.

        Si mette male 🙁 OT2 e’ uno degli encoding usati per l’alfabeto cirillico.

        Prima cosa: finora non mi sono mai interessato di alfabeto cirillico :shock:, né credo di aver mai installato font cirillici (a meno che non ne faccia default qualcuno dei pacchetti della Debian (ad esempio tetex-extra…).

        Il pacchetto fontenc puo’ essere usato piu’ volte nello stesso documento e l’encoding attivo e’ sempre quello dell’ultima invocazione: il fatto che il tuo sistema di “ostini” ad usare l’OT2 fa pensare che fontenc venga richiamato da qualche altra parte con l’opzione OT2.

        D’accordo, questo non fa che confermare l’ipotesi che si tratti di un file di stile “corrotto”.

        Curiosita’:

        • quale versione di teTeX stai usando?

        La Debian credo funzioni a parte; smonta (credo, non ne sono sicuro :cry:) tetex in più pacchetti diversi. Comunque, tetex-base, tetex-bin e tetex-extra in versione 2.0.2-2, che credo corrispondano al teTeX 2 o 1.1 (possibile 😕 )

        • stai usando qualche pacchetto “strano”?

        Ecco il preambolo:
        `
        \documentclass[final,pdf,contemporain,slideColor,colorBG,accumulate,nototal]{prosper}
        \usepackage[italian]{babel}
        \usepackage{eurosym}
        \DefaultTransition{Wipe}
        \usepackage{hyperref}% non credo sia questo il problema, l'ho aggiunto in seguito; opzioni da hyperref.cfg:
        % ps2pdf,dvips,colorlinks=true,urlcolor=blue,linkcolor=red

        % Ho saltato titolo e tutto il resto

        \begin{document}
        `

        • non e’ che hai combinato qualche pasticcio con la tua Debian unstable? 🙂

        🙄 Ehm… si, sono passato dall’unstable alla stable…:roll::roll::roll: comunque tutti i pacchetti riguardanti teTeX risalgono alla unstable, non li ho riaggiornati… quindi l’errore dovrebbe essere nella unstable se non esiste nella stable… non posso controllare perché dovrei disinstallare tutto teTeX per reinstallarlo con i pacchetti della stable (che si è fermata alla versione precedente del TeX) 🙁 :cry:. Può essere che faccia casino si, per ora ha sempre funzionato tutto…

        Se sto prendendo una grossa cantonata ditemelo, per favore :D, e se siete “in possesso” della soluzione, rendetemene partecipe.

        Come vedi di soluzioni non ne ho, ma non disperare: riusciremo a fare qualche cosa. Inizia con il rispondere a quelle tre domande e poi vedremo di risolvere ‘sta grana.

        Un’occhiata a texmf/tex/generic/babel/italian.ldf (che è l’unico dei files che LaTeX si carica che a un “cat – | grep OT2” risponde affermativamente) mostra:
        `
        \newif\if@CyrEncKnown
        \IfFileExists{ot2cmr.fd}%
        {\@CyrEncKnowntrue\DeclareFontEncoding{OT2}{}{}}%
        {\@CyrEncKnownfalse}%
        \DeclareRobustCommand*{\ItalianWarning}{%
        \GenericWarning{(Italian Option)\space\space}%
        {Italian Option Warning: No Cyrillic fonts available\MessageBreak
        LaTeX Symbol approximation will be used for caporali}}%
        \DeclareRobustCommand*{\CapAperti}{%
        \if@CyrEncKnown
        {\fontencoding{OT2}\fontfamily{wncyr}\selectfont\char60}%
        \else
        \ItalianWarning
        {\fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
        \fi
        }%
        \DeclareRobustCommand*{\CapChiusi}{%
        \if@CyrEncKnown
        {\fontencoding{OT2}\fontfamily{wncyr}\selectfont\char62}%
        \else
        \ItalianWarning
        {\fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}%
        \fi
        }%
        `
        Nient’altro, almeno con il cat e il grep… 🙁
        Mah, speriamo che bastino e che non sia un problema della Debian… Ah, credo di averlo perso per strada: problema di prosper non credo sia… piuttosto di uno dei pacchetti che carica… Mah. Sono nelle tue mani… 🙂
        Ciao e grazie.

      • #650
        ev
        Partecipante
          Up
          0
          Down
          ::


          Ciao,

          Sarai picchiato selvaggiamente 😉 Hai già provato a mettere prima l’accento e poi la lettera? Si?! Allora è una tastiera americana s*****a!!

          No ho mai provato. Sarà per la prossima volta.

          Passiamo al tuo problema: non si tratta di un file di stile “corrotto” ne, tantomeno, di pasticci tuoi o della Debian: prova a togliere il pacchetto babel dall’esempio e ricompila (dopo aver eliminato *.aux); dovrebbe funzionare tutto a meraviglia (ovviamente, non è una soluzione fattibile perché babel ti serve).

          Un’occhiata a texmf/tex/generic/babel/italian.ldf (che è l’unico dei files che LaTeX si carica che a un “cat – | grep OT2” risponde affermativamente) mostra:
          `
          \newif\if@CyrEncKnown
          \IfFileExists{ot2cmr.fd}%
          {\@CyrEncKnowntrue\DeclareFontEncoding{OT2}{}{}}%
          {\@CyrEncKnownfalse}%
          \DeclareRobustCommand*{\ItalianWarning}{%
          \GenericWarning{(Italian Option)\space\space}%
          {Italian Option Warning: No Cyrillic fonts available\MessageBreak
          LaTeX Symbol approximation will be used for caporali}}%
          \DeclareRobustCommand*{\CapAperti}{%
          \if@CyrEncKnown
          {\fontencoding{OT2}\fontfamily{wncyr}\selectfont\char60}%
          \else
          \ItalianWarning
          {\fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
          \fi
          }%
          \DeclareRobustCommand*{\CapChiusi}{%
          \if@CyrEncKnown
          {\fontencoding{OT2}\fontfamily{wncyr}\selectfont\char62}%
          \else
          \ItalianWarning
          {\fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}%
          \fi
          }%
          `
          Nient’altro, almeno con il cat e il grep… 🙁

          Piccolo appunto: basta dare un `grep ` senza scomodare cat. Come vedi, alla fin fine, da qualche parte l’encoding OT2 salta fuori. Per una soluzione, alla prossima puntata.

        • #651
          ev
          Partecipante
            Up
            0
            Down
            ::


            Ciao,

            Dopo una bella dormita mi è venuta un’altra idea, ma per verificarla…

            prova a togliere il pacchetto babel dall’esempio e ricompila (dopo aver eliminato *.aux); dovrebbe funzionare tutto a meraviglia (ovviamente, non è una soluzione fattibile perché babel ti serve).

            Curiosità: usi i caporali da qualche parte nel file? In caso affermativo, prova a toglierli (senza rimuovere babel); ho una mezza idea…

          • #652
            Up
            0
            Down
            ::

            prova a togliere il pacchetto babel dall’esempio e ricompila (dopo aver eliminato *.aux); dovrebbe funzionare tutto a meraviglia (ovviamente, non è una soluzione fattibile perché babel ti serve).

            Fatto. Si, hai ragione, funziona. Quindi, il problema è di babel, o meglio di italian.ldf.

            Curiosità: usi i caporali da qualche parte nel file? In caso affermativo, prova a toglierli (senza rimuovere babel); ho una mezza idea…

            No, purtroppo non ho mai usato i “caporali”: devi considerare inoltre che sono delle slides, quindi non è che ci siano molte potenzialità da utilizzare (a parte il grassetto, il corsivo e le virgolette, cos’altro serve?:D). Credo di averti capito: forse i caporali risiedono nel font di tipo OT2? O questa è la più grossa ca****a che ho sparato finora?
            Ciao e grazie ancora.

          • #653
            ev
            Partecipante
              Up
              0
              Down
              ::

              Credo di averti capito: forse i caporali risiedono nel font di tipo OT2? O questa è la più grossa ca****a che ho sparato finora?

              Invece hai detto proprio bene 😀

              Il codice di italian.ldf che hai riportato, se desume tu sia in grado di usare l’encoding OT2 usa proprio un font con quella codifica, altrimenti emette uno warning e cerca di rattoppare la faccenda in altro modo.

            • #654
              Up
              0
              Down
              ::

              Il codice di italian.ldf che hai riportato, se desume tu sia in grado di usare l’encoding OT2 usa proprio un font con quella codifica, altrimenti emette uno warning e cerca di rattoppare la faccenda in altro modo.

              A questo punto mi sorge spontanea una domanda. C’è un modo per overridare il default di babel e forzarlo a prendersi i guillermot dell’encoding T1 (che abbiamo capito essere i migliori fra le proposte per i “caporali”?) Qualcosa del tipo:
              `
              \DeclareTextSymbolDefault{\guillermotleft}{T1}
              \DeclareTextSymbolDefault{\guillermotright}{T1}
              `
              O anche questa è una grossa st******a? Il problema non si porrebbe utilizzando \usepackage[T1]{fontenc}, ma sono troppo attaccato all’OT1 :cry:… Siccome ho riportato il codice dando un’occhiata a textcomp, non sono assolutamente (anzi, per niente) sicuro di ciò che ho scritto. Qui comprendo che mi sarei già da tempo dovuto dedicare un po’ più seriamente a un Kopka-Dali, ma lo farò prossimamente, lo giuro! 😀
              Ciao e ancora grazie.

            • #655
              ev
              Partecipante
                Up
                0
                Down
                ::

                A questo punto mi sorge spontanea una domanda. C’è un modo per overridare il default di babel e forzarlo a prendersi i guillermot dell’encoding T1

                Ok, prova con quanto segue in congiunzione con babel e l’opzione italian aggiungendolo nel preambolo, ma tieni presente che non ho sotto mano prosper per verificarne l’efficacia
                `\AtBeginDocument{%
                \DeclareTextSymbol{\guillemotleft}{T1}{19}%
                \DeclareTextSymbol{\guillemotright}{T1}{20}%
                \DeclareRobustCommand*{\CapAperti}{\guillemotleft}%
                \DeclareRobustCommand*{\CapChiusi}{\guillemotright}%
                }%`
                Incrociamo le dita (dei piedi 😀 )

              • #656
                Up
                0
                Down
                ::

                Ok, prova con quanto segue in congiunzione con babel e l’opzione italian aggiungendolo nel preambolo, ma tieni presente che non ho sotto mano prosper per verificarne l’efficacia
                `\AtBeginDocument{%
                \DeclareTextSymbol{\guillemotleft}{T1}{19}%
                \DeclareTextSymbol{\guillemotright}{T1}{20}%
                \DeclareRobustCommand*{\CapAperti}{\guillemotleft}%
                \DeclareRobustCommand*{\CapChiusi}{\guillemotright}%
                }%`
                Incrociamo le dita (dei piedi 😀 )

                L’errore in oggetto risulta comunque… e va beh, credo dipenda dal babel/italian. Il problema è che a questo si aggiunge l’errore:
                `! LaTeX Error: Command \guillermotleft unavailable in encoding OT1.
                ! LaTeX Error: Command \guillermotright unavailable in encoding OT1.`
                nonostante abbia riportato il codice esattamente come da te descritto.
                Ho provato a ricompilarlo anche con uno stile di slides che non richiedeva l’utilizzo dei fonts helvetica ma da’ lo stesso errore… Ho anche provato a inserire, al termine del codice da te indicato, una riga inclusa in textcomp che aveva omesso che era:`\input ts1enc.def`, cambiando il file in t1enc.def, ma neanche così funziona…
                Quindi probabilmente il codice preso da textcomp non funziona… Deve esserci un altro modo per inserirlo. 🙁
                Diciamo che era solo una curiosità, non che mi servano i caporali per tenere questo seminario… Però sarebbe stato simpatico dare un’altro metodo all’amico che quella volta ha chiesto come inserire i caporali.

              • #657
                ev
                Partecipante
                  Up
                  0
                  Down
                  ::

                  L’errore in oggetto risulta comunque… e va beh, credo dipenda dal babel/italian

                  Ok, dimentica tutto quello che ho scritto prima 😕 L’errore originale salta fuori dall’interazione tra semhelv.sty (un pezzo di seminar usato da quasi tutti gli stili di prosper) ed il codice di italian.ldf per l’uso dei caporali. Tieni presente che non credo sia da biasimare il codice o l’autore di italian.ldf, piuttosto il fatto che seminar sembra un po’ abbandonato.

                  Per risolvere il problema (e questa volta mi sono preso la briga di provare la soluzione prima di proportela 😀 ) scriviti un microscopico, incompleto e “sporco” file *.sty e sbattici dentro quanto segue: `\DeclareFontFamily{OT2}{helvetica}{}%
                  \DeclareFontShape{OT2}{helvetica}{m}{n}{<->s*[\helv@scale]phvr7t}{}%
                  \DeclareFontShape{OT2}{helvetica}{m}{it}{<->s*[\helv@scale]phvro7t}{}%
                  \DeclareFontShape{OT2}{helvetica}{m}{sc}{<->s*[\helv@scale]phvrc7t}{}%
                  \DeclareFontShape{OT2}{helvetica}{b}{n}{<->s*[\helv@scale]phvb7t}{}%
                  \DeclareFontShape{OT2}{helvetica}{b}{it}{<->s*[\helv@scale]phvbo7t}{}%
                  \DeclareFontShape{OT2}{helvetica}{m}{sl}{<->ssub * helvetica/m/it}{}%
                  \DeclareFontShape{OT2}{helvetica}{b}{sc}{<->sub * helvetica/m/sc}{}%
                  \DeclareFontShape{OT2}{helvetica}{b}{sl}{<->ssub * helvetica/b/it}{}%
                  \DeclareFontShape{OT2}{helvetica}{bx}{n}{<->ssub * helvetica/b/n}{}%
                  \DeclareFontShape{OT2}{helvetica}{bx}{it}{<->ssub * helvetica/b/it}{}%
                  \DeclareFontShape{OT2}{helvetica}{bx}{sc}{<->sub * helvetica/m/sc}{}%
                  \DeclareFontShape{OT2}{helvetica}{bx}{sl}{<->ssub * helvetica/b/it}{}%`
                  Poi, includi nel solito modo ‘sto pacchetto scemo nel documento principale e ricompila (in alternativa, puoi infilare tutto quel codice direttamente nel preambolo, ma a quel punto viene meno la riusabilita’ del codice).

                  E’ ora che ammetta una grave colpa: il sistema che uso non e’ proprio aggiornatissimo e italian.ldf e’ fermo ad una versione precedente senza quel codice sui caporali, quindi non mi ero mai accorto del problema 😳 Per espiare questo “peccato” verro’ al prossimo GuIT meeting vestito di sacco come aveva detto Maurizio, ma i canti della Divina Commedia li ritrascrivero’ direttamente in PostScript senza passare dal via 😯

                • #658
                  Up
                  0
                  Down
                  ::


                  Non riporto il messaggio; confermo solo che ho ripreso in mano prosper e HA-prosper e il tuo pacchetto funziona a meraviglia.

                  Quello che quindi è necessario fare è copiare il codice indicato nel post precedente, scriverlo in un file .sty e quindi inserirlo nella directory locale o personale della propria distribuzione TeX e di utilizzarlo come si fa con un normale file di stile.

                  Grazie ancora ev! 😀

                • #659
                  Up
                  0
                  Down
                  ::


                  Riesumo il post, torna a non funzionare 🙁
                  In particolare, all’inserimento del codice che ev ha proposto, il sistema LaTeX mi risponde:`! LaTeX Error: Encoding scheme `OT2' unknown.

                  See the LaTeX manual or LaTeX Companion for explanation.
                  Type H for immediate help.

                  l.1 \DeclareFontFamily{OT2}{helvetica}{}
                  %`

                  Vi lascio le versioni dei pacchetti che utilizzo:
                  semhelv.sty: 1.4
                  italian.ldf: 1.2
                  prosper.cls: 1.24 (versione della classe, non del pacchetto)
                  HA-prosper.sty: 4.2

                  Uso Gentoo Linux 1.4 con teTeX 2.0.2.
                  Ecco il preambolo di prova:`\documentclass[pdf]{prosper}
                  \usepackage[toc,highlight,HA]{HA-prosper}
                  \usepackage{shbpatch} % Pacchetto con codice di ev
                  \usepackage[italian]{babel}
                  \usepackage[latin9]{inputenc}`

                  Mi spiace solo di non avere competenze sufficienti a fissare il bug.

                  Ciao

                • #660
                  Up
                  0
                  Down
                  ::


                  Come non detto. E’ solamente necessario caricare il pacchetto con il codice di ev dopo babel.

                  Ciao.

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

              Go to top