Definizione comandi accentati con codifica utf8

  • Questo topic ha 17 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 16 anni fa da ivan.
  • Creatore
    Topic
  • #48524
    Up
    0
    Down
    ::


    Ciao a tutti,
    che estate sarebbe senza LaTeX? 😀
    E così vi rendo partecipi di un problema che stò affrontando. Stò provando a passare a TexMakerX e, già che ci sono, vorrei usare la codifica utf8. Sin’ora ho usato la latin1. Con quest’ultima avevo definito il comando:
    `\newcommand{\è}{È}`
    Con la codifica utf8 invece mi dà un errore a livello della riga sopra riportata. Sapete dirmi come mai?

    A quanti mi chiedessero a che serve quel comando, dò una breve spiegazione. Il mio portatile non ha il tastierino numerico e, di conseguenza andare a inserire il carattere “È” con il suo codice è una vera scocciatura, nonché una perdita di tempo. Si deve infatti attivare il “tastierino” posto sulla tastiera normale, cercare i caratteri, disattivare il “tastierino”…. per me è meglio avere un comando che snellisca tutto ciò.

    Grazie,
    Daniele

Visualizzazione 16 filoni di risposte
  • Autore
    Risposte
    • #48525
      Up
      0
      Down
      ::


      Ciao Daniele,

      non sono sicuro del perché mai in utf8 non funzioni quella definizione ma
      credo si possa fare.
      Comunque non penso sia una buona pratica. Capisco le tue perplessità
      nel premete Alt + Fn + 0200. Però perché non ti definisci un “user tag”
      di TeXmakerX? Vai su User -> User Tags -> Edit User Tags e aggiungi
      il carattere “È”.

      Inoltre se non ti piace usare Shift+F1, ecc… cioè le scorciatoie predefinite
      degli User tags, puoi modificarle nelle opzioni di TeXmakerX (scheda shortcuts).

      La stessa tecnica la puoi usare anche per la tilde o l’accento grave che non compaiono
      nella tastiera italiana. In questo caso inoltre puoi usare anche la funzionalità
      di “key replacement” (scheda shortcuts). Per esempio io digito il carattere
      “ç” (praticamente inutile nella tastiera italiana) e TeXmakerX me lo rimpiazza
      automaticamente con la tilde “~”.

      Il key replacement lo potresti usare anche con la È però te lo sconsiglio.

      Ciao ciao.
      Fra

    • #48526
      Up
      0
      Down
      ::


      Grazie del consiglio.
      In assenza di altre soluzioni adotterò quella che mi hai suggerito. Rimango però perplesso di fronte a questo problema. Sarei curioso di sapere qual’è il motivo.

      Ciao,
      Daniele

    • #48527
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        In TeXmakerX a sinistra c’è una colonna di piccole icone una delle quali è marcata solamente dalla lettera á; se la si clicca viene fuori tutta la lista dei caratteri dagli A accentati via via con tutti gli altri. Se si clicca su È nel file vine messo semplicemente \`{E}; per la leggibilità del file sorgente non sarà la stessa cosa che scrivere È, ma una volta compilato è la stessa cosa; è una operazione che richiede un solo click all’inizio per aprire quel menu, e un solo click del mouse per inserire la E accentata con l’accento grave.

      • #48528
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Aggiungo ancora che il fatto che con la codifica di entrata impostata a utf8 è normale che TeX non ti accetti la definizione; TeX (in effetti pdftex) non accetta definizioni di macro se i nomid elle macro:

          a) non sono dei caratteri attivi
          b) non sono un bacslash seguito da una stringa di lettere ASCII con codice di categoria 11
          c) non sono un backslash seguito da un solo carattere ASCII con codice di categoria 12

          Il punto è che i caratteri NON ASCII, come è, con la codifica utf8 sono definiti internamente mediante due byte, nessuno dei due con la categoria 11, quindi l’interprete pdftex non può accettare quella definizione.

          Volendo eseguire acrobazie si potrebbe usare il comando del nucleo di LaTeX \@namedef il cui argomento può essere una stringa di caratteri qualsiasi, ma poi per eseguire il comando per esempio, \@#&$ (definito mediante \@namedef{@#&$}{definizione}) bisogna usare la scrittura \@nameuse{@#&$}. Queste cose è meglio lasciarle nel kernel di LaTeX.

          Secondo me, posso sbagliarmi, è molto più comodo definire un comando usando le lettere maiuscole, per esempio,
          `
          \newcommand\E{\`E}
          `
          e, volendo, vi si può aggiungere uno spazio nella definizione
          `
          \newcommand\E{\`E }
          `
          in modo che si possa cominciare un periodo con la terza persona del verbo essere:
          `
          \E vero che \LaTeX\ ha bisogno di essere usato bene.
          `
          così non bisogna ricordarsi di mettere lo spazio esplicito dopo la macro, come si è dovuto fare dopo \LaTeX.

        • #48529
          Up
          0
          Down
          ::


          Grazie della spiegazione. Adesso rifletterò sul modo più comodo con cui risolvere la questione.

          Ciao,
          Daniele

        • #48530
          Up
          0
          Down
          ::

          A quanti mi chiedessero a che serve quel comando, dò una breve spiegazione. Il mio portatile non ha il tastierino numerico e, di conseguenza andare a inserire il carattere “È” con il suo codice è una vera scocciatura, nonché una perdita di tempo. Si deve infatti attivare il “tastierino” posto sulla tastiera normale, cercare i caratteri, disattivare il “tastierino”…. per me è meglio avere un comando che snellisca tutto ciò.

          Grazie,
          Daniele

          Il mio consiglio, se vuoi ottimizzare il lavoro, è di risparmiare da qualche parte e passare a Mac; non solo per le lettere accentate e/o la tilde.
          Non ricordo come facevo a inserire la “È” quando usavo Windows, però mi sorge una domanda: quante “È” prevedi di inserire nel tuo documento? Iniziare un periodo con la “È” è possibile ma credo che i casi siano rari, e comunque non così numerosi da richiedere di usare un comando, a mio avviso. Se proprio vuoi una scorciatoia segui i consigli di Francesco. (Tempo fa mi aveva fornito la stessa soluzione per inserire la tilde.)

          Ciao
          Ivan

        • #48531
          Up
          0
          Down
          ::


          Ciao Ivan,
          hai ragione anche tu… in effetti in un documento, anche lungo, non compaiono spesso i caratteri accentati maiuscoli. Ero però alla ricerca di una soluzione snella ed “elegante”. Pensandoci però, anche tenendo conto della leggibilità del sorgente, forse è proprio meglio iniserire il carattere accentato nel testo, magari reimpostando la tastiera. Devo ancora valutare bene, ma credo che recepirò il consigli di Francesco, abbinato però a quanto presentato in questo topic:
          http://www.guit.sssup.it/phpBB2/viewtopic.php?t=8536

          A proposito del consiglio di passare al Mac… il mio notebook non è più nuovissimo, ma per le funzioni che deve svolgere va ancora bene. Appena mi si renderà necessario sostituirlo valuterò seriamente la possibilità di passare a un apple.

          Ciao,
          Daniele

        • #48532
          Up
          0
          Down
          ::


          la codifica che usi tu utf8 (invece che latin1) su mac, e te lo dico da utilizzatore, dà problemi, anzi a me non funziona quasi mai … purtroppo.

          se usi texmaker x (sec me un buon editor sopratutto all’inizio o comunque per semplificare il lavoro dell’inserimento di caratteri particolari) hai a disposizione sulla sinistra il menù con tutti i simboli. basta che clicchi sul simbolo o lettera accentata e lo fa lui. quello è un metodo sicurissimo e crea il carattere perfetto.

          so che a volte può risultare poco “letexiano”, ma a volte è preferibile così 😉

        • #48533
          Up
          0
          Down
          ::

          basta che clicchi sul simbolo o lettera accentata e lo fa lui. quello è un metodo sicurissimo e crea il carattere perfetto.

          so che a volte può risultare poco “letexiano”, ma a volte è preferibile così 😉

          Mi spiace ma questa volta devo dissentire… perlomeno fino a chiarimenti accettabili. Sinceramente non vedo in che modo una soluzione più pesante sia preferibile a una più snella. Per capirci, per ora ho risolto il problema creando un nuovo layout della tastiera (come da topic http://www.guit.sssup.it/phpBB2/viewtopic.php?t=8536). Ora mi basta premere ctrl+carattere accentato da fare in maiuscolo; e per la É mi basta aggiungere shift a ctrl (cioé ctrl+shift+é). Tra l’altro ho anche sostituito la ç con la ~. È nettamente più comodo che andare a prendere il mouse, selezionare l’elenco giusto, quindi il carattere.

          In che senso dicevi che a volte è preferibile?

          Ciao,
          Daniele

        • #48534
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Non voglio rispondere al posto di Clark kent; rispondo a nome mio.
            Io preferisco usare la codifica di entrata latin1 perché ci posso fare qualunque cosa, mentre con la utf8, per esempio, uno si abitua ad usare i caratteri NON ASCII e poi si scontra con i problemi che hai incontrato tu.

            Però la codifica utf8 è ottima quando si fa lavoro collaborativo; con i vecchi Mac, e a quanto vedo anche con i nuovi, ci sono persone che continuano ad usare la vecchia codifica applemac; si windows bisognerebbe usare la codifica ansinew, su linux la codifca migliore era la latin1 oppure la latin9 (che consentiva l’uso dell’euro).
            Con al utf8 si tagli la testa al toro e si usa tutti la stesa codifica. Questo è il grande vantaggio della codifica unificata (UNICODE).
            Naturalmente per poterla usare bisogna che lo shelle editor di tutti i collaboratori sia impostato per usarla e specialmente sia capace di usarla. A me per esempio, non mi risulta che il prodigioso editor WinEdt per Windows a 32 bit sia ancora in grado di usare utf8; probabilmente la prossima release, ma ancora non c’è. Kile per Linux la poteva usare già 5 anni fa o forse più, quando ancora non era disponibile il file di definizioni per LaTeX (quello da chiamare con \usepackage[utf8]{inputenc}).

            Ecco perché continuo ad usare latin1 e lo consiglio; tutto sommato non è nemmeno tanto differente da ansinew, ma è sostanzialmente differente da applemac. La probabilità di incontrare un collaboratore che lavora con Mac e non sappia scegliere la codifica giusta è bassa.

            Tuttavia il fatto che mi lascia indifferente, sostanzialmente, su queste cose è che io da quando ho avuto un PC sotto le mani, circa 30 anni fa, ho sempre voluto la tastiera USA, mai quella italiana, anche se talvolta sul lavoro o coi familiari ho dovuto adattarmi, ma non mi sono mai adattato sulle mie macchine personali.

            Ripeto in input non c’è nessun vantaggio ad usare una codifica piuttosto di un’altra, se e solo se si fa del lavoro individuale. Se si collabora con altri, il problema nasce e utf8 lo risolve, talvolta, e talvolta no per difetti di software/hardware/firmaware aggiornato.

          • #48535
            Up
            0
            Down
            ::


            figurati, nessuna sostituzione =)

            sec me alla fine, usare un codice per una parole / simbolo è uguale che usarne un altro. appesantirà magari il testo dal punto di vista visivo, però alla fine è solo un insieme di lettere organizzate in modo diverso. sec me la combinazione, se mi si fa passare il termine, di texmaker x anche se più lunga, viene riconosciuta da tutti gli editor

          • #48536
            Up
            0
            Down
            ::

            la codifica che usi tu utf8 (invece che latin1) su mac, e te lo dico da utilizzatore, dà problemi, anzi a me non funziona quasi mai … purtroppo.

            La codifica utf8 no dà alcun problema su Mac (e nemmeno su Windows né su Linux), sia utilizzando TeXShop, sia utilizzando TeXworks o TeXmakerX. Lo dico anch’io da utilizzatore. Inoltre è la codifica che ho consigliato e impostato per i dottorandi che hanno seguito il mio corso. Mi ha consigliato questa scelta Enrico, dopo un’attenta discussione. Nessuno ha avuto problemi, e c’erano utilizzatori dei tre principali sistemi operativi. E considera che si tratta di un Dottorato in Scienze umane e filosofia. Naturalmente ho consigliato degli editor che supportano questa codifica.
            Se si usa TeXShop o TeXworks è buona norma aggiungere all’inizio del file la riga magica:

            `% !TEX encoding = UTF-8 Unicode
            `

            con TeXmakerX non serve, a quanto sembra.

            sec me alla fine, usare un codice per una parole / simbolo è uguale che usarne un altro. appesantirà magari il testo dal punto di vista visivo, però alla fine è solo un insieme di lettere organizzate in modo diverso.

            Questo è vero solo in linea teorica. Prova però a scrivere una tesi di filologia classica, con passi corposi in lingua greca, usando le lettere latine. In un caso come questo è necessario, per non impazzire, poter inserire direttamente nel sorgente i caratteri greci, e questo lo puoi fare facilmente con la codifica utf8 (con il pacchetto ucs e inputenc con opzione utf8x).

            edit Infine, se hai un file con codifica utf8 e ti viene voglia di stamparlo in Comic Sans 😆 puoi farlo semplicemente compilando con XeLaTeX e cambiando qualche riga nel preambolo

            Ciao
            Ivan

          • #48537
            Up
            0
            Down
            ::


            Credo ci sia stata una reciproca incomprensione. Io stavo mettendo in discussione il commento

            so che a volte può risultare poco “letexiano”, ma a volte è preferibile così 😉

            che pensavo fosse riferito all’uso delle icone presenti nei menù dell’editor. Amante come sono degli input da tastiera, che penso sveltiscano il lavoro, non ero d’accordo. Dalla piega che ha preso il discorso però probabilmente Clark si riferiva alla codifica…

          • #48538
            Up
            0
            Down
            ::


            si infatti 😉

            e cmq a me la codifica utf8 su mac ancora non riesco a farla funzionare …. non so perchè … aspetterò quando formatterò il mac per vedere se così si risolve. mi accorcerebbe e di molto alcuni lavori (io faccio la tesi e vari documenti con latex, matematici e anche li input da tastiera sarebbero utili)

          • #48539
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Mi sono spiegato male quando ho scritto:

              Ripeto in input non c’è nessun vantaggio ad usare una codifica piuttosto di un’altra, se e solo se si fa del lavoro individuale. Se si collabora con altri, il problema nasce e utf8 lo risolve, talvolta, e talvolta no per difetti di software/hardware/firmware aggiornato.

              Mi sono spiegato male perché sottintendevo, ma non l’ho detto esplicitamente, di scrivere in una lingua moderna dell’Europa occidentale.

              Certo, se come dice Ivan, bisogna comporre testi in alfabeti diversi da quello latino la codifica utf8 è essenziale, hardware/software/firmware permettendo. Ecco perché i miei font greci si possono usare impiegando solo i 96 caratteri ASCII (per la verità solo 95) e senza avere a disposizione nessun hardware/software/firmware particolare. Son il primo ad ammettere che leggere il greco scritto in lettere latine sia una cosa fastidiosissima, come scrivere in cirillico usando l’alfabeto latino (ma anche i font cirillici con la codifica OT2 sono fatti per chi dispone solo di una tastiera latina).

              Con il mio Mac posso scrivere con il driver per la lingua greca politonica (classica) e probabilmente la codifica utf8 mi sarebbe comodissima, ma… per usare quella tastiera o te la impari a memoria, o tieni sempre aperto il Keyboard viewer e ci clicchi sopra con il mouse mentre con la mano sinistra agisci sui tasti di controllo; ci ho provato e lo trovo fastidiosissimo, anche se in effetti si scrive in greco direttamente sullo schermo. L’esperienza individuale è importantissima, quindi che ognuno sia libero di usare la codifica che gli piace di più conoscendo i vantaggi e gli svantaggi; Ivan e i suoi studenti sono certamente quelli più indicati per usare la codifica utf8. Per gli altri che non scrivono né in greco, né in cirillico, né in glagolitico, né in ebraico antico o moderno, né in arabo, né in cinese, né in coreano, né in giapponese, ma scrivono solo con l’alfabeto “latino”, ho difficoltà a trovare dei motivi validi per sostenere l’utf8, ma sono sicuro che altri ne possono trovare.

              Clark, che ha delle difficoltà ad usare l’utf8 sul suo Mac, probabilmente è caduto nella trappola del cambio di codifica; se egli ha importato dei file scritti in latin1, per esempio, e li apre con TeXShop impostato per utf8, cercando di editarli, salvandoli dopo l’editing, certamente ottiene dei risultati poco confortanti per non dire disastrosi; quello è un errore in cui siamo caduti in molti, me compreso; inizialmente ci vuole un po’ di buona volontà per riparare i danni apportati ai file, poi si impara a riconoscere a colpo d’occhio se un dato file non è stato composto con la codifica impostata per TeXShop (oppure TeXworks oppure TeXmakerx} e prima di far danni si esce senza modificare il file, gliene si converte la codifica, e poi lo si riapre correttamente e lo si edita facilmente senza problemi con la utf8 o qualunque altra codifica concorde fra quella del file e quella dell’editor.

              Scusate la logorrea; since I am Old, I have this bad habit… 🙄

            • #48540
              Up
              0
              Down
              ::


              chiarissimo come sempre! 😉

            • #48541
              Up
              0
              Down
              ::

              si infatti 😉

              e cmq a me la codifica utf8 su mac ancora non riesco a farla funzionare …. non so perchè … aspetterò quando formatterò il mac per vedere se così si risolve. mi accorcerebbe e di molto alcuni lavori (io faccio la tesi e vari documenti con latex, matematici e anche li input da tastiera sarebbero utili)

              È semplicissimo. E non devi formattare il Mac…
              1) Poniamo di voler creare un documento nuovo con codifica utf8 usando TeXShop come editor. Indipendentemente dalla codifica impostata nelle Preferenze (che di default è utf8, mi par di ricordare), è sufficiente creare un nuovo documento e nella prima riga del file mettere questa riga magica
              `% !TEX encoding = UTF-8 Unicode
              `
              che permette a TeXShop di aprire e salvare il file con la codifica utf8, e poi caricare inputenc con l’opzione corretta:
              `\usepackage[utf8]{inputenc}
              `Se devi scrivere in greco, per esempio, servono invece questi pacchetti:
              `\usepackage{ucs}
              \usepackage[utf8x]{inputenc}`
              2) Se parti da un file creato con codifica diversa devi prima convertirlo in utf8, usando, per esempio il programma Charco. Una volta convertito devi aggiungere sempre la suddetta riga magica, se usi TeXShop.

              3) Puoi anche impostare nelle Preferenze di TeXShop la codifica utf8. In questo modo tutti i documenti verranno aperti e salvati con questa codifica. (Ma la riga magica è bene metterla sempre così puoi tranquillamente passare il file ad altri utenti di TeXShop, che lo apriranno senza problemi) Così facendo, se apri un file, poniamo, con codifica latin1, TeXShop si ferma ed emette un avviso, che dice essenzialmente di chiudere il file senza salvarlo e riaprirlo dal menù Archivio>Apri di TeXShop, scegliendo la codifica latin1 (in fondo). A questo punto il file si sarà aperto con la codifica corretta. Se lo devi usare spesso e non vuoi convertirlo è sufficiente aggiungere una riga magica simile alla precedente
              `% !TEX encoding = IsoLatin
              `
              E così per le altre codifiche. La famosa riga magica si può facilmente aggiungere dal menù Macro>Encoding (attento però che quella relativa a utf8 è sbagliata 🙁 Dovrò prima o poi informare gli sviluppatori di TeXShop. Poco male basta scrivere “UTF” al posto di “ITF”)

              Viva utf8 😀

              Ciao
              Ivan

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

          Go to top