Template PhD-UNIVPM non funzionante

  • Creatore
    Topic
  • #66416
    Up
    0
    Down
    ::


    Salve a tutti.
    Sono alla fine del mio dottorato e la mia facoltà mette a disposizione un template per la stesura della propria tesi sia in Word che, grazie a Dio, in Latex. Vi fornisco il link. Purtroppo, oltre ad usare pacchetti molto vecchi, nel caso si voglia usare l’abiente table o figure questi non funzionano… potreste darmi una mano?

    Saluti
    Marco

Visualizzazione 45 filoni di risposte
  • Autore
    Risposte
    • #66417
      Up
      0
      Down
      ::

      warcomeb” post=65461Salve a tutti.
      Sono alla fine del mio dottorato e la mia facoltà mette a disposizione un template per la stesura della propria tesi sia in Word che, grazie a Dio, in Latex. Vi fornisco il link. Purtroppo, oltre ad usare pacchetti molto vecchi, nel caso si voglia usare l’abiente table o figure questi non funzionano… potreste darmi una mano?

      Saluti
      Marco

      Sei obbligato ad usare quella classe?
      A parte i problemi con table e figure, la casse definisce il layout in modo alquanto contorto, partendo da una classe Koma:
      `\documentclass[chapterprefix,appendixprefix,10pt]{scrbook}
      `
      Non conosco scrbook, ma sicuramente si può fare di meglio.
      Se invece puoi usare anche un’altra classe non hai che l’imbarazzo della scelta. Per il frontespizio userai:
      `\usepackage{frontespizio}`

      Ciao
      Ivan

    • #66418
      Up
      0
      Down
      ::


      E’ si, sono obbligato… altrimenti come quando ho scritto la tesi, avrei usato molto volentieri ClassicThesis…

    • #66419
      Up
      0
      Down
      ::

      warcomeb” post=65466E’ si, sono obbligato… altrimenti come quando ho scritto la tesi, avrei usato molto volentieri ClassicThesis…

      Allora questa è una fortuna 😉 Non mi piace classicthesis, ma lo stile che ti obbligano da utilizzare (cioè, presumo, l’esempio Tesi.tex) è orribile.
      D’altra parte sembra proprio che il pacchetto doublespace sia richiesto dalla tua scuola (link) :shock:.
      Il problema che riscontri non dovuto al file di classe, ma a qualche pacchetto che carichi. Prova ad eliminare tutti quelli che non ti servono. Per esempio subfigure (eventualmente usa subfig), epsfig, psfig (tra quelli caricati dal file d’esempio Tesi.tex)

      Ciao
      Ivan

    • #66420
      Up
      0
      Down
      ::

      warcomeb” post=65461Salve a tutti.
      Sono alla fine del mio dottorato e la mia facoltà mette a disposizione un template per la stesura della propria tesi sia in Word che, grazie a Dio, in Latex. Vi fornisco il link. Purtroppo, oltre ad usare pacchetti molto vecchi, nel caso si voglia usare l’abiente table o figure questi non funzionano… potreste darmi una mano?

      Saluti
      Marco

      Il pacchetto che non è compatibile è rotating. Direi che puoi lasciare solo questo nel tuo preambolo:
      `\usepackage[italian,english]{babel}
      \usepackage{cite}
      \usepackage{amsmath}
      \usepackage{amssymb}
      \usepackage{amsthm}
      \usepackage{doublespace} %% <-- Package per definire una spaziatura diversa` Vediamo quelli eliminati: 1. rotating è quello che ti dà il problema (suppongo sia un’incompatibilità con scrbook)

      2. epsfig e psfig sono obsoleti e non vanno mai usati in nuovi documenti.

      3. subfigure è obsoleto; usa subfig o subcaption, se proprio ti serve avere sottofigure o sottotabelle.

      4. caption2 è obsoleto; per le didascalie scrbook ha i suoi sistemi.

      5. amsfonts non serve se già carichi amssymb

      6. eucal e mathrsfs servono per avere alfabeti calligrafici diversi dallo standard. Caricali se ti servono.

      Di cite non sono sicuro: ti serve davvero?

      Ciao
      Enrico

    • #66421
      Up
      0
      Down
      ::


      Grazie enrico, sempre a salvarmi dai guai!

      Vediamo quelli eliminati:

      1. rotating è quello che ti dà il problema (suppongo sia un’incompatibilità con scrbook)

      2. epsfig e psfig sono obsoleti e non vanno mai usati in nuovi documenti.

      3. subfigure è obsoleto; usa subfig o subcaption, se proprio ti serve avere sottofigure o sottotabelle.

      4. caption2 è obsoleto; per le didascalie scrbook ha i suoi sistemi.

      5. amsfonts non serve se già carichi amssymb

      6. eucal e mathrsfs servono per avere alfabeti calligrafici diversi dallo standard. Caricali se ti servono.

      Di cite non sono sicuro: ti serve davvero?

      Io ancora non ho iniziato a scrivere la tesi, me lo ha fatto notare un’altro ragazzo che table e figure non andavano. Quello che ho fatto io è stato scaricare il pacchetto ed aggiornare i comandi con i miei metadati. Non ho tolto nessun pacchetto perchè pensavo servissero a rendere il template uguale a quello word: per questo ho lasciato caption2 ad esempio!

      Comunque faccio una prova e vi faccio sapere!

      Ciao e grazie
      Marco

    • #66422
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Sì, credo anch’io che si tratti di rotating; ci sono altri pacchetti che riescono a ruotare una figure, per esempio ctable, ma ci sono diversi esperti a cui ctable non piace. A me sembra interessante, ma non si pu`ø mai dire. prova a sostituire ctable a rotaing cambiando anche le opzioni come da documentazione texdoc ctable
        Ti suggerisco di cambiare il nome di logopoli.* in logopoliAN.* oppure logopoliUPM.*. Ci sono altri tre politecnici in Italia con i loghi LogopoliTO, LogopoliMI, LogopoliBA. se gli studenti di tutti i politecnici e università politecniche chiamassero i loro loghi con logopoli, sai te che confusione; mi dirai, ma ognuno scirve la sua tesi per il suo Poli; già ma internet consente di spedirsi i file di classe o di inviare i link, come hai fatto tu, e poi non ci si capisce più niente. 😀 😉

        Mi stupisce il fatto che il formato della pagina debba essere così piccolo, anche se poi viene stampato su carta A4; su questa carta restano dei margini enormi, se invece si guarda al file phdthesi.cls la carta viene impostata a 16cm per 24cm, meno del formato “ottavo” standard. Siete anche obbligati a farvi rilegare la tesi in un formato così piccolo? Trovo la cosa molto strana.

      • #66423
        Up
        0
        Down
        ::

        OldClaudio” post=65479
        Mi stupisce il fatto che il formato della pagina debba essere così piccolo, anche se poi viene stampato su carta A4; su questa carta restano dei margini enormi, se invece si guarda al file phdthesi.cls la carta viene impostata a 16cm per 24cm, meno del formato “ottavo” standard. Siete anche obbligati a farvi rilegare la tesi in un formato così piccolo? Trovo la cosa molto strana.

        Pare proprio di sì:
        http://e-ntrasites.univpm.it/Ingegneria/Engine/RAServeFile.php/f//readme.pdf

        Ciao
        Ivan

      • #66424
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Il file readme.pdf dice delle cose inesatte, come per esempio quella che la compilazione con pdflatex non funziona e bisogna passare attraverso latex – dvips — ps2pdf. Forse non era vera una volta, ma ora funziona benissimo (a parte rotating che non ho provato).

          Ho però cancellato i pacchetti inutili che ti ha indicato Enrico, e così ho visto che non si può usare subfig, perché chiama caption, e questo è incompatibile con la classe scrbook; poi cancella re caption2, ma devi lasciare subfigure, che è obsoleto.

          Però puoi fare una rova: sostituisci book a scrbook dovunque questa classe venga chiamata, comprese le sue opzioni specifiche; mettici book al posto e prima di usare \areaset, richiedi il pacchetto typearea che appunto non è spcifico delle classi KOMA, che lo caricano di default, ma può essere caricato da qualunque classe. Dopo di che non hai problemi con subfig.

          Ti segnalo che le definizioni del tuo preambolo di \larr, \rarr, \lmat, \rmat sono dei pugni nell’occhio, specialmente dopo aver chiamato il pacchetto amsmath; le matrici delimitate da parentesi quadre si realizzano con l’ambiente bmatrix e l’array di 20 colonne si ottiene semplicemente usando la stessa espressione della matrice ma impostando il valore del contatore \MaxMatrixCols a 20 mediante il solito comando \setcounter; lo spazio fra le parentesi quadre e la matrice è più adatto di quello che si può ottenere con \left e \right e anche gli eventuali esponenti sono collocati meglio.
          a maggior parte degli altri comandi sono di “antica” tradizione TeXiana; gli utenti di plain TeX hanno sempre considerato troppo lunghi i comandi di LaTeX e hanno sempre cercato di abbreviarli mediante la definizione di comandi ad hoc. Risultato, solo loro riescono a leggere i loro file sorgente e non risparmiano granché, visto che invece di ricordare un comando standard, magari di qualche battuta più lungo, devono sempre avere sott’occhio il loro “traduttore”; risparmiano certamente olio di gomito ma consumano più olio di cervello.

          Come mezzo marchigiano, sono particolarmente sensibile a quello che accade nelle Marche e mi spiace che alla UPM “spaccino” materiale obsoleto, accompagnato da istruzioni obsolete (benché scritte nel 2010) 🙁

        • #66425
          Up
          0
          Down
          ::

          OldClaudio” post=65483
          Come mezzo marchigiano, sono particolarmente sensibile a quello che accade nelle Marche e mi spiace che alla UPM “spaccino” materiale obsoleto, accompagnato da istruzioni obsolete (benché scritte nel 2010) 🙁

          Fossero scritte almeno con LaTeX… (vedi proprietà del .pdf)

          Ciao
          Ivan

        • #66426
          Up
          0
          Down
          ::

          OldClaudio” post=65483Come mezzo marchigiano, sono particolarmente sensibile a quello che accade nelle Marche e mi spiace che alla UPM “spaccino” materiale obsoleto, accompagnato da istruzioni obsolete (benché scritte nel 2010) 🙁

          Grazie degli utili consigli, cercherò di sistemarlo, oppure cercherò di convincere la presidenza di ingegneria a fare qualcosa di nuovo (o magari lo faccio io…).

        • #66427
          Up
          0
          Down
          ::

          ivan” post=65485

          Come mezzo marchigiano, sono particolarmente sensibile a quello che accade nelle Marche e mi spiace che alla UPM “spaccino” materiale obsoleto, accompagnato da istruzioni obsolete (benché scritte nel 2010) 🙁

          Fossero scritte almeno con LaTeX… (vedi proprietà del .pdf)

          Ciao
          Ivan

          in che senso “vedi proprietà .pdf”?

        • #66428
          Up
          0
          Down
          ::

          warcomeb” post=65486

          Come mezzo marchigiano, sono particolarmente sensibile a quello che accade nelle Marche e mi spiace che alla UPM “spaccino” materiale obsoleto, accompagnato da istruzioni obsolete (benché scritte nel 2010) 🙁

          Grazie degli utili consigli, cercherò di sistemarlo, oppure cercherò di convincere la presidenza di ingegneria a fare qualcosa di nuovo (o magari lo faccio io…).

          Buona idea. Vedrai che non è per niente difficile ottenere un risultato migliore.

          Per quanto riguarda l’altro quesito, apri il file readme.pdf con Acrobat Reader. Poi vai su:
          `File >> Proprietà`
          Scoprirai che quelle note sono state composte con Pages (una specie di “impaginatore” processor per Mac).
          Si riconosceva anche da altri elementi, come l’elenco con i globi dorati alla fine.

          Ciao
          Ivan

        • #66429
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::

            l’elenco con i globi d’orati alla fine.

            😕 😕 😕

          • #66430
            Up
            0
            Down
            ::


            Salve a tutti, sono stato autorizzato a rifare questo template con classi e funzioni aggiornate ad oggi (invece che al 2002)… l’unico vincolo è che il template deve essere graficamente identico al precedente dato che il template per Word non verrà toccato.

            Ho alcune domande:

            1) Meglio pare un pacchetto da usare con scrbook, oppure una nuova classe?

            2) esiste una guida su come fare al meglio sia la classe che il pacchetto (io scrivo con latex da 7 anni, ma raramente mi sono trovato a modificare o fare qualcosa da me)?

            grazie
            Marco

          • #66431
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              È apparsa qui sopra in “Documentazione” la sezione delle guide tematiche e una di queste riguarda la scrittura di classi e pacchetti. 😉

            • #66432
              Up
              0
              Down
              ::

              È apparsa qui sopra in “Documentazione” la sezione delle guide tematiche e una di queste riguarda la scrittura di classi e pacchetti.

              ho letto quasi tutta la guida… è molto al di sopra delle mie competenze! 🙁

              1) Meglio pare un pacchetto da usare con scrbook, oppure una nuova classe?

              secondo voi, cosa mi conviene fare, dato che avete visto la vecchia classe?

              Ciao
              Marco

            • #66433
              Up
              0
              Down
              ::


              Non riesco a capire il senso di questi comandi contenuti nel vecchio template:

              `\def\@thesisnameenglish{Ph.D. Dissertation of:}
              \newcommand{\thesisnameenglish}[1]{\def\@thesisnameenglish{#1}}
              `

              guardandola penserei che \thesisnameenglish venga definito due volte!

            • #66434
              Up
              0
              Down
              ::

              warcomeb” post=66321Non riesco a capire il senso di questi comandi contenuti nel vecchio template:

              `\def\@thesisnameenglish{Ph.D. Dissertation of:}
              \newcommand{\thesisnameenglish}[1]{\def\@thesisnameenglish{#1}}
              `

              guardandola penserei che \thesisnameenglish venga definito due volte!

              \thesisnameenglish è un comando il cui argomento è la definizione di un altro comando: \@thesisnameenglish.
              All’interno del file di classe usi il comando \@thesisnameenglish, che definisci nel tuo documento con \thesisnameenglish{}.

              Nel file di classe farei così:
              `\newcommand{\thesisnameenglish}[1]{\def\@thesisnameenglish{#1}}
              \thesisnameenglish{Ph.D. Dissertation of:}
              `

              Puoi ridefinire \@thesisnameenglish scrivendo, per esempio, nel corpo del documento:
              `
              \thesisnameenglish{Ph.D. Thesis of:}
              `

              Ciao
              Ivan

            • #66435
              Up
              0
              Down
              ::


              Ciao a tutti. Sto seguendo la guida che mi è stata consigliata da OldClaudio, ed ho un problema!!

              vi posto il codice che mi viene generato compilando il dtx

              univpmphdthesis.cls
              `
              \NeedsTeXFormat{LaTeX2e}[1999/12/01]
              \ProvidesClass{univpmphdthesis}%
              [2011/12/10 v.1.0 Template for PhD thesis of Università Politecnica delle Marche]
              \DeclareOption*{\PassOptionToClass{10pt,twoside,openright,chapterprefix=true}{scrbook}}
              \LoadClass{scrbook}
              \RequirePackage{ifthen}
              \newboolean{phdthesis@a4print}
              \DeclareOption{a4print}{\setboolean{{phdthesis@a4print}}{true}}
              \ProcessOptions\relax
              \RequirePackage[utf8]{inputenc}
              \RequirePackage[T1]{fontenc}
              \PassOptionsToPackage{twoside=true}{geometry}
              \RequirePackage{geometry}
              \geometry{%
              paperwidth=16cm,
              paperheight=24cm,
              margin=2cm,
              bindingoffset=0.4cm
              }
              \PassOptionsToPackage{pdftex,%
              hyperfootnotes=false,%
              pdfpagelabels}{hyperref}
              \RequirePackage{hyperref}
              \ifthenelse{\boolean{phdthesis@a4print}}%
              {%
              \PassOptionsToPackage{a4,%
              center,%
              cam}{crop}%
              \RequirePackage{crop}%
              }{\relax}%
              \endinput
              `

              e compilando un banalissimo codice di esempio come prova.tex
              `\documentclass{univpmphdthesis}

              \usepackage{lipsum}

              \begin{document}

              \tableofcontents

              \chapter{provina}

              \lipsum[1-10]

              \section{nonna ce prova}

              \lipsum[1-20]

              \chapter{prova probettt}

              \lipsum[5-20]

              \appendix

              \chapter{cippolippo}

              \lipsum[3-30]

              \end{document}`

              mi da questo errore:
              `! LaTeX Error: \RequirePackage or \LoadClass in Options Section.

              See the LaTeX manual or LaTeX Companion for explanation.
              Type H for immediate help.

              l.36 \RequirePackage
              {ifthen}
              `

              che cosa succede??
              grazie
              Marco

            • #66436
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Che prima di \LoadClass devi mettere il comando \ProcessOptions

              • #66437
                Up
                0
                Down
                ::


                questo è il nuovo errore

                `! Undefined control sequence.
                \default@ds ->\PassOptionToClass
                {10pt,twoside,openright,chapterprefix=true}…
                l.36 \LoadClass
                {scrbook}
                `

                dopo aver inserito queste righe nella classe:

                `
                \DeclareOption*{\PassOptionToClass{10pt,twoside,openright,chapterprefix=true}{scrbook}}
                \ProcessOptions
                \LoadClass{scrbook}
                `

                perché??

              • #66438
                Up
                0
                Down
                ::

                warcomeb” post=66569questo è il nuovo errore

                `! Undefined control sequence.
                \default@ds ->\PassOptionToClass
                {10pt,twoside,openright,chapterprefix=true}…
                l.36 \LoadClass
                {scrbook}
                `

                dopo aver inserito queste righe nella classe:

                `
                \DeclareOption*{\PassOptionToClass{10pt,twoside,openright,chapterprefix=true}{scrbook}}
                \ProcessOptions
                \LoadClass{scrbook}
                `

                perché??

                Il comando si chiama \PassOptionsToClass.

                Comunque non mi è chiara l’utilità di quello che fai, in particolare di
                `\DeclareOption*{\PassOptionToClass{10pt,twoside,openright,chapterprefix=true}{scrbook}}`
                Così tu passi a scrbook le opzioni “10pt,twoside,openright,chapterprefix=true” ogni volta che a univpmphdthesis viene passata un’opzione diversa da a4print.

                Se le tue intenzioni sono passare prima delle opzioni di default a scrbook e poi rigiragli anche quelle che vengono passate a univpmphdthesis, allora dovresti scrivere qualcosa di questo tipo:
                `
                % carichiamo ifthen e dichiariamo i booleani per le opzioni
                \RequirePackage{ifthen}
                \newboolean{phdthesis@a4print}

                % dichiariamo le opzioni
                \DeclareOption{a4print}{\setboolean{phdthesis@a4print}{true}}
                \DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}

                % passiamo le opzioni predefinite, poi elaboriamo le opzioni dell'utente e infine carichiamo la classe
                \PassOptionsToClass{10pt,twoside,openright,chapterprefix=true}{scrbook}
                \ProcessOptions\relax
                \LoadClass{scrbook}

                % a questo punto carichi tutti i pacchetti che ti servono e fai tutto il resto
                …`

                Ciao,
                Antonio

              • #66439
                Up
                0
                Down
                ::


                Ciao Antonio,
                l’intenzione è di passare a scrbook solo quelle che ho scritto
                `10pt,twoside,openright,chapterprefix=true` e niente altro.

                le opzioni che l’utente passa alla mia classe non devono essere passate a scrbook per evitare che il template venga modificato graficamente.

                quindi quali sono i comandi più logici per fare questo?

                grazie,
                Marco

              • #66440
                Up
                0
                Down
                ::

                warcomeb” post=66587Ciao Antonio,
                l’intenzione è di passare a scrbook solo quelle che ho scritto
                `10pt,twoside,openright,chapterprefix=true` e niente altro.

                le opzioni che l’utente passa alla mia classe non devono essere passate a scrbook per evitare che il template venga modificato graficamente.

                quindi quali sono i comandi più logici per fare questo?

                grazie,
                Marco

                Dal codice che ti ho scritto, basta che elimini la riga con \DeclareOption*.

              • #66441
                Up
                0
                Down
                ::


                Ciao ragazzi, ultima domanda e poi vi lascio in pace e vi mostro come ho fatto la classe sperando in qualche vostra critica per migliorarla.
                Nel vecchio template ho trovato questi due comandi di cui non capisco l’utilità:

                `\renewcommand*\chapter{\if@openright\clearpage
                \if@twoside \ifodd\c@page\else
                \hbox{}\thispagestyle{empty}\newpage
                \if@twocolumn\hbox{}\thispagestyle{empty}\newpage\fi\fi\fi
                \else\clearpage\fi
                \thispagestyle{plain}%
                \global\@topnum\z@
                \@afterindentfalse
                \pagestyle{headings}
                \secdef\@chapter\@schapter}

                \renewcommand*\part{\if@openright\clearpage
                \if@twoside \ifodd\c@page\else
                \hbox{}\thispagestyle{empty}\newpage
                \if@twocolumn\hbox{}\thispagestyle{empty}\newpage\fi\fi\fi
                \else\clearpage\fi
                \thispagestyle{plain}%
                \if@twocolumn
                \onecolumn
                \@tempswatrue
                \else
                \@tempswafalse
                \fi
                \null\vfil
                \pagestyle{headings}
                \secdef\@part\@spart}`

                sono utili? a cosa servono ridefiniti in questo modo? non li capisco prorpio

                ciao
                Marco

              • #66442
                Up
                0
                Down
                ::


                Nessuno mi aiuta??? da semineofita mi sembra che si vuole far iniziare anche i capitoli senza numero a destra, giusto??? si può migliorare il codice?

                help me!

                Ciao
                Marco

              • #66443
                Up
                0
                Down
                ::

                warcomeb” post=66692Ciao ragazzi, ultima domanda e poi vi lascio in pace e vi mostro come ho fatto la classe sperando in qualche vostra critica per migliorarla.
                Nel vecchio template ho trovato questi due comandi di cui non capisco l’utilità:

                `\renewcommand*\chapter{\if@openright\clearpage
                \if@twoside \ifodd\c@page\else
                \hbox{}\thispagestyle{empty}\newpage
                \if@twocolumn\hbox{}\thispagestyle{empty}\newpage\fi\fi\fi
                \else\clearpage\fi
                \thispagestyle{plain}%
                \global\@topnum\z@
                \@afterindentfalse
                \pagestyle{headings}
                \secdef\@chapter\@schapter}

                \renewcommand*\part{\if@openright\clearpage
                \if@twoside \ifodd\c@page\else
                \hbox{}\thispagestyle{empty}\newpage
                \if@twocolumn\hbox{}\thispagestyle{empty}\newpage\fi\fi\fi
                \else\clearpage\fi
                \thispagestyle{plain}%
                \if@twocolumn
                \onecolumn
                \@tempswatrue
                \else
                \@tempswafalse
                \fi
                \null\vfil
                \pagestyle{headings}
                \secdef\@part\@spart}`

                sono utili? a cosa servono ridefiniti in questo modo? non li capisco prorpio

                ciao
                Marco

                La ridefinizione di \chapter fa due cose in più rispetto a scrbook, ma entrambe non mi sembrano grandi scelte. La prima è l’equivalente che ottieni passando cleardoublepage=empty tra le opzioni a scrbook. La seconda è specificare \pagestyle{headings} a ogni capitolo, quando basterebbe specificarlo una volta sola.

                La ridefinizione di \part mi sembra che alteri anche la spaziatura verticale, ma non ci metto la mano sul fuoco. 🙂

                In definitiva, secondo me puoi farne a meno. Passa cleardoublepage=empty a scrbook e leggi la documentazione (scrguien.pdf) riguardo alle testatine per scegliere quali vuoi e specificarle una volta per tutte.

                Ciao,
                Antonio

              • #66444
                Up
                0
                Down
                ::


                Sono ancora io… e spero in un altro vostro aiuto!!

                io ho messo questo nella mia classe:
                `
                \ifthenelse{\boolean{univpm@english}}%
                {%
                \RequirePackage[italian,english]{babel}
                }%
                {%
                \RequirePackage[english,italian]{babel}
                \RequirePackage{indentfirst}
                }
                `

                pensando che la lingua inserita per ultima fosse quella predefinita, ed invece no, devo mettere nel preambolo del mio documento il comando \selectlanguage!! perché??

              • #66445
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Chi e quando imposta la variabile univpm@english ?

                  è ovvio che prima di eseguire \ifthenelse la variabile booleana deve avere avuto una impostazione, non solo la definizione; se non l’ha avuta esegue solo il secondo ramo dell’alternativa e quindi english non verrà mai impostato in modo automatico.

                • #66446
                  Up
                  0
                  Down
                  ::


                  Ovviamente viene impostata dall’utente che sceglie obbligatoriamente tra italiano e inglese (altrimenti viene lanciato un errore), comunque il problema è che se non metto \selectlanguage tutte le parole come indice, capitolo e via dicendo vengono fuori in inglese invece che in italiano!
                  Uso la stessa variabile per creare il fontespizio, e li non ho problemi…

                  Ciao
                  Marco

                • #66447
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    La variabile booleana viene impostata in seguito alla specifica di una opzione per la classe? Come viene definita la variabile e qual è il suo valore di prima definizione; come viene modificata dall’opzione?

                    In uno degli ultimi post avevi detto che ci mostravi quello che avevi fatto, ma poi ti sei dilungato su che cosa facessero i comandi per i capitoli e per le parti. Forse ti sei dimenticato di accludere la classe oppure di mettere un link al sito dove la si potrebbe scaricare. Molte delle domande che fai potrebbero trovare una risposta migliore e più rapida se si disponesse dell’intera classe; però non introdurla come codice qui in un messaggio; potrebbe essere troppo lungo.

                  • #66448
                    Up
                    0
                    Down
                    ::


                    Hai ragione, perdonami. 😳

                    Lo carico sul mio server, in modo tale che riesco sempre a darvi quello aggiornato. Vi carico il cls e il dtx.

                    Grazie
                    Marco

                  • #66449
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Scaricato; adesso ci do un’occhiata.

                    • #66450
                      OldClaudio
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        Ti ho mandato epr mail privata un po’ di commenti e il file .cls modificato.

                        La cosa sarebbe troppo lunga da spiegare sul forum a causa delle numerose modifiche che ho fatto.

                        Tuttavia per conoscenza degli altri frequentatori del forum il problema nasceva dal fatto che certe variabili booleane impostate vere o false dalle opzioni linguistiche non sopravvivevano al trattamento di \ProcessOptions. Non sono riuscito a trovare il perché, benché abbia tracciato i comandi eseguiti dai comandi \DeclareOption e \ProcessOptions; ma la soluzione trovata mi pare persino più semplice, o forse è solo una idea; comunque funziona.

                        Ora funziona tutto correttamente, almeno per l’italiano e l’inglese.

                        Le altre modifiche, per lo più riguardano il modo di programmare, affinché il codice sia più efficiente.

                      • #66451
                        Up
                        0
                        Down
                        ::


                        Grazie Claudio per il tuo aiuto!!

                        Sinceramente non capisco perché non sopravvivevano quelle opzioni, dato che il frontespizio mi veniva stampato correttamente in base alla lingua che sceglievo!!

                        comunque grazie, sto elaborando quello che mi hai mandato per capirci qualcosa!! 😳

                        Ciao
                        Marco

                      • #66452
                        Up
                        0
                        Down
                        ::


                        Anche se ormai Claudio ti avrà corretto il codice, ho cercato una spiegazione per il problema della lingua. E l’ho trovata! 🙂

                        La causa risiede nel fatto che ciascun pacchetto (quindi anche babel) analizza prima le opzioni della classe e poi quelle passate al pacchetto stesso. Il risultato è che, passando italian alla classe, babel legge per prima l’opzione italian. Successivamente, analizzando le opzioni passate a babel stesso, legge english e poi di nuovo italian. Ma siccome aveva già letto italian, la ignora, e di conseguenza l’ultima lingua specificata rimane english. Così succede esattamente l’opposto di quel che si vorrebbe. Una soluzione è usare specificare esplicitamente la lingua principale, ma questo va fatto attraverso \AtBeginDocument o simili (perché babel di suo lo fa tramite \AtBeginDocument e quindi bisogna “sovrascriverlo”):
                        `\RequirePackage[italian,english]{babel}

                        \ifthenelse{\boolean{univpm@english}}
                        {
                        \AtBeginDocument{\selectlanguage{english}}
                        }
                        {
                        \AtBeginDocument{\selectlanguage{italian}}
                        \RequirePackage{indentfirst}
                        }`
                        Nota che non serve mettere RequirePackage dentro l’ifthenelse (e non servono nemmeno quei %, ma vabbè è un dettaglio).

                        Fonti: qua e qua.

                        Ciao,
                        Antonio

                      • #66453
                        Up
                        0
                        Down
                        ::

                        antonio.macrì” post=66912Anche se ormai Claudio ti avrà corretto il codice, ho cercato una spiegazione per il problema della lingua. E l’ho trovata! 🙂

                        La causa risiede nel fatto che ciascun pacchetto (quindi anche babel) analizza prima le opzioni della classe e poi quelle passate al pacchetto stesso. Il risultato è che, passando italian alla classe, babel legge per prima l’opzione italian. Successivamente, analizzando le opzioni passate a babel stesso, legge english e poi di nuovo italian. Ma siccome aveva già letto italian, la ignora, e di conseguenza l’ultima lingua specificata rimane english. Così succede esattamente l’opposto di quel che si vorrebbe. Una soluzione è usare specificare esplicitamente la lingua principale, ma questo va fatto attraverso \AtBeginDocument o simili (perché babel di suo lo fa tramite \AtBeginDocument e quindi bisogna “sovrascriverlo”):
                        `\RequirePackage[italian,english]{babel}

                        \ifthenelse{\boolean{univpm@english}}
                        {
                        \AtBeginDocument{\selectlanguage{english}}
                        }
                        {
                        \AtBeginDocument{\selectlanguage{italian}}
                        \RequirePackage{indentfirst}
                        }`
                        Nota che non serve mettere RequirePackage dentro l’ifthenelse (e non servono nemmeno quei %, ma vabbè è un dettaglio).

                        Fonti: qua e qua.

                        Ciao,
                        Antonio

                        Una classe non deve mai prevedere supporto esplicito per una o più lingue; oppure deve vietare l’uso di lingue non previste.

                        Solo così si evitano i pasticci di questo tipo. Vedi anche pagina 7 di questo articolo su PracTeX

                        Sconsiglio vivamente di usare ifthen.

                        Ciao
                        Enrico

                      • #66454
                        Up
                        0
                        Down
                        ::

                        egreg9″ post=66914

                        Anche se ormai Claudio ti avrà corretto il codice, ho cercato una spiegazione per il problema della lingua. E l’ho trovata! 🙂

                        La causa risiede nel fatto che ciascun pacchetto (quindi anche babel) analizza prima le opzioni della classe e poi quelle passate al pacchetto stesso. Il risultato è che, passando italian alla classe, babel legge per prima l’opzione italian. Successivamente, analizzando le opzioni passate a babel stesso, legge english e poi di nuovo italian. Ma siccome aveva già letto italian, la ignora, e di conseguenza l’ultima lingua specificata rimane english. Così succede esattamente l’opposto di quel che si vorrebbe. Una soluzione è usare specificare esplicitamente la lingua principale, ma questo va fatto attraverso \AtBeginDocument o simili (perché babel di suo lo fa tramite \AtBeginDocument e quindi bisogna “sovrascriverlo”):
                        `\RequirePackage[italian,english]{babel}

                        \ifthenelse{\boolean{univpm@english}}
                        {
                        \AtBeginDocument{\selectlanguage{english}}
                        }
                        {
                        \AtBeginDocument{\selectlanguage{italian}}
                        \RequirePackage{indentfirst}
                        }`
                        Nota che non serve mettere RequirePackage dentro l’ifthenelse (e non servono nemmeno quei %, ma vabbè è un dettaglio).

                        Fonti: qua e qua.

                        Ciao,
                        Antonio

                        Una classe non deve mai prevedere supporto esplicito per una o più lingue; oppure deve vietare l’uso di lingue non previste.

                        Solo così si evitano i pasticci di questo tipo. Vedi anche pagina 7 di questo articolo su PracTeX

                        Sconsiglio vivamente di usare ifthen.

                        Ciao
                        Enrico

                        Enrico quindi come si dovrebbe fare per il frontespizio che può essere solo in italiano o in inglese? se non specificassi la possibilità di usare solo queste due lingue quale sarebbe l’alternativa?

                        Grazie
                        Marco

                      • #66455
                        Up
                        0
                        Down
                        ::

                        warcomeb” post=66918

                        [quote=”antonio.macrì” post=66912]Anche se ormai Claudio ti avrà corretto il codice, ho cercato una spiegazione per il problema della lingua. E l’ho trovata! 🙂

                        La causa risiede nel fatto che ciascun pacchetto (quindi anche babel) analizza prima le opzioni della classe e poi quelle passate al pacchetto stesso. Il risultato è che, passando italian alla classe, babel legge per prima l’opzione italian. Successivamente, analizzando le opzioni passate a babel stesso, legge english e poi di nuovo italian. Ma siccome aveva già letto italian, la ignora, e di conseguenza l’ultima lingua specificata rimane english. Così succede esattamente l’opposto di quel che si vorrebbe. Una soluzione è usare specificare esplicitamente la lingua principale, ma questo va fatto attraverso \AtBeginDocument o simili (perché babel di suo lo fa tramite \AtBeginDocument e quindi bisogna “sovrascriverlo”):
                        `\RequirePackage[italian,english]{babel}

                        \ifthenelse{\boolean{univpm@english}}
                        {
                        \AtBeginDocument{\selectlanguage{english}}
                        }
                        {
                        \AtBeginDocument{\selectlanguage{italian}}
                        \RequirePackage{indentfirst}
                        }`
                        Nota che non serve mettere RequirePackage dentro l’ifthenelse (e non servono nemmeno quei %, ma vabbè è un dettaglio).

                        Fonti: qua e qua.

                        Ciao,
                        Antonio

                        Una classe non deve mai prevedere supporto esplicito per una o più lingue; oppure deve vietare l’uso di lingue non previste.

                        Solo così si evitano i pasticci di questo tipo. Vedi anche pagina 7 di questo articolo su PracTeX

                        Sconsiglio vivamente di usare ifthen.

                        Ciao
                        Enrico

                        Enrico quindi come si dovrebbe fare per il frontespizio che può essere solo in italiano o in inglese? se non specificassi la possibilità di usare solo queste due lingue quale sarebbe l’alternativa?

                        Grazie
                        Marco[/quote]
                        Usare nomi di opzioni che non siano “english” o “italian”. Oppure modificare il codice proposto da Antonio:
                        `\ifunivpm@english
                        \AtBeginDocument{\selectlanguage{english}}
                        \fi
                        \ifunivpm@italian
                        \AtBeginDocument{\selectlanguage{italian}}
                        \RequirePackage{indentfirst}
                        \fi`
                        in modo che se uno sceglie un’altra lingua come base non ci siano problemi.

                        Analogamente non si deve mai mettere in una classe il caricamento di inputenc.

                        Ciao
                        Enrico

                      • #66456
                        Up
                        0
                        Down
                        ::

                        egreg9″ post=66914Una classe non deve mai prevedere supporto esplicito per una o più lingue; oppure deve vietare l’uso di lingue non previste.

                        Solo così si evitano i pasticci di questo tipo. Vedi anche pagina 7 di questo articolo su PracTeX

                        E hai ragione. Avevo già beccato quell’articolo. 😉

                        Sconsiglio vivamente di usare ifthen.

                        Ciao
                        Enrico

                        In altre discussioni ho letto che consigli i comandi di xifthen o etoolbox al suo posto. Io personalmente trovo bruttissima la sintassi che impone di usare, ritengo molto più semplici ed eleganti i \newif. Per fare cose semplici come quelle, mica c’è bisogno di scomodare pacchetti?

                      • #66457
                        Up
                        0
                        Down
                        ::


                        Ciao ragazzi, dato che la tesi cartacea è a rilegare ho finito… ma è sorto un problema, la versione telamtica la vogliono in PDF/A… e i validatori trovati on-line dicono che non lo è!!

                        come posso fare?!?

                        Grazie
                        Marco

                      • #66458
                        Up
                        0
                        Down
                        ::


                        Puoi provare a leggere questo articolo di ArsTeXnica.

                        Ciao
                        Matteo

                      • #66459
                        Up
                        0
                        Down
                        ::


                        Non ci ho capito una mazza 🙁

                      • #66460
                        Up
                        0
                        Down
                        ::


                        Sto seguendo i consigli di Claudio e la guida del Guit, ma veramente… non capisco cosa abbia il mio progetto che non lo renda compliant!!

                      • #66461
                        Up
                        0
                        Down
                        ::


                        Una cosa che succede è che se aggiungo pdfx, l’indice del pdf impazzisce completamente e non capisco il motivo…mette i capitoli l’uno dentro l’altro ad esempio!!

                        help me!

                      • #66462
                        OldClaudio
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Una csa alla volta; prima vediamo di renderlo comliant, poi affronteremo il resto; e per rendelrlo compiant, non riferirti ai verificatori gratuiti on line. Al resto ci sto guardanodo.

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

                      Go to top