Problema rientro prima riga Suftesi – Xelatex/Lualatex

  • Questo topic ha 6 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 9 mesi fa da Ale.
  • Creatore
    Topic
  • #122212
    Ale
      Up
      0
      Down
      ::


      Buongiorno, mi arrendo e vi chiedo aiuto.
      Sto utilizzando Suftesi per comporre un libro, impaginando con Lualatex per questioni di font.
      Non riesco a far rientrare la prima riga dopo un capitolo. So che è una questione banale, ma ho provato in tutti i modi a me conosciuti.

      `
      % !TEX encoding = UTF-8 Unicode
      % !TEX TS-program = xelatex
      % !BIB TS-program = biber

      % Class declaration and class options:

      \documentclass[
      11pt,
      pagelayout = periodicalaureo,
      version = cscreen,
      style = smallcaps1,
      liststyle = indented,
      chapnumstyle = dotarabic,
      %headerstyle = authortitleinner,
      tocstyle = leftpage,
      tocchapfont = smallcaps,
      %…other options
      ]{suftesi}

      % XeLaTeX settings:
      \usepackage{fontspec}
      \setmainfont{EB Garamond}

      %\usepackage{polyglossia}
      %\setmainlanguage{italian}
      %anche con Polyglossia>Italian non va, ndr

      \usepackage{indentfirst}
      \usepackage[italian]{babel}

      % Beginning of the document
      \begin{document}

      \mainmatter

      \chapter{}

      Prova\par
      Prova

      \end{document}
      `

      Non funziona né impostando l’italiano con:
      \usepackage{polyglossia}
      \setmainlanguage{italian}

      Nè con l’apposito pacchetto e Babel:
      \usepackage{indentfirst}
      \usepackage[italian]{babel}

      Se compilo con pdflatex va:

      `
      % !TEX encoding = UTF-8 Unicode
      % !TEX TS-program = pdflatex
      % !BIB TS-program = biber

      % Class declaration and class options:

      \documentclass[
      11pt,
      pagelayout = periodicalaureo,
      version = cscreen,
      style = smallcaps1,
      liststyle = indented,
      chapnumstyle = dotarabic,
      %headerstyle = authortitleinner,
      tocstyle = leftpage,
      tocchapfont = smallcaps,
      %…other options
      ]{suftesi}

      \usepackage{indentfirst}
      \usepackage[italian]{babel}

      % Beginning of the document
      \begin{document}

      \mainmatter

      %************************
      \chapter{}
      %************************

      Prova\par
      Prova

      \end{document}
      `

      Mettendo per prova un’altra classe (book) va.

      Chiedo umilmente aiuto 😕

    Visualizzazione 5 filoni di risposte
    • Autore
      Risposte
      • #122213
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Non è un problema di aiuto. Suftesi esplicitamente non rientra la prima riga dopo un titolo; lo dice espressamente nella descrizione dell’opzione parindent.
          Se lo fa componendo con pdflatex, è una cosa sfuggita all’autore.

          Questo almeno è quello che capisco io dopo avere cercato in ogni modo di modificare il tuo esempio con ogni modifica che mi è venuta in mente.

          Se l’autore ha deciso così è perché egli è un umanista a cui piacciono le tradizioni tipografiche degli umanisti; lo dico con tutto il rispetto del caso, perché suftesi è la classe che preferisco usare quando voglio fare cose difficili. Mi alterno fra memoir e suftesi, quando non mi creo classi apposta. Ma non ho mai provato a creare una classe simile a periodicalaureo.

          Ci sarebbe un modo di risolvere un problema, quello di moficiare suftesi.cls.

          La cosa è possibile anche se poco raccomandabile. Si fa così:
          1) si cerca in …/texlive/2024/texmf/tex/latex/suftesi il file suftesi.cls e lo si copia per poi incollarlo nella cartella del proprio documento;
          2) gli si cambia nome per esempio in mysuftesi.cls; questo cambio di nome è importante per non violare il copyright dell’autore originale, il quale per altro consente di apportare modifiche, ma non alla sua versione originale.
          3) a questo punto si può editare il nuovo file; pisogn andare fino alla fine lasciare stare le ultime due righe e commentare le tre righe precedenti; non conviene eliminarle, perché così ci si ricorda più facilmente la modifica apportata.
          4) nella riga \documentclass del sorgente del proprio documento si cambia suftesi in mysuftesi.
          5) si compila e, miracolo, il rientro appare prima di ogni capoverso, anche il primo.

        • #122214
          MatteoF
          Partecipante
            Up
            0
            Down
            ::


            Come anticipato da @OldClaudio, le righe di codice incriminate sono le seguenti:
            `\unless\ifPDFTeX% if xetex or luatex
            \let\@afterindenttrue\@afterindentfalse
            \fi`
            La procedura spiegata da Claudio funziona ma, come giustamente sottolineato, non è raccomandabile. Ad esempio, ogni volta che l’autore aggiorna la classe, tu dovresti ricopiare il file [tt]suftesi.cls[/tt] e ricommentare ogni volta quella parte di codice…

            Dunque, puoi semplicemente aggiungere al tuo preambolo il seguente codice, che “annulla” il comportamento voluto dall’autore:
            `\makeatletter
            \let\@afterindenttrue\if@afterindent
            \makeatother`
            Di seguito un emc:
            `% !TEX TS-program = lualatex

            \documentclass{suftesi}
            \usepackage{fontspec}
            \usepackage{polyglossia}
            \setmainlanguage{italian}
            \usepackage{lipsum}

            \makeatletter
            \let\@afterindenttrue\if@afterindent
            \makeatother

            \begin{document}
            \chapter{Capitolo}
            \lipsum[1]
            \end{document}`
            Se crei tanti documenti e ti scoccia aggiungere ogni volta queste tre righe di codice (oppure vuoi mantenere il preambolo più “pulito”) potresti pensare di crearti un tuo file di stile dove inserire queste e altre personalizzazioni.

            Matteo

            PS: curiosa la scelta dell’autore di impedire l’indentazione della prima riga solamente con [tt]xetex[/tt] e [tt]luatex[/tt], ma non con [tt]pdftex[/tt]… chissà perché…

          • #122215
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Avendo parlato con l’autore, ha trovato un modo più semplice rispetto ad uno più complesso (rispotto a quelllo che ho postato nel precedente messaggio) che gli avevo proposto. Mi ha detto che in realtà la soluzione poù semplice consiste nel racchiudere quelle tre righe dentro l’argomento di un comando \AtBeginDocument. Inoltre bisogna usare un’altra chiave fra le opzioni del tipo chiave=valore da fornire inizialmente alla classe.
              Ho seguito i suoi suggerimenti e funziona come un orologio svizzero con tutti e tre i motori di composizione pdflatex, lualatex e xelatex.
              L’autore mi ha detto che farà qualche altra correzione e che presto caricherà su CTAN una nuova versione corretta.
              Matteo ha ragione a suggerire un file di macro personali, ma fortunatamente presto non sarà necessaria nemmeno quel file personale.

            • #122216
              Ale
                Up
                0
                Down
                ::


                Grazie a entrambi! Immaginavo che modificando la classe si potesse fare, non capivo se fosse un bug o una effettiva scelta (e il bug era pdflatex).

              • #122217
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  A rigore non era un bug di pdfLaTeX ma una impostazione valida solo per Xe e Lua Latex che annullava le impostazioni precomposte da LaTeX e suftesi. Il bug c’era, ma a stretto rigore la colpa non era di pdfLaTeX.

                  L’autore di suftesi ha trovato l’errore del suo codice e sta rivedendo l’intero pacchetto.

                  Tra non molto uscirà nuova versione presumibilmente siglata col numero 3.3.0.

                • #122218
                  Ale
                    Up
                    0
                    Down
                    ::


                    Certo, perdonami, intendevo “il bug nella classe era il fatto che la prima linea non indentata fosse disattivabile con pdfLatex”.
                    So che @ivan è anche uno storico forumer, sono felice di aver un minimo contribuito allo sviluppo della classe.
                    Un caro saluto
                    A

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

                Go to top