Risposte nei forum create
-
AutoreRisposte
-
3 Maggio 2012 alle 19:35 in risposta a: statuto: inserire “Articolo” prima del numero sezione #73246::
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).Ciao,
AntonioUna 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
EnricoEnrico 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
::
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
::
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é??
::
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
::
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
::
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é??
-
AutoreRisposte