modificare un tema per emacs [risolto]

  • Creatore
    Topic
  • #106873
    davidebond
    Partecipante
      Up
      0
      Down
      ::


      Salve. Io mi sono scaricato un tema per emacs che mi sembra carino, ma non perfetto. Per esempio, come posso fare affinchè digitando \emph{ il testo che segue sia obliquo? È una cosa che aiuta, talvolta.

      Grazie.

      Ciao,

      davide

    Visualizzazione 19 filoni di risposte
    • Autore
      Risposte
      • #106874
        Up
        0
        Down
        ::


        Stiamo parlando di AUCTeX o della modalità LaTeX predefinita di Emacs? Nel primo caso, in maniera predefinita funziona proprio così, tra l’altro non credo che cambiare il tema debba influenzare questo aspetto (ma non ne sono sicuro, non ho mai giocato molto con i temi). Di che tema si tratta? Nel caso della modalità LaTeX predefinita di Emacs non ti so aiutare granché, non l’ho mai usata

      • #106875
        Up
        0
        Down
        ::


        Dai meandri del mio file init.el ho ripescato questo codice che serve a ottenere l’effetto opposto:
        `
        (zenburn-with-color-variables
        (custom-theme-set-faces
        'zenburn
        `(font-latex-italic-face
        ((t (:foreground ,zenburn-cyan :slant normal))))
        `(font-latex-bold-face
        ((t (:foreground ,zenburn-blue+1 :weight normal))))
        `(font-latex-verbatim-face
        ((t (:foreground ,zenburn-magenta :inherit nil))))))
        `

        Al momento lo trovo piuttosto criptico, ma credo che l’elemento chiave sia
        `
        custom-theme-set-faces
        `
        mentre la macro
        `
        zenburn-with-color-variables
        `
        è definita dal tema che uso, zenburn, e potrebbe cambiare qualche dettaglio sull’uso della funzione.

        Prova a guardare la relativa documentazione.

        Ciao
        Matteo

      • #106876
        davidebond
        Partecipante
          Up
          0
          Down
          ::


          Grazie delle risposte. Purtroppo, ho provato a seguirle e a guardarmi in giro nei vari forum su emacs senza successo. Io scarico un file di stile theme.el in emacs/share/emacs/25.0.94/etc/themes/. Poi apro .emacs e inserisco:
          (load-theme ‘theme.el t). Al riavvio di emacs, theme.el compare come il tema predefinito. Io volevo agire su alcune componenti sullo stile di questi file. Come ho detto, mi piacerebbe che il font nel buffer si inclinasse all’iterno di {\it …} o dentro \emph{…}. La cosa è importante per me, perché mi evita di dimenticare di scrivere la parentesi destra che chiude l’ambiente.

          Grazie. Ciao,

          davide

        • #106877
          Up
          0
          Down
          ::


          Ho avuto un po’ di tempo per leggere la documentazione di custom-theme-set-faces e questo è quello che ho capito. Se usi AUCTeX devi aggiungere questo al tuo file .emacs, dopo load-theme, sostituendo a TEMA il nome corretto e a COLORE il colore

          `
          (custom-theme-set-faces
          'TEMA
          '(font-latex-italic-face ((t (:slant italic :foreground COLORE))))
          '(font-latex-bold-face ((t (:weight bold :foreground COLORE)))))
          `

          Se vuoi usare il colore del tema devi aprire un file tex, portare il puntatore in corrispondenza di testo in corsivo e dare il comando
          `
          M-x describe-face
          `
          accettando il valore predefinito al prompt. Il comando va poi ripetuto in corrispondenza di testo in grassetto. Nella finestra di aiuto che compare troverai tutte le proprietà del tipo di carattere (face nella lingua di emacs), che puoi copiare nelle impostazioni. Questi comandi ti permettono anche di scoprire come si chiamano i due tipi di carattere se non usi AUCTeX.

          In ogni caso per non dimenticare le parentesi chiuse la soluzione migliore è farle scrivere a emacs, abilitando l’electric-pair-mode oppure usando i comandi di AUCTeX per scegliere il font
          `
          C-c C-f C-e
          `
          per l’enfasi,
          `
          C-c C-f C-b
          `
          per il grassetto e così via.

          Ciao
          Matteo

        • #106878
          davidebond
          Partecipante
            Up
            0
            Down
            ::


            Ti ringrazio. Purtroppo, ho inserito il tuo codice dopo load-theme, ma non è cambiato niente. Per quanto riguarda la possibilità di far chiudere in automatico le parentesi in emacs, conosco quest’opzione, ma preferisco digitarle a mano.

            Grazie. Ciao,

            davide

          • #106879
            Up
            0
            Down
            ::


            Hai provato a dare il comando describe-face in corrispondenza del testo che vorresti in corsivo? Qual è il risultato?

            Matteo

          • #106880
            davidebond
            Partecipante
              Up
              0
              Down
              ::


              Lanciando M-x describe-face, si apre un buffer che contiene il testo seguente:

              `Face: italic (sample) (customize this face)

              Documentation:
              Basic italic face.

              Defined in ‘faces.el’.

              Family: unspecified
              Foundry: unspecified
              Width: unspecified
              Height: unspecified
              Weight: unspecified
              Slant: unspecified
              Foreground: unspecified
              DistantForeground: unspecified
              Background: unspecified
              Underline: unspecified
              Overline: unspecified
              Strike-through: unspecified
              Box: unspecified
              Inverse: unspecified
              Stipple: unspecified
              Font: unspecified
              Fontset: unspecified
              Inherit: unspecified`

              Ho provato a seguire il link “faces.el” e si è aperto un buffer con il seguente contenuto:

              `(defface italic
              '((((supports :slant italic))
              :slant italic)
              (((supports :underline t))
              :underline t)
              (t
              ;; Default to italic, even if it doesn't appear to be supported,
              ;; because in some cases the display engine will do its own
              ;; workaround (to `dim' on ttys).
              :slant italic))
              “Basic italic face.”
              :group 'basic-faces)`

              Ovviamente, c’è molto altro ancora.

              Grazie. Ciao,

              davide

            • #106881
              davidebond
              Partecipante
                Up
                0
                Down
                ::


                Allora… ho consultato il manuale di emacs https://www.gnu.org/software/emacs/manual/html_node/emacs/Faces.html#Faces, e usato il comando M-x list-faces-display. Nel nuovo buffer, ho cercato italic e vi ho cliccato sopra. Quindi, ho selezionato “show all attributes” e lì ho selezionato il carattere obliquo e il colore. Ho risolto così il problema. Resta solo una domanda: queste opzioni sovrascrivono quelle indicate nei singoli temi? In altre parole, se adesso cambio tema, rimangono le impostazioni che io ho scelto nel modo indicato sopra? Se è così, c’è invece un modo per agire nel singolo tema, in modo da aver opzioni diverse per temi diversi?

                Grazie. Ciao,

                davide

              • #106882
                Up
                0
                Down
                ::

                davidebond” post=107104 Resta solo una domanda: queste opzioni sovrascrivono quelle indicate nei singoli temi? In altre parole, se adesso cambio tema, rimangono le impostazioni che io ho scelto nel modo indicato sopra? Se è così, c’è invece un modo per agire nel singolo tema, in modo da aver opzioni diverse per temi diversi?

                Temo che i valori impostati così siano globali, il codice che proponevo invece è specifico per il tema.

                Il fatto che tu abbia trovato italic e non font-latex-italic-face indica che non usi AUCTeX, in questo caso puoi provare questa modifica
                `
                (custom-theme-set-faces
                'TEMA
                '(italic ((t (:slant italic))))
                '(bold ((t (:weight bold)))))
                `
                Sempre sostituendo a TEMA il nome corretto. Ho eliminato :foreground perché vedo che nel risultato di describe-face non è specificato nessun colore.

                Ciao
                Matteo

              • #106883
                davidebond
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Grazie. Adesso il carettere corsivo si piega. L’unica cosa che mi manca è come indicare il colore. Ho provato ad inserire “:foreground red” e questo è il messaggio di errore ricevuto:

                  `Wrong type argument: stringp, red

                  To ensure normal operation, you should investigate and remove the
                  cause of the error in your initialization file. Start Emacs with
                  the ‘–debug-init’ option to view a complete error backtrace.
                  `

                  Ciao,

                  davide

                • #106884
                  Up
                  0
                  Down
                  ::

                  davidebond” post=107151Grazie. Adesso il carettere corsivo si piega. L’unica cosa che mi manca è come indicare il colore. Ho provato ad inserire “:foreground red” e questo è il messaggio di errore ricevuto:

                  `Wrong type argument: stringp, red

                  To ensure normal operation, you should investigate and remove the
                  cause of the error in your initialization file. Start Emacs with
                  the ‘–debug-init’ option to view a complete error backtrace.
                  `

                  Ciao,

                  davide

                  Il messaggio d’errore indica che il colore deve essere una stringa, quindi
                  `
                  :foreground red
                  `
                  è sbagliato ma
                  `
                  :foreground “red”
                  `
                  funziona.

                  Per avere una lista completa dei nomi dei colori puoi usare il comando
                  `
                  M-x list-colors-display
                  `

                  Ciao
                  Matteo

                • #106885
                  davidebond
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Grazie. Questione risolta. Solo una cosa ancora: come si fa ad usare auctex? Io l’ho scaricato e spacchettato nella cartella principale di emacs, ma senza risultati. Ho guardato alcune guide di installazione (quella del guit, compresa) che non danno altre opzioni per emacs su windows.

                    Grazie ancora.

                    Ciao,

                    davide

                  • #106886
                    Up
                    0
                    Down
                    ::


                    Con una versione relativamente recente di emacs basta dare il comando
                    `
                    M-x package-install RET
                    auctex RET
                    `
                    e aggiungere
                    `
                    (package-initialize)
                    `
                    nel file .emacs

                    La versione presente sul sito della guida tematica su emacs e AUCTeX non è la più recente, puoi trovare i file sorgente aggiornati su
                    github

                    Ciao
                    Matteo

                  • #106887
                    davidebond
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Grazie. In questo modo sono riuscito ad utilizzare la prima opzione che mi hai fornito. Tuttavia, adesso il testo dentro a \emph{} rimane in tondo. Per ovviare, ho usato ‘(italic ((t (:slant italic)))). Mossa corretta?

                      Grazie. Ciao,

                      davide

                    • #106888
                      Up
                      0
                      Down
                      ::


                      Con AUCTeX il tipo di carattere ha un nome diverso, font-latex-italic e non italic

                      Ciao
                      Matteo

                    • #106889
                      davidebond
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Anzitutto, grazie. Non discuto di questo, ma se inserisco font-latex-italic, il testo dentro a \emph{} non diventa obliquo, mentre se uso solo italic, sì.

                        Ciao,

                        davide

                      • #106890
                        Up
                        0
                        Down
                        ::


                        Il tuo ultimo messaggio è sparito

                      • #106891
                        Up
                        0
                        Down
                        ::


                        Se il codice che hai scritto ottiene il risultato desiderato non c’è motivo di cambiarlo. Se decidi di usare altri temi la differenza fra italic e font-latex-italic potrebbe essere importante, ma evidentemente con il tema che stai usando non lo è. A proposito potresti dirmi dove trovarlo?

                        Ciao
                        Matteo

                      • #106892
                        davidebond
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Anzitutto, chiedo scusa per il ritardo di questa risposta. Ho avuto e ho problemi di salute. Grazie del messaggio: è giusto quello che scrivi. Per quanto riguarda i temi di emacs, li puoi trovare qui (penso che la cosa possa interessare anche altri utenti):

                          https://emacsthemes.com/

                          Grazie. Ciao,

                          davide

                        • #106893
                          Up
                          0
                          Down
                          ::

                          davidebond” post=107225Anzitutto, chiedo scusa per il ritardo di questa risposta. Ho avuto e ho problemi di salute. Grazie del messaggio: è giusto quello che scrivi. Per quanto riguarda i temi di emacs, li puoi trovare qui (penso che la cosa possa interessare anche altri utenti):

                          https://emacsthemes.com/

                          Grazie. Ciao,

                          davide

                          Wow, si vede che non uso proprio i temi, non conoscevo questo sito 😀 Sembra carino, grazie per la segnalazione!

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

                      Go to top