Andava con MacTeX 2014, non va più con MacTeX 2015

  • Creatore
    Topic
  • #102504
    Up
    0
    Down
    ::


    Buongiorno a tutti,
    chiedo venia per la domanda assai imprecisa.
    Con la distribuzione MacTeX 2014 avevo scritto un articolo che non mi dava nessun errore nonostante le numerose personalizzazioni inserite nel preambolo, usando texmaker.
    Dopo aver installato e selezionato la distribuzione MacTeX 2015, ho una sfilza di errori e il PDF non si compila.
    Leggendo i messaggi di errore, sospetto che il pacchetto classicthesis sia implicato nel pasticcio ma è un’illazione senza gran fondamento.
    Provo a incollare qui il mio preambolo sperando sia utile e ringrazio anticipatamente chiunque voglia darmi una dritta!
    alex

    `
    \documentclass[10pt,a4paper,pdfspacing,headinclude,footinclude,abstract=on]{scrartcl}
    \usepackage[applemac]{inputenc}
    \usepackage{sectsty}
    \usepackage[T1]{fontenc}
    \usepackage[german, french, english, italian]{babel}
    \usepackage[babel]{csquotes}
    \usepackage{graphicx}
    \usepackage[nochapters,pdfspacing]{classicthesis}
    \usepackage{lipsum}
    \usepackage[backend=biber, style=authoryear-ibid, firstinits=true,terseinits=true, uniquename=false, dashed=false, maxcitenames=2, maxbibnames=6, minbibnames=6, natbib, babel=hyphen]{biblatex}

    \DeclareFieldFormat[article, incollection, inbook]{title}{#1}
    \DeclareFieldFormat[article,incollection]{pages}{#1}

    %toglie “in:” da incollection
    \renewbibmacro{in:}{\ifentrytype{incollection}{}{\printtext{\bibstring{in}\intitlepunct}}}

    % inverte nome e cognome dal secondo autore in poi
    \DeclareNameFormat{last-first}{
    \usebibmacro{name:last-first}{#1}{#4}{#5}{#7}%
    \usebibmacro{name:andothers}}
    \DeclareNameAlias{author}{last-first}
    \renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addcomma\addspace}}

    \DefineBibliographyStrings{english}{%
    pages={p.}
    }
    \DefineBibliographyStrings{italian}{%
    pages={p.}
    }

    % Replaces “and” with “,” in bibliography
    \AtBeginBibliography{
    \renewcommand*{\finalnamedelim}{%
    \ifnumgreater{\value{liststop}}{2}{}{}%
    \addcomma\space}%
    }

    %leva la virgola tra cognome e nome
    \renewcommand*{\revsdnamepunct}{}
    \renewbibmacro{in:}{\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}

    %citeyearpar con citazioni a libri stesso anno
    \DeclareCiteCommand{\citeyearpar}[\mkbibparens]
    {\boolfalse{citetracker}%
    \boolfalse{pagetracker}%
    \usebibmacro{prenote}}
    {\printfield{year}\printfield{extrayear}}
    {\multicitedelim}
    {\usebibmacro{postnote}}

    % “(editor)'' or “(editors)'' instead of “(ed. by)''
    \DefineBibliographyStrings{english}{%
    editor = {editor},%
    issue = {\lowercase{i}ss\adddot},%
    }
    % Like editor+others with comma before editor string and dash checks
    \newbibmacro*{ineditor+others}{%
    \ifboolexpr{ test \ifuseeditor and not test {\ifnameundef{editor}} }
    {\printnames{editor}%
    \setunit{\addcomma \addspace}%
    \usebibmacro{editor+othersstrg}%
    \clearname{editor}}
    {}}

    %Print editors before “in” title
    \renewbibmacro{in:}{%
    \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}%
    \usebibmacro{ineditor+others}%
    \newunit
    \clearname{editor}}

    %Modifica “Ed. by” in nome, editor nei @book
    \renewbibmacro*{byeditor+others}{%
    \ifboolexpr{ test \ifuseeditor and not test {\ifnameundef{editor}} }
    {\printnames{editor}%
    \setunit{\addcomma \addspace}%
    \usebibmacro{editor+othersstrg}%
    \clearname{editor}}
    {}}

    %sposta pagine inbook dopo titolo libro
    \usepackage{xpatch}
    \xpatchbibdriver{inbook}
    {\newunit\newblock
    \usebibmacro{chapter+pages}}
    {}
    {}{\typeout{failed to patch bibmacro incollection to remove page macro}}

    \xpatchbibdriver{inbook}
    {\usebibmacro{series+number}}
    {\usebibmacro{series+number}
    \newunit\newblock
    \usebibmacro{chapter+pages}}
    {}{\typeout{failed to patch bibmacro inbook to re-add page macro}}

    \makeatletter
    \renewcommand{\@biblabel}[1]{[#1]\hfill}
    \makeatother
    \bibliography{Bibliogen}
    \usepackage{quoting}
    \quotingsetup{font=small}
    \usepackage{setspace}

    \begin{document}
    `

Visualizzazione 15 filoni di risposte
  • Autore
    Risposte
    • #102505
      Up
      0
      Down
      ::

      alex75006″ post=102329
      Leggendo i messaggi di errore, sospetto che il pacchetto classicthesis sia implicato nel pasticcio ma è un’illazione senza gran fondamento.

      È molto probabile. Anzi, quasi certo.
      Classicthesis è nota per questo tipo di problemi.
      Devi innanzitutto creare un documento pulito e funzionante con classicthesis.
      Poi aggiungi un po’ alla volta i pacchetti e i comandi che ti servono,ù
      fino ad incontrare l’errore. Se una volta scoperta la causa del problema
      non riesci a risolvere, posta qui i risultati di questa indagine.

      Ciao
      Ivan

    • #102506
      Up
      0
      Down
      ::


      Grazie ivan,
      ho in effetti provato a fare esattamente quel che suggerisci, e appena chiamo classicthesis ricevo come primo errore questo:
      `/usr/local/texlive/2015/texmf-dist/tex/latex/classicthesis/classicthesis.sty | Error | line 415 | ! Paragraph ended before \scr@ttl@@extract was complete.\par`
      Dopodiché segue la lunghissima lista di errori (conseguenti, direi a questo punto).
      Non sarebbe forse più indolore sostituire classicthesis con qualcos’altro di simile?

    • #102507
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        alex75006″ post=102334Grazie ivan,
        ho in effetti provato a fare esattamente quel che suggerisci, e appena chiamo classicthesis ricevo come primo errore questo:
        `/usr/local/texlive/2015/texmf-dist/tex/latex/classicthesis/classicthesis.sty | Error | line 415 | ! Paragraph ended before \scr@ttl@@extract was complete.\par`
        Dopodiché segue la lunghissima lista di errori (conseguenti, direi a questo punto).
        Non sarebbe forse più indolore sostituire classicthesis con qualcos’altro di simile?

        Io veramente con questo codice minimo non ricevo errori in TeX Live 2015:
        `\documentclass[10pt,a4paper,pdfspacing,headinclude,footinclude,abstract=on]{scrartcl}
        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage[italian]{babel}

        \usepackage[nochapters,pdfspacing]{classicthesis}

        \begin{document}
        Questa è una prova
        \end{document}`
        Ciao.
        R.

      • #102508
        Up
        0
        Down
        ::


        robitex grazie 🙂
        Il colpevole era
        `\usepackage{sectsty}` (che non ricordo più a cosa serve ma ora vado a vedere).
        Comunque, eliminandolo, ho solo una decina di avvertimenti il primo dei quali dice: “Usage of package `titlesec’ together(scrartcl) with a KOMA-Script class is not recommended.” e tutto sembra funzionare. Adesso guardo come sistemare quest’ultima cosa.
        Grazie ancora a ivan e robitex e viva il forum GUIT!
        alex

      • #102509
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          L’avvertimento che dice che l’uso di titlesec non è raccomandato con scrartcl è perché le classi koma-Script provvedono da sole ai cambiamenti di forma e di stile di quasi tutto; quindi per coerenza vuole farlo con i suoi comandi interni onde evitare conflitti e altri problemi.

          Gli altri avvertimenti probabilmente sono altrettanto innocui.

        • #102510
          Up
          0
          Down
          ::


          Grazie OldClaudio, ma che pacchetto ha caricato titlesec?
          Nel preambolo non appare da nessuna parte…
          Potrei lasciare così, ma vorrei risolvere anche per capire la meccanica.

        • #102511
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::

            alex75006″ post=102345Grazie OldClaudio, ma che pacchetto ha caricato titlesec?
            Nel preambolo non appare da nessuna parte…
            Potrei lasciare così, ma vorrei risolvere anche per capire la meccanica.

            Se aggiungi [tt]\listfiles[/tt] nel tuo file puoi vedere alla fine del file .log la lista completa dei pacchetti principali e derivati caricati da ciò che si trova nel preambolo.
            Oppure se hai un po’ pù di pazienza, puoi leggere dall’inzio il file .log e puoi scoprire anche chi carica che cosa; Nel file .log quando legge un file ne mette l’informazione preceduta da una parentesi tonda aperta, e mette la corrispondente parentesi chiusa quando ha finito di leggere il file. Quindi quando apre una tonda per iniziare una lettura senza che sia sta messa la tonda chiusa dopo la lettura del file precedente, quel file precednte è quello che carica il file seguente.

            La lettura del file .log non è una lettura divertente, ma con un po’ di pazienza si scoprono tante cose che vanno bene o che vanno male durante la composizone di un documento. La sua lettura dovrebbe essere un abbligo ogni volta che si compone un documento; potrebbero esseri degli errori occulti che non si scoprono finche non si legge il file .log.

          • #102512
            Up
            0
            Down
            ::


            Non ne sono ancora venuto a capo ma mi hai spiegato come riuscirci.
            Posto la soluzione appena la trovo.
            Ciao!

          • #102513
            Up
            0
            Down
            ::


            Dunque, mi sembra che la cosa sia irrisolvibile, perché classicthesis carica automaticamente titlesec.
            Mi sono chiesto se il vero responsabile non sia l’opzione “nochapters” di classicthesis; ma se carico classicthesis senza “nochapters”, Texmaker si blocca e il PDF non viene fuori, quindi mi è impossibile verificare.
            Questo è quanto sono riuscito a capire finora!

          • #102514
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::



              @Alex75006
              , la tua disavventura conferma ancora una volta che non bisogna usare ClassicThesis se non per usare quel pacchetto senza modifica alcuna. Personalmente lo sconsiglio sempre.
              Sto predisponendo una guida che dovrebbe essere di complemento all’Arte di di scrivere con LaTeX, che a sua volta usa classicthesis e arsclassica.
              Mi sono creato una classe apposta in modo da poter usare le cose veramente funzionali alla guida ma mantenendo lo stesso look. Non è stato particolarmente difficile, salvo il fatto che alcune cose non possono essere composte con lstlisting, in quanto questo ancora non gestisce bene la codifica utf8; cosa per me essenziale perché devo scrivere alcune cose con altri alfabeti, anche retrogradi (ebraico, arabo,…) o verticali (giapponese,…). Mantenendo gli stessi pacchetti dell’Arte, non si sarebbe potuto fare; modificare i vincoli imposti da ClassicThesis richiedeva di fatto di scrivere una nuova classe.
              Il risultato che si ottiene con ClassicThesis, quando lo si può usare senza modifiche, è molto bello; questo è fuori discussione. Ma ClassicThesis non è adatto a tutto e un certo numero di personalizzazioni devono venire impostate. La cosa migliore da fare in questi casi è provare a eseguire le personalizzazioni con due ore di lavoro; se non ci si riesce in due ore, si usi una classe generalista come book e si apportino tutte le modifiche che si vogliono realizzare; oppure scegliere una classe fortemente personalizzabile in ogni suo aspetto, come memoir, e si usino i suoi comandi di personalizzazione (con memoir si riesce a fare praticamente tutto).
              Le guide tematiche di questo sito sono composte con una classe che a seconda di una opzione può basarsi su book oppure su memoir. È solo un esempio, ma è la riprova che anche con la classe book si riescono a fare le cose che si fanno con memoir; con book le personalizzazioni sono forse un pochino più difficili da fare, ma il risultato è lo stesso.

            • #102515
              Up
              0
              Down
              ::


              OldClaudio, effettivamente a suo tempo mi ero dannato per ben più di due ore per piegare classicthesis alla mia volontà.
              Ma ora, con memoir (davvero eccellente), le cose sono andate a posto perfettamente e con facilità: quindi ti ringrazio della duplice dritta.
              L’unica cosa che ho appena notato è che l’allineamento sinistro delle voci della bibliografia fa un po’ quel che vuole:

              [attachment=1360]biblio1.png[/attachment]

              [attachment=1361]biblio2.png[/attachment]

              Ci sarà ben una soluzione, ora setaccio il manuale e la rete.

              Aggiungo: forse è semplicemente il problema di Overfull \hbox che mi segnala alla riga dove c’è scritto \end{document}.

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


                Le voci della bibliografia sono incolonnate male perché c’è qualcosa che non va nella bibliografia. Ma su questo, se comunichi come fai la bibliografia e in particolare mostri come sono scritti quei quattro rifermenti, è difficile dire perché le cose funzionino in quel modo.

              • #102517
                Up
                0
                Down
                ::


                Per eliminazione ho trovato il comando che produce il cattivo incolonnamento, e che avevo inserito perché richiesto dalla rivista:

                `% inverte nome e cognome dal secondo autore in poi
                \DeclareNameFormat{last-first}{
                \usebibmacro{name:last-first}{#1}{#4}{#5}{#7}%
                \usebibmacro{name:andothers}}
                \DeclareNameAlias{author}{last-first}
                \renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addcomma\addspace}}`

                La bibliografia è fatta appoggiandomi a BibDesk, e la stampo con \printbibliography. La lista di tutti i comandi di personalizzazione è nel mio primo post del filo.

              • #102518
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Metti un segno di commento dopo ogni graffa a fine riga, che sia aperta o chiusa non ha importanza; metti il segno di commento comunque; se per caso non servisse, comunque non disturba.

                • #102519
                  Up
                  0
                  Down
                  ::


                  Serve eccome! È andato tutto a posto.
                  Non è il genere di accorgimenti che si trova nei manuali… Mi (ti) chiedo se risponde a una logica generale e perché.
                  Grazie ancora.

                • #102520
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    La logica generale è che in modo orizzontale (quando Latex scrive delle parole in una riga di testo) gli spazi e i fine riga dopo le graffe sono sempre significativi. In modo verticale non lo sono.

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

                Go to top