Modificare una classe per farla funzionare in italiano

  • Creatore
    Topic
  • #116419
    Up
    0
    Down
    ::


    Mi piacerebbe usare la classe elegantpaper in italiano. È però possibile usarla solo in inglese o in cinese. Il compilatore dice errore persino con inputenc.
    Vorrei chiedervi se mi insegnate come modificarla per farla funzionare in italiano, sempre che si tratti di modificare due o tre righe e non sia una cosa troppo complicata, perché sono solo un utilizzatore e non modifico mai le classi.

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #116420
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Non chiedi poco, ma domani (cioè, vista l’ora, tra qualche ora) ci provo.

      • #116421
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Dunque ci sono alcuni problemini, alcuni facilmente superabili, altri forse no.

          0) Siccome è vietato modificare le classi e ogni altro software del sistema TeX senza cambiare loro il nome, copia e incolla questa classe nel tuo albero personale, cambiale il nome, per esempio elegantpaper-it.cls, e modifica questa versione, non quella originale.

          1) L’italianizzazione di quella classe si può fare facilmente; ti copio qui sotto le cose che ho modificato, senza ricopiarti l’intera classe`\DeclareStringOption[en]{lang}
          \DeclareVoidOption{cn}{\ekv{lang = cn}}
          \DeclareVoidOption{en}{\ekv{lang = en}}
          \DeclareVoidOption{it}{\ekv{lang = it}} % <----- aggiungere ... \ifdefstring{\ELEGANT@lang}{it}{% <----- aggiongere questo intero blocco ... \theoremstyle{plain}% default \newtheorem{theorem}{Teorema}[section] % \newtheorem{lemma}[theorem]{Lemma} % \newtheorem{proposition}[theorem]{Enunciato} % \newtheorem*{corollary}{Corollario} % \theoremstyle{definition} % \newtheorem{definition}{Definizione}[section] % \newtheorem{conjecture}{Congettura}[section] % \newtheorem{example}{Eesempio}[section] % \theoremstyle{remark} % \newtheorem*{remark}{Osservazione} % \newtheorem*{note}{Nota} % \newtheorem{case}{Caso} % \renewcommand*{\proofname}{\normalfont\bfseries Dimostrazione}% \newcommand\versiontext{\itshape Versione: }% \newcommand\updatetext{\itshape Aggiornamento: }% \renewcommand{\abstracttextfont}{\sffamily\small\kaishu} \newcommand{\keywords}[1]{\vskip2ex\par\noindent\normalfont{\bfseries Parole chiave: } #1} \newcommand\figref[1]{{\bfseries Figura~\ref{#1}}} \newcommand\tabref[1]{{\bfseries Tabella~\ref{#1}}} }{\relax}% <------ prima della riga seguente \AtBeginEnvironment{verbatim}{\microtypesetup{activate=false}}` 2) Bisogna compilare con XeLaTeX o LuaLaTeX, assolutamente non con pdfLaTeX (vedi sotto) Il seguente codice a me funziona senza errori, anche se non testa tutte le aggiunte della classe`% !TEX encoding = UTF-8 Unicode % !TEX TS-program = xelatex \documentclass[12pt,a4paper]{elegantpaper-it} \usepackage[italian]{babel} \usepackage{mwe} \author{Mario Rossi} \title{Prova di elegantpaper-it} \date{\today} \begin{document} \maketitle \tableofcontents \begin{abstract} Questa è semplicemente una prova della classe elegantpaper modificata per rendere accessibile anche l'italiano, visto che di default accetta solo l'inglese e il cinese \end{abstract} \section{Prima sezione} \lipsum[1-2] \subsection{Prima sottosezione della prima sezione} \lipsum[3-4] \subsection{Seconda sottosezione della prima sezione} \lipsum[5-6] \section{Seconda sezione} \lipsum[7-8] \subsection{Prima sottosezione della seconda sezione} \lipsum[9-10] \subsection{Seconda sottosezione della seconda sezione} \lipsum[11-12] \end{document}`Nel log compare un "errore", nel senso che nella mia macchina non è installato un certo font che serve per comporre in cinese; se ci tieni a comporre anche in cinese, leggiti il file .log, per scovare il nome del font mancante e installatelo. Io non ho interesse a comporre in cinese, quindi non mi preoccupo; l' "errore" è tutt'altro che fatale, quindi la compilazione in italiano va a buon fine senza problemi e senza arresti per messaggi d'errore. Quello che non devi assolutamente fare è comporre con pdfLaTeX (né caricare i pacchetti inputenc e fontenc necessari per pdfLaTeX), che è quello che ti produce gli errori che lamentavi. Il fatto che sia escluso pdfLaTeX dipende dal fatto che la classe serve ai cinesi per comporre i loro testi in cinese e/o in inglese, e con gli ideogrammi l'accesso ai font OpenType è essenziale. Forse si potrebbe eliminare ogni rifermento al cinese da questa classe, ma la si snaturerebbe.

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top