greco antico nei titoli

  • Creatore
    Topic
  • #102419
    Up
    0
    Down
    ::


    ciao a tutti,
    sto scrivendo un testo in cui devo usare il greco antico. Sto usando il seguente \newcommand, preso dall’arte di scrivere in greco

    `\newcommand{\greco}[1]{%
    \begin{otherlanguage*}{greek}#1\end{otherlanguage*}}`

    Funziona tutto bene, l’unica cosa che non va è che, se scrivo qualcosa in greco in un titolo (ese: \section{\greco{Testo}}), mi da errore.
    cosa posso fare? Aggiungo che questa cosa non mi pare sia spiegata nell’Arte di cui sopra. Se qualcuno sa risolvere il problema si potrebbe aggiungere questa informazione all’Arte stessa.
    fatemi sapere,
    grazie
    ciao
    angelo

Visualizzazione 22 filoni di risposte
  • Autore
    Risposte
    • #102420
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::



        @angelico
        , i comandi di sezionamento da \part fino a \subparagraph sono fragili, quindi un comando fragile messo nell’argomento facilmente si rompe. Dove si romapano dipende dai pacchetti che usi; per esempio se vuoi creare l’indice puoi usare l’argomento facoltativo di \section (o di qualunque altro comando di sezionamento, scrivendo nella parte “facoltativa, solo il testo greco traslitterat in lettere latine; oppure puoi far precedere il comando \protect alla macro \greco.
        Se usi Hyperref, invece devi usare solo una trucco simile che però ricorre a \texorpdfstring che vuole due argomenti, il rpimo che viene usato epr il titolo vero e proprio e il secondo per i bookmark e i collegamenti ipertestuali.
        Un altro modo per aggirare il problema è quello di non usare \newcommand per definire \greco, ma di usare \DeclareRobustCommand; ti risparmi il \protect nei casi in cui ci vuole. Non ne ho verificato l’uso promiscuo, ma sembra che l’estensione e-TeX (già incorporata da anni in pdflatex) permetta l’uso di un prefisso \protected per deinire delle nuove macro; certamente il pacchetto etoolbox permette di irrobustire comandi fragili o di creare comandi robusti usando \protected invece che il vecchio trucco usato da \DeclarRobustCommand (consiste nell’aggiungere uno spazio al nome della macro protetta, spazio che fa parte del nome; quando la macro viene scritta in un file ausiliario e poi viene riletta in una seconda passata, lo spazio in più si comporta come un normale spazio che dopo una macro non viene più preso in considerazione).

        Insomma dire che ottieni un errore è vago; cosa dice esattamente il file .log? Io ho messo tante parole greche negli argomenti di comandi di sezionamento, ma non ho mai avuto problemi, si, forse, perché conosco la fragilità di quei comandi si perché mi ci sono scontrato relativamente spesso, ma ho sempre risolto con i trucchi suddetti. Qual è dunque l’errore?

      • #102421
        Up
        0
        Down
        ::


        Buongiorno, scrivo qui per non aprire un’altra discussione.
        Uso TexLive 2015 su windows e compilo con pdflatex.
        Dovrei copiare da un documento scritto in writer di libreoffice del testo in greco antico.
        Ho seguito il seguente esempio preso da L’arte di scrivere con LaTex
        `
        \documentclass[a4paper]{article}
        \usepackage[LGRx,T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage[plutonikogreek,italian]{babel}
        \begin{document}
        \begin{otherlanguage * }{greek}
        Τῃ πάντα διδούσῃ καὶ ἀπολαμβανούσῃ φύσει ὁ πεπαιδευμένος καὶ αἰδήμων
        λέγει· ῾῾δὸς, ὃ θέλεις, ἀπόλαβε, ὃ θέλεις᾿᾿. Λέγει δὲ τοῦτο οὐ
        καταθρασυνόμενος, ἀλλὰ πειθαρχῶν μόνον καὶ εὐνοῶν αὐτῃ.
        \end{otherlanguage * }
        \end{document}`

        , ma compare il seguente errore: ! Package fontenc Error: Encoding file `lgrxenc.def’ not found. (fontenc) You might have misspelt the name of the encoding.

        Ora, se ho capito bene la versione che ho installato non possiede LGRX, sapreste dirmi come aggiungerla?

        Grazie

      • #102422
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Purtroppo L’Arte è ferma al 2012; in questi tre anni sono avvenuti molti cambiamento proprio per la gestione del greco e delle lingue in generala; Babel è arrivato alla versione 3.9 e ora accettata i “modificatori”; il greco è stato completamante rifatto e non richiede più di specificare LGRx, se vuoi puoi specificare LGR, ma non è necessario. Per dire a babel che vuoi usare il greco antico non devi assolutamente nominare polutonikogreek, che è un modo per compilare documenti di venti anni fa.. al suo posto devi specificare greek.ancient oppure greek.poly. In teoria il greco moderno politonico e il greco antico richiedono pattern di sillabazione diversi; li ho predisposti, ma sono ancora sotto test da parte dei greci; chi oso io, che non conosco il greco moderno e ho conoscenze scolastiche di greco antico per dire che non ho commesso errori? Devono essere i greci a validare quei pattern, ma sembra che se la stiano prendendo molto tranquillamente; lo capisco: con i momenti che stanno passando, non sembra il caso che si trastullino con LaTeX. 🙁

          Di fatto per ora il greco antico è sillabato come il greco moderno; se vuoi cimentarti con i nuovi pattern, scrivimi una mail al mio indirizzo che trovi sia su alcune guide tematiche sia in alcuni pacchetti del sistema TeX; te li invio con le istruzioni per montarli (siccome non dispongo di WIndows le istruzioni si riferiscono a TeXLive ma su Linux o Mac; gli aggiustamenti per Windows dovrebbero essere minimi).

        • #102423
          Up
          0
          Down
          ::


          Grazie mille! Le frasi sono molto brevi, quindi credo che non ne avrò bisogno, in caso scrivo. Con i tuoi suggerimenti uso sempre \begin{otherlanguage*}{greek}?
          Grazie

        • #102424
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Uno dei pacchetti che babel-greek carica definisce il comando \ensuregreek il cui argomento viene composto in greco senza stare a usare \foreignlanguage o otherlanguage. È molto comodo per scrive singole parole o brevi locuzioni che presumibilmente non attivano la routine di cesura in fin di riga, altrimenti la divisione in sillabe in fin di riga potrebbe risultare sbagliata (probabilmente se la lingua principale è l’italiano le cesure sbagliate potrebbero essere pochissime, per non dire nulle — italiano e greco hanno regole simili, ovviamente non identiche ma simili).

          • #102425
            Up
            0
            Down
            ::


            Nel preambolo ho inserito
            \usepackage[greek.ancient,frenchb]{babel}
            Se rimuovo \begin{otherlanguage*}{greek} non funziona, cosa sbaglio?
            Grazie

          • #102426
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Sbagli nel supporre che pdflatx capisca da solo che deve comporre in greco. \begin{othelanguage*}{greek}…\end{otherlanguage} gli dice che quanto sostituisce i puntino deve essere scritto in greco.
              Non c’è niente di diverso dal caso in cui tu scriva \usepackage{german,french,english,italian]{babel} perché la lingua di default è l’italiano, ma coma fa a scorire che un brano di testo è in tedesco o in francese o in inglese? Devi dirglielo.
              Il mark-up di latex funziona proprio così.

              Nota che se componessi con xelatex o lualatex che possono usare font OpenType contenenti molti alfabeti, il programma non avrebbe nemmeno bisogno di cambiare font per passare dall’alfabeto latino a quello greco, ma ha pur sempre bisogno di sapere come sillabare le parole in fin di riga; ha bisogno di sapere quali segni sono le maiuscole dei segni delle minuscole e viceversa, ha bisogno di sapere come usare le virgolette giuste nelle citazioni all’interno del testo, ha bisogno di conoscere le spaziature prima e dopo i diversi segni di interpunzione, e via di questo passo. Quindi anche con xelatex e lualatex devi dirgli quando cambi lingua e che lingua vuoi usare. Babel o polyglossia caricano in memoria le macro necessarie per comporre nelle lingue indicate, ma non le selezionano; mettono solo degli strumenti a disposizione dell’utente.

              Con word, puoi evidenziare un tratto di testo, poi puoi cliccare sulla scelta della lingua e quel testo evidenziato viene sillabato, punteggiato come quella lingua richiede e viene composto con i font adatti a quella lingua. ma nello schermo non vedi nessun segno di marcatura, per cui se il font di composizione non cambia non sai se sei tornato all’italiano o se stati continuando in tedesco. Sono queste informazioni nascoste uno dei motivi per i quali molti preferiscono usare la composizione sincrona di Word, invece della composizione asincrona di latex, perché così non vedono il mark-up di word e possono leggere sullo schermo una buona approssimazione di quello che verrà eventualmente stampato (se tutto va bene; spesso ciò che viene stampato non era affatto quello che si vedeva sullo schermo).
              Ma cambiare approccio da word a latex è inizialmente molto difficile. Quando ti ci sei abituato, non riesci più a farne a meno.

            • #102427
              Up
              0
              Down
              ::


              Certo, ma allora non ho capito cosa significa quando scrivi “Uno dei pacchetti che babel-greek carica definisce il comando \ensuregreek il cui argomento viene composto in greco senza stare a usare \foreignlanguage o otherlanguage.”

            • #102428
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Vul dire che compene in greco come \ensuremath compone in matematica. Con \esuregreek comunichi al programma di composizione che vuoi scrivere in greco e lui ti assicura di farlo. Il pacchetto che esegue la definizione di \ensuregreek è textalpha.sty, ma credo che vada caricato in modo esplicito. Non sono andato a rivedere al documentazione, ma sono sicuro al 99,99% che sia così.

              • #102429
                Up
                0
                Down
                ::


                Scusate, non riesco a capire. Come dovrei riscrivere questo:
                `
                \documentclass[a4paper]{article}
                \usepackage[LGRx,T1]{fontenc}
                \usepackage[utf8]{inputenc}
                \usepackage[plutonikogreek,italian]{babel}
                \begin{document}
                \begin{otherlanguage * }{greek}
                Τῃ πάντα διδούσῃ καὶ ἀπολαμβανούσῃ φύσει ὁ πεπαιδευμένος καὶ αἰδήμων
                λέγει· ῾῾δὸς, ὃ θέλεις, ἀπόλαβε, ὃ θέλεις᾿᾿. Λέγει δὲ τοῦτο οὐ
                καταθρασυνόμενος, ἀλλὰ πειθαρχῶν μόνον καὶ εὐνοῶν αὐτῃ.
                \end{otherlanguage * }
                \end{document}`

                ?

                Grazie per il possibile aiuto

              • #102430
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Intanto non devi lasciare spazi prima e dopo l’asterico di otherlanguage.
                  Poi devi eliminare LGRx, che non serve a meno che tu non voglia usare \ensure greek.
                  Poi non usare la lingua polutoniko che è un residuo bellico per garantire un minimo di retrocompatibilità per compilare testi “d’annata” i cui sorgenti furono scritti almeno 20 anni fa.
                  Il modo corretto è il seguente:`\documentclass[a4paper]{article}
                  \usepackage[T1]{fontenc}
                  \usepackage[utf8]{inputenc}
                  \usepackage[greek.ancient,italian]{babel}
                  \begin{document}
                  \begin{otherlanguage*}{greek}
                  Τῃ πάντα διδούσῃ καὶ ἀπολαμβανούσῃ φύσει ὁ πεπαιδευμένος καὶ αἰδήμων
                  λέγει· ((δὸς, ὃ θέλεις, ἀπόλαβε, ὃ θέλεις)). Λέγει δὲ τοῦτο οὐ
                  καταθρασυνόμενος, ἀλλὰ πειθαρχῶν μόνον καὶ εὐνοῶν αὐτῃ.
                  \end{otherlanguage*}
                  \end{document}`Il risultto della compilazione è il seguente:

                  [attachment=1363]TestGreek.pdf[/attachment]

                  Attachments:
                  You must be logged in to view attached files.
                • #102431
                  Up
                  0
                  Down
                  ::


                  Mille grazie!
                  Purtoppo non ho ancora capito l’uso di \ensuregreek, ma cercherò.

                • #102432
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    \ensuregreek non è adatto a scrivere testi di puù righe; serve per scrivere una parola o due.Guarda l’esempio seguente:`\documentclass{article}
                    \usepackage[utf8]{inputenc}
                    \usepackage[T1]{fontenc}
                    \usepackage{lmodern}
                    \usepackage[italian]{babel}
                    \usepackage{textalpha}

                    \begin{document}
                    \tableofcontents
                    \section{Archimende disse \ensuregreek{Ἔυρεκα!}}
                    E Archimede, uscito in fretta e furia dalla piscina, esclamò “\ensuregreek{Ἔυρεκα!}'', ma queste furono le sue ultime parole.
                    \end{document}` che produce il testo che segue:
                    [attachment=1364]Testtextalpha.pdf[/attachment]

                    Attachments:
                    You must be logged in to view attached files.
                  • #102433
                    Up
                    0
                    Down
                    ::


                    Grazie infinite.
                    Ho fatto come indicato, ma compare il seguente messaggio d’errore:
                    Package inputenc Error: Unicode char \u8:ϰ not set up for use with LaTeX,

                    messaggio che era già stato segnalato qui

                    http://www.guitex.org/home/it/forum/5-tex-e-latex/65458-errore-scritta-in-greco-antico

                    Qualche idea?
                    Grazie

                  • #102434
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Vuoi dire che i due esempi che ti ho inviato non compilano e ti segnalano quell’errore?

                      Ci vuole almeno il file log e almeno un esempio minimo compilabile; i due file che ti ho inviato sono esempi minimi compilabili,
                      Siccome da me con TeXLive 2015 COMPLETA, compila perfettamente, le poche informazioni che dai sono insufficienti. I miei file sono “controsempi” rispetto al tuo coso dove non compila.

                    • #102435
                      OldClaudio
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Vuoi dire che i due esempi che ti ho inviato non compilano e ti segnalano quell’errore?

                        Ci vuole almeno il file log e almeno un esempio minimo compilabile; i due file che ti ho inviato sono esempi minimi compilabili,
                        Siccome da me con TeXLive 2015 COMPLETA, compila perfettamente, le poche informazioni che dai sono insufficienti. I miei file sono “contro sempi” rispetto al tuo caso dove non compila.
                        Supponiamo che uno dei miei file non compili da te; eseguilo e quando se si ferma durante l’esecuzione dai nella console il comando Q +invio; poi prendi il file log e allegalo al tuo prossimo messaggio.

                      • #102436
                        Up
                        0
                        Down
                        ::


                        No, nel mio “coso” c’é più volte la lettera ϰ, ovvero la cappa minuscola, come indicato nell’errore riportato nel mio commento precedente. Quella lettera causa l’errore.
                        L’esempio de L’Arte con gli accorgimenti suggeritemi viene composto senza errori.
                        Auindi il mio problema ora é la lettera ϰ. Provare per credere, basta aggiungerla all’esempio di cui sopra.
                        Qualche idea?

                      • #102437
                        OldClaudio
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          I font con codifica LGR contengono usa sola lettera κ non due come sono presenti nei font unicode. Non importa come sono disegnate; in realtà disegnano una ϰ, dipende dal particolare disegno di ogni polizza.
                          Sono pronto a segnalare il bug al curatore dei babel-greek. nel frattempo cerco un work around.
                          Il più semplice sarebbe quello di sostituire globalmente tutti i glifi ϰ del tuo testo sorgente con i corrispondenti glifi κ. spero di trovare una qualche impostazione/macro che ti permetta di ottenere il la scrittura del testo senza lasciarti il buco vuoto al posto della ϰ.

                          Non avevo notato che il testo che avevi proposto in un tuo messaggio precedente e con il quale ti ho preparato di due esempi minimi compilabili non contenesse nessuna ϰ 🙁

                        • #102438
                          OldClaudio
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Eccoti la soluzione`\documentclass{article}
                            \usepackage[utf8]{inputenc}
                            \usepackage[T1]{fontenc}
                            \usepackage{lmodern}
                            \usepackage[italian]{babel}
                            \usepackage{textalpha}
                            \DeclareUnicodeCharacter{03F0}{\textkappa} % ϰ

                            \begin{document}
                            \tableofcontents
                            \section{Archimende disse \ensuregreek{Ἔυρεκα!}}
                            E Archimede, uscito in fretta e furia dalla piscina, esclamò “\ensuregreek{Ἔυρεκα!}'', ma queste furono le sue ultime parole.
                            Archimede ripeté la parola dicendo \ensuregreek{Ἔυρεϰα!}
                            \end{document}`che produce senza errori il file seguente:

                            [attachment=1368]Testtextalpha_2015-07-19-2.pdf[/attachment]

                            Attachments:
                            You must be logged in to view attached files.
                          • #102439
                            Up
                            0
                            Down
                            ::


                            Funziona perfettamente, grazie mille.
                            Per completezza, come fargli accettare ϰ con il metodo:
                            `
                            \documentclass[a4paper]{article}
                            \usepackage[T1]{fontenc}
                            \usepackage[utf8]{inputenc}
                            \usepackage[greek.ancient,italian]{babel}
                            \begin{document}
                            \begin{otherlanguage*}{greek}

                            \end{otherlanguage*}
                            \end{document}`

                            ?
                            Cioè per testi di più di due o tre parole?
                            Grazie mille!!

                          • #102440
                            OldClaudio
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Aggiungendo la riga `\DeclareUnicodeCharacter{03F0}{\textkappa}` subito dopo la chiamata di babel.

                            • #102441
                              Up
                              0
                              Down
                              ::


                              perfetto, grazie!

                            • #102442
                              Up
                              0
                              Down
                              ::


                              Visti gli argomenti trattati, non credete che sarebbe meglio modificare il titolo di questo thread in “Greco antico”, così che non venga scartato trattato da coloro che abbiano bisogno di un aiuto per scrivere in greco, ma non solamente nei titoli?

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

                          Go to top