- Questo topic ha 9 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 16 anni fa da
ivan.
-
CreatoreTopic
-
30 Agosto 2010 alle 20:38 #48961::
Ciao a tutti!In una classe che sto scrivendo (basata su book) vorrei che con l’opzione 11pt venisse modificata anche la gabbia del testo. Per modificare la gabbia del testo uso geometry.
Ho provato creando un nuovo condizionale e copiando la definizione dell’opzione dalla classe book ma non funziona.Qualcuno sa come fare?
Grazie in anticipo
Ciao
Ivan
-
CreatoreTopic
-
AutoreRisposte
-
-
30 Agosto 2010 alle 21:31 #48962::
Ciao a tutti!
In una classe che sto scrivendo (basata su book) vorrei che con l’opzione 11pt venisse modificata anche la gabbia del testo. Per modificare la gabbia del testo uso geometry.
Ho provato creando un nuovo condizionale e copiando la definizione dell’opzione dalla classe book ma non funziona.Qualcuno sa come fare?
L’opzione nella classe book funziona così: 11pt definisce \@ptsize come 1 perché la classe legge il file bk1\@ptsize.clo; in questo caso bk11.clo che effettivamente contiene tutte le definizioni dei corpi e della gabbia.
Una strategia potrebbe essere quella di un meccanismo dello stesso tipo.
Ciao
Enrico
-
30 Agosto 2010 alle 21:47 #48963::
Ciao a tutti!
In una classe che sto scrivendo (basata su book) vorrei che con l’opzione 11pt venisse modificata anche la gabbia del testo. Per modificare la gabbia del testo uso geometry.
Ho provato creando un nuovo condizionale e copiando la definizione dell’opzione dalla classe book ma non funziona.Qualcuno sa come fare?
L’opzione nella classe book funziona così: 11pt definisce \@ptsize come 1 perché la classe legge il file bk1\@ptsize.clo; in questo caso bk11.clo che effettivamente contiene tutte le definizioni dei corpi e della gabbia.
Una strategia potrebbe essere quella di un meccanismo dello stesso tipo.
Ciao
EnricoGrazie! Mi hai dato la dritta giusta (almeno credo).
Ho fatto così. Prima ho definito un condizionale e l’opzione:
`\newif\ifsuftesi@iifont
\DeclareOption{11pt}{\suftesi@iifonttrue} `
poi ho definito le due gabbie del testo:
`\RequirePackage{geometry}
\ifsuftesi@iifont
\renewcommand\@ptsize{1}
\geometry{%
textwidth=Xpt,
…
heightrounded}
\else
\geometry{%
textwidth=Ypt,
…
heightrounded}
\fi`A prima vista sembra funzionare 😀
Ciao
Ivan
-
30 Agosto 2010 alle 22:21 #48964::
[quote]Ciao a tutti!
In una classe che sto scrivendo (basata su book) vorrei che con l’opzione 11pt venisse modificata anche la gabbia del testo. Per modificare la gabbia del testo uso geometry.
Ho provato creando un nuovo condizionale e copiando la definizione dell’opzione dalla classe book ma non funziona.Qualcuno sa come fare?
L’opzione nella classe book funziona così: 11pt definisce \@ptsize come 1 perché la classe legge il file bk1\@ptsize.clo; in questo caso bk11.clo che effettivamente contiene tutte le definizioni dei corpi e della gabbia.
Una strategia potrebbe essere quella di un meccanismo dello stesso tipo.
Ciao
EnricoGrazie! Mi hai dato la dritta giusta (almeno credo).
Ho fatto così. Prima ho definito un condizionale e l’opzione:
`\newif\ifsuftesi@iifont
\DeclareOption{11pt}{\suftesi@iifonttrue} `
poi ho definito le due gabbie del testo:
`\RequirePackage{geometry}
\ifsuftesi@iifont
\renewcommand\@ptsize{1}
\geometry{%
textwidth=Xpt,
…
heightrounded}
\else
\geometry{%
textwidth=Ypt,
…
heightrounded}
\fi`A prima vista sembra funzionare :D[/quote]
Poco flessibile.
`\DeclareOption{10pt}{\def\@ptsize{0}}
\DeclareOption{11pt}{\def\@ptsize{1}}
\DeclareOption{12pt}{\def\@ptsize{2}}
…
\RequirePackage{geometry}
\ifcase\@ptsize\relax
\geometry{}\or
\geometry{}\or
\geometry{}`
Le opzioni date con \geometry sono cumulative.Ciao
Enrico
-
31 Agosto 2010 alle 20:38 #48965
-
31 Agosto 2010 alle 21:06 #48966
-
31 Agosto 2010 alle 21:14 #48967::
Ecco una classe minimale che produce quell’errore:
`\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesClass{prova}\DeclareOption{10pt}{\def\@ptsize{0}}
\DeclareOption{11pt}{\def\@ptsize{1}}
\DeclareOption{12pt}{\def\@ptsize{2}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
\ProcessOptions
\relax
\LoadClass[10pt,a4paper]{book}
\RequirePackage{geometry}
\ifcase\@ptsize\relax
\geometry{%
hmarginratio=1:1,
vmarginratio=1:1}\or
\geometry{%
hmarginratio=1:2,
vmarginratio=1:2}\or
\geometry{%
hmarginratio=1:3,
vmarginratio=1:3}\or
\fi
\endinput`Ciao
Ivan
-
31 Agosto 2010 alle 21:47 #48968::
Ecco una classe minimale che produce quell’errore:
`\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesClass{prova}\DeclareOption{10pt}{\def\@ptsize{0}}
\DeclareOption{11pt}{\def\@ptsize{1}}
\DeclareOption{12pt}{\def\@ptsize{2}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
\ProcessOptions
\relax
\LoadClass[10pt,a4paper]{book}
\RequirePackage{geometry}
\ifcase\@ptsize\relax
\geometry{%
hmarginratio=1:1,
vmarginratio=1:1}\or
\geometry{%
hmarginratio=1:2,
vmarginratio=1:2}\or
\geometry{%
hmarginratio=1:3,
vmarginratio=1:3}\or
\fi
\endinput`Ciao
Ivan`\DeclareOption{10pt}{\PassOptionsToClass{\CurrentOption}}`
e simili per le altre due. Toglierei 10pt dalle opzioni passate a book.Ciao
Enrico
-
31 Agosto 2010 alle 21:53 #48969::
Forse mi sbaglio ma le tre definizioni
`
\DeclareOption{10pt}{\def\@ptsize{0}}
\DeclareOption{11pt}{\def\@ptsize{1}}
\DeclareOption{12pt}{\def\@ptsize{2}}
`
non sono già definite dentro alla classe book?
La parte importante del codice di Enrico è quella che segue basata sulla scelta del caso \ifcase\@ptsize …\or… \or…\or…\fi
-
31 Agosto 2010 alle 22:42 #48970::
Forse mi sbaglio ma le tre definizioni
`
\DeclareOption{10pt}{\def\@ptsize{0}}
\DeclareOption{11pt}{\def\@ptsize{1}}
\DeclareOption{12pt}{\def\@ptsize{2}}
`
non sono già definite dentro alla classe book?
La parte importante del codice di Enrico è quella che segue basata sulla scelta del caso \ifcase\@ptsize …\or… \or…\or…\fiNon ti sbagli. Nella classe book sono definite con \renewcommand. Le tre righe \DeclareOption non vanno date altrimenti la compilazione si blocca.
Il resto del comando di Enrico funziona 😀 Problema risolto!
Forte questo \ifcase. Ora me lo studio.Grazie a tutti
Ciao
Ivan
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.