RISOLTO [Beamer] Italiano non riconosciuto con \input

  • Creatore
    Topic
  • #74602
    Up
    0
    Down
    ::


    Buonasera forum,

    Sto scrivendo la mia prima presentazione con la classe beamer, grazie anche all’aiuto di Lorenzo Pantieri e delle sue Arti.

    Poiché l’ho già fatto con altri lavori tramite la classe book o article, ho preparato un grande file da compilare che funge da “contenitore”, al cui interno c’è il preambolo e tutta una serie di \input che rimandano ognuno ad uno o un gruppo di frame creati su file testuali a parte. Premetto che, come sempre, ho caricato correttamente babel e tutti i pacchetti per la lingua italiana.

    La cosa davvero curiosa è che se inserisco caratteri tipo à, è e simili nei file inclusi me li compila male! Cioè, escono fuori caratteri completamente sballati e a caso, come se non avessi caricato babel o inputenc. Se invece elimino \input e copio lo STESSO blocco di codice all’interno del file contenitore che compilo, non da nessun errore di compilazione e i caratteri sono giusti. Com’è possibile?

    Preciso che uso pdflatex e TeXStudio 2.3 con TeX Live 2011 su Windows 7 64 bit.

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #74603
      Up
      0
      Down
      ::


      Ciao,
      il problema è stato più e più volte dibattuto sul forum. Non c’entra la lingua italiana, bensì la codifica con cui vengono scritti i file. Devi assicurarti che la codifica del file, la codifica che specifichi con [tt]inputenc[/tt] e la codifica che è specificata nelle opzioni dell’editor combacino. Evidentemente questo è vero per il tuo file master, ma non per gli altri che carichi tramite [tt]\input[/tt], per questo se il testo lo scrivi nel master non hai problemi, mentre se è scritto nei figli si. TeXStudio dovrebbe mostrare la codifica con cui è scritto il file in basso a destra (se non ricordo male). La cosa più semplice da fare è creare un nuovo file per ogni file sbagliato con la codifica giusta e incollarci dentro il testo.

      Ciao
      Fra

    • #74604
      Up
      0
      Down
      ::

      Spike” post=73761Ciao,
      il problema è stato più e più volte dibattuto sul forum. Non c’entra la lingua italiana, bensì la codifica con cui vengono scritti i file. Devi assicurarti che la codifica del file, la codifica che specifichi con [tt]inputenc[/tt] e la codifica che è specificata nelle opzioni dell’editor combacino. Evidentemente questo è vero per il tuo file master, ma non per gli altri che carichi tramite [tt]\input[/tt], per questo se il testo lo scrivi nel master non hai problemi, mentre se è scritto nei figli si. TeXStudio dovrebbe mostrare la codifica con cui è scritto il file in basso a destra (se non ricordo male). La cosa più semplice da fare è creare un nuovo file per ogni file sbagliato con la codifica giusta e incollarci dentro il testo.

      Ciao
      Fra

      Bene, quindi è un problema di TeXStudio. Scusami, ma non ho ancora capito come risolvere però, se non inserendo il codice nel file master.

      Nel file master in basso a destra leggo diverse scritte, tra cui ISO-8859-1, mentre i file figli hanno UTF-8. Se è questo il problema, perchè TeXStudio quando creo un nuovo file lo codifica così? Come posso risolvere? Grazie della risposta.

    • #74605
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Appunto; il master è codificato in ISO8859-1 e probabilmente inputenc ha l’opzione latin1; i file subalterni sono scritti con TeXstudio impostato di default per usare UTF-8, e sono salvati con quella codifica. Dunque quando lo inglobi con \input, pdflatex legge un file che crede essere scritto in latin1, mentre invece è scritto con un’altra codifica.

        Per pdflatex quello che conta è l’opzione data a inputennc. Per TeXstudio quello che conta è la sua impostazione specificata nelle preferenze; come fare a risolvere? dipende: se vuoi mantenere i file subalterni separati devi copiarli dai file attuali e incollarli dentro file nuovi per i quali tu abbia preimpostato l’editor alla codifica ISO8859-1. Se non ti interessa tenerli separati, allora li puoi effettivamaente copiare e incollare nel file master.

      • #74606
        Up
        0
        Down
        ::


        La ISO-8859-1 corrisponde alla codifica [tt]latin1[/tt]. Se è così deduco che nel preambolo hai scritto
        `\usepackage[latin1]{inputenc}`
        giusto? La cosa migliore invece è passare tutto ad UTF-8. Vai nelle impostazioni di TeXStudio e vedi qual è la codifica di default impostata dal programma. Se è qualcosa di diverso da UTF-8, cambia in UTF-8. Fatto questo crea un nuovo file vuoto (a questo punto dovrebbe essere codificato UTF-8 ) e copiaci tutto il contenuto del file master, cambiando però la codifica passata a [tt]inputenc[/tt] con [tt]utf8[/tt]. Fatto questo dovresti evitare i problemi.
        Comunque ti consiglio di leggere la parte sulla codifica dei file che c’è in tutte le guide, così da chiarirti meglio le idee.

        Ciao
        Fra

        EDIT: anticipato

      • #74607
        Up
        0
        Down
        ::


        Grazie a tutti per le risposte, finalmente ho capito cos’era successo!

        Avendo già prodotto altri documenti in LaTeX per cui avevo scelto e configurato tutti i pacchetti che uso di solito, ho copia-incollato il preambolo e l’ho anche ricontrollato eliminando o aggiungendo pacchetti, ma non mi sono reso conto che la codifica di inputenc fosse incompatibile con la UTF-8 di default di TeXStudio. Ho capito anche come cambiarla dalle opzioni, ma non è più necessario: meglio che rimanga UTF-8. Ora tutto funziona come deve e \input fa il suo dovere (anche prima lo faceva, in effetti… -.-)

        Anche se TeXStudio di default crea file in UTF-8, avendo io inserito latin1 come codifica nel file master, dopo la prima compilazione ho probabilmente “suggerito” al programma di impostare la codifica in ISO-8859-1 e da qui l’incompatibilità con i file UTF-8 inclusi, presumo.

        Grazie!

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

    Go to top