modificare opzione ’11pt’

  • Questo topic ha 9 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 16 anni fa da ivan.
  • Creatore
    Topic
  • #48961
    Up
    0
    Down
    ::


    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

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #48962
      Up
      0
      Down
      ::

      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

    • #48963
      Up
      0
      Down
      ::

      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

      Grazie! 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

    • #48964
      Up
      0
      Down
      ::

      [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
      Enrico

      Grazie! 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

    • #48965
      Up
      0
      Down
      ::


      Ho provato il codice ma ottengo un errore:

        Command \@ptsize already defined.

      Qualche idea?

      Ciao
      Ivan

    • #48966
      Up
      0
      Down
      ::

      Ho provato il codice ma ottengo un errore:

        Command \@ptsize already defined.

      Qualche idea?

      No, senza qualcosa di più tangibile.

      Ciao
      Enrico

    • #48967
      Up
      0
      Down
      ::


      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

    • #48968
      Up
      0
      Down
      ::

      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

    • #48969
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        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

      • #48970
        Up
        0
        Down
        ::

        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

        Non 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

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

    Go to top