- Questo topic ha 14 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 6 anni, 6 mesi fa da .
-
Topic
-
Scusate per la confusione del messaggio, ma si tratta di problematiche connesse e mi è difficile separarle in più filoni. Iniziamo da qui, poi eventualmente divido i quesiti.Quando si compone su gabbie piccole, come nel caso di
`\documentclass[pagalayout=supercompact]{suftesi}`
si può avere la necessità di un particolare corpo per il testo normale.
Ora, suftesi si basa su book, quindi le opzioni di classe disponibili sono 10pt, 11pt e 12pt.
Queste opzioni non fanno altro che caricare i rispettivi file di definizione bk10.clo, bk11.clo, bk12.clo. I file sono parecchio complicati, non sotto il profilo del codice, ma sotto il profilo dei valori, che non variano proporzionalmente. Per esempio , il corpo normale (\normalsize) per 11pt non è 11pt, ma questo:
` \makeatletter\@xipt\makeatother% basta metterlo dopo \begin{document} per vedere il valore
`Poniamo che, per diverse ragioni, il corpo 11 sia troppo piccolo e il corpo 12 troppo grande. La soluzione è avere a disposizione un file .clo dedicato per il valore che si preferisce. Va detto che questo comporterebbe, in linea di principio, un’infinità di file .clo. (In linea di principio perché, pragmaticamente basterebbero i corpi intermedi.)
(1) La prima domanda è questa: esiste un metodo veloce per scegliere in maniera flessibile e coerente il corpo principale del documento?
Ridefinire \@pt (soluzione che avevo trovato su TeX.StackExchange) non risolve completamente il problema. Perché l’interlinea, mi pare, è dichiarata direttamente. Per esempio, per il corpo 11 vale 13.6. Dal file bk11.clo:`
…
\@setfontsize\normalsize\@xipt{13.6}
…
`Giusto per esercizio, ho creato un file suf115.clo provvisorio, semplicemente aggiungendo mezzo punto a tutti i valori (dati in punti o in \p@). Non è un metodo professionale, perché ogni valore dovrebbe essere calcolato nel contesto, ma è il metodo più veloce (con pochi passaggi di “Cerca e sostituisci” si fa).
Questo file deve essere caricato dalla classe (e questo non è un problema). L’idea è di creare delle opzioni tipo size=suf115, size=suf125 per i corpi 11.5 e 12.5 (anche questo non è un problema).
(2) I file .clo vanno caricati prima di microtype o è indifferente? La doc di microtype non accenna a questo problema.
Da delle prove che ho fatto mi pare che caricare queste definizioni prima di microtype o dopo faccia differenza per il riempimento di riga.Ora suftesi carica di dafault microtype. Ciò è un problema se si volessero ridefinire i corpi all’interno del documento e se queste dovessero essere date prima di microtype. Quindi
(3) Come è possibile ridefinire i corpi nel preambolo, se questo deve essere fatto prima di caricare microtype (che viene caricato dalla classe) ?
Il file suf115.clo è il seguente e, per essere usato, il contenuto (dalla seconda riga alla penultima) va messo nel preambolo (oppure lo si mette tutto nel file suftesi.cls con \input{suf115.clo}, dopo \LoadClass{book}):
`
\ProvidesFile{suf115.clo}[2020/02/14 v0.1h suftesi LaTeX file (size option)]
\renewcommand\normalsize{%
\@setfontsize\normalsize{11.5}{13.5}%
\abovedisplayskip 11.5\p@ \@plus3.5\p@ \@minus6.5\p@
\abovedisplayshortskip \z@ \@plus3.5\p@
\belowdisplayshortskip 7\p@ \@plus4\p@ \@minus3.5\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI}
\normalsize
\renewcommand\small{%
\@setfontsize\small{10.5}{12.5}
\abovedisplayskip 10.5\p@ \@plus2.5\p@ \@minus5.5\p@
\abovedisplayshortskip \z@ \@plus3.5\p@
\belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3.5\p@
\def\@listi{\leftmargin\leftmargini
\topsep 6.5\p@ \@plus2.5\p@ \@minus2.5\p@
\parsep 3.5\p@ \@plus2.5\p@ \@minus.5\p@
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip
}
\renewcommand\footnotesize{%
\@setfontsize\footnotesize{9.5}{11.5}%
\abovedisplayskip 8.5\p@ \@plus2.5\p@ \@minus4.5\p@
\abovedisplayshortskip \z@ \@plus.5\p@
\belowdisplayshortskip 4.5\p@ \@plus2.5\p@ \@minus2.5\p@
\def\@listi{\leftmargin\leftmargini
\topsep 4.5\p@ \@plus2.5\p@ \@minus2.5\p@
\parsep 2.5\p@ \@plus.5\p@ \@minus.5\p@
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize{8.5}{9.5}}
\renewcommand\tiny{\@setfontsize\tiny{6.5}{7.5}}
\renewcommand\large{\@setfontsize\large{12.5}{14.5}}
\renewcommand\Large{\@setfontsize\Large{14.5}{18.5}}
\renewcommand\LARGE{\@setfontsize\LARGE{17.5}{22.5}}
\renewcommand\huge{\@setfontsize\huge{22.5}{25.5}}
\renewcommand\Huge{\@setfontsize\Huge{25.5}{30.5}}
\if@twocolumn
\setlength\parindent{1em}
\else
\setlength\parindent{17.5\p@}
\fi
\setlength\smallskipamount{3.5\p@ \@plus 1.5\p@ \@minus 1.5\p@}
\setlength\medskipamount{6.5\p@ \@plus 2.5\p@ \@minus 2.5\p@}
\setlength\bigskipamount{12.5\p@ \@plus 4.5\p@ \@minus 4.5\p@}
\setlength\headheight{12.5\p@}
\setlength\headsep {.275in}
\setlength\topskip {11.5\p@}
\setlength\footskip{.38in}
\if@compatibility \setlength\maxdepth{4.5\p@} \else
\setlength\maxdepth{.5\topskip} \fi
\if@compatibility
\if@twocolumn
\setlength\textwidth{410.5\p@}
\else
\setlength\textwidth{5in}
\fi
\else
\setlength\@tempdima{\paperwidth}
\addtolength\@tempdima{-2in}
\setlength\@tempdimb{360.5\p@}
\if@twocolumn
\ifdim\@tempdima>2\@tempdimb\relax
\setlength\textwidth{2\@tempdimb}
\else
\setlength\textwidth{\@tempdima}
\fi
\else
\ifdim\@tempdima>\@tempdimb\relax
\setlength\textwidth{\@tempdimb}
\else
\setlength\textwidth{\@tempdima}
\fi
\fi
\fi
\if@compatibility\else
\@settopoint\textwidth
\fi
\if@compatibility
\setlength\textheight{38\baselineskip}
\else
\setlength\@tempdima{\paperheight}
\addtolength\@tempdima{-2in}
\addtolength\@tempdima{-1.5in}
\divide\@tempdima\baselineskip
\@tempcnta=\@tempdima
\setlength\textheight{\@tempcnta\baselineskip}
\fi
\addtolength\textheight{\topskip}
\if@twocolumn
\setlength\marginparsep {10.5\p@}
\else
\setlength\marginparsep{7.5\p@}
\fi
\setlength\marginparpush{5.5\p@}
\if@compatibility
\setlength\oddsidemargin {.25in}
\setlength\evensidemargin {1.25in}
\setlength\marginparwidth {1in}
\if@twocolumn
\setlength\oddsidemargin {30.5\p@}
\setlength\evensidemargin {30.5\p@}
\setlength\marginparwidth {48.5\p@}
\fi
\else
\if@twoside
\setlength\@tempdima {\paperwidth}
\addtolength\@tempdima {-\textwidth}
\setlength\oddsidemargin {.4\@tempdima}
\addtolength\oddsidemargin {-1in}
\setlength\marginparwidth {.6\@tempdima}
\addtolength\marginparwidth {-\marginparsep}
\addtolength\marginparwidth {-0.4in}
\else
\setlength\@tempdima {\paperwidth}
\addtolength\@tempdima {-\textwidth}
\setlength\oddsidemargin {.5\@tempdima}
\addtolength\oddsidemargin {-1in}
\setlength\marginparwidth {.5\@tempdima}
\addtolength\marginparwidth {-\marginparsep}
\addtolength\marginparwidth {-0.4in}
\addtolength\marginparwidth {-.4in}
\fi
\ifdim \marginparwidth >2in
\setlength\marginparwidth{2in}
\fi
\@settopoint\oddsidemargin
\@settopoint\marginparwidth
\setlength\evensidemargin {\paperwidth}
\addtolength\evensidemargin{-2in}
\addtolength\evensidemargin{-\textwidth}
\addtolength\evensidemargin{-\oddsidemargin}
\@settopoint\evensidemargin
\fi
\if@compatibility
\setlength\topmargin{.73in}
\else
\setlength\topmargin{\paperheight}
\addtolength\topmargin{-2in}
\addtolength\topmargin{-\headheight}
\addtolength\topmargin{-\headsep}
\addtolength\topmargin{-\textheight}
\addtolength\topmargin{-\footskip} % this might be wrong!
\addtolength\topmargin{-.5\topmargin}
\@settopoint\topmargin
\fi
\setlength\footnotesep{8.2\p@}
\setlength{\skip\footins}{10.5\p@ \@plus 4.5\p@ \@minus 2.5\p@}
\setlength\floatsep {12.5\p@ \@plus 2.5\p@ \@minus 2.5\p@}
\setlength\textfloatsep{20.5\p@ \@plus 2.5\p@ \@minus 4.5\p@}
\setlength\intextsep {12.5\p@ \@plus 2.5\p@ \@minus 2.5\p@}
\setlength\dblfloatsep {12.5\p@ \@plus 2.5\p@ \@minus 2.5\p@}
\setlength\dbltextfloatsep{20.5\p@ \@plus 2.5\p@ \@minus 4.5\p@}
\setlength\@fptop{0.5\p@ \@plus 1fil}
\setlength\@fpsep{8.5\p@ \@plus 2fil}
\setlength\@fpbot{0.5\p@ \@plus 1fil}
\setlength\@dblfptop{0.5\p@ \@plus 1fil}
\setlength\@dblfpsep{8.5\p@ \@plus 2fil}
\setlength\@dblfpbot{0.5\p@ \@plus 1fil}
\setlength\partopsep{3.5\p@ \@plus 1.5\p@ \@minus 1.5\p@}
\def\@listi{\leftmargin\leftmargini
\parsep 5\p@ \@plus2.5\p@ \@minus.5\p@
\topsep 9.5\p@ \@plus3.5\p@ \@minus5.5\p@
\itemsep5\p@ \@plus2.5\p@ \@minus.5\p@}
\let\@listI\@listi
\@listi
\def\@listii {\leftmargin\leftmarginii
\labelwidth\leftmarginii
\advance\labelwidth-\labelsep
\topsep 5\p@ \@plus2.5\p@ \@minus.5\p@
\parsep 2.5\p@ \@plus.5\p@ \@minus.5\p@
\itemsep \parsep}
\def\@listiii{\leftmargin\leftmarginiii
\labelwidth\leftmarginiii
\advance\labelwidth-\labelsep
\topsep 2.5\p@ \@plus.5\p@\@minus.5\p@
\parsep \z@
\partopsep .5\p@ \@plus\z@ \@minus.5\p@
\itemsep \topsep}
\def\@listiv {\leftmargin\leftmarginiv
\labelwidth\leftmarginiv
\advance\labelwidth-\labelsep}
\def\@listv {\leftmargin\leftmarginv
\labelwidth\leftmarginv
\advance\labelwidth-\labelsep}
\def\@listvi {\leftmargin\leftmarginvi
\labelwidth\leftmarginvi
\advance\labelwidth-\labelsep}
\endinput
`Ciao
Ivan
- Devi essere connesso per rispondere a questo topic.