Re: Stile pagina con con il kernel di LaTeX

#48070
robitex
Amministratore del forum
    Up
    0
    Down
    ::

    a me piaceva di più la prima versione pur di sostituire quei vari \hfill semplicemente con \hss; \hss dice semplicemente: “horizontal stretch and shrink”; c’è anche il corrispondente \vss per la stessa funzione in verticale.

    La prima versione è forse più TeXnica 8) e preferivo la seconda solo per la sua compattezza che migliora la leggibilità del codice. Sono contento di sapere comunque, che l’idea è in generale corretta.
    Direi quindi buona la prima!!!

    In vece non mi piace il codice che non prevede né nella prima versione, né nella seconda, la verifica che il contenuto non sia troppo grande. Forse non serve, forse è ridondante, nel senso che sta all’utente che definisce le marche \sx, \cc e \dx scegliere dei contenuti mutuamente compatibili.

    Uhm, un codice di controllo che emette un warning se lo spazio non è sufficiente è una buona idea (in altre parti della classe ho faticato non poco ad inserire check sui valori introdotti).
    (Tuttavia sono preoccupato di più per lo spazio verticale, visto che il report calcola automaticamente i margini che potrebbero essere anche zero!!)

    Sono ancora in tempo naturalmente ad inserirlo (nuovo codice segnalato con i trattini):
    `
    \documentclass[a4paper]{report}

    \def\sx{Sinistra Sinistra Sinistra}
    \def\dx{Lato Destro Lato Destro Lato Destro}
    \def\cc{Centro Centro Centro}

    \makeatletter
    \def\ps@mystyle{% ——————————————
    \setbox0=\hbox{\sx\cc\dx}
    \ifdim\wd0>\textwidth
    % ops le marche sono troppo lunghe
    \GenericWarning{Header too small}{Header too small}
    \fi% —————————————————–
    \renewcommand{\@oddhead}{%
    \hbox to \textwidth{%
    \hbox to 0pt{\sx\hskip 0pt minus 1fil}%
    \hss\cc\hss%
    \hbox to 0pt{\hskip 0pt minus -1fil\relax\dx}}}
    \renewcommand{\@oddfoot}{%
    \hbox to \textwidth{%
    \hbox to 0pt{\sx\hskip 0pt minus 1fil}%
    \hss\cc\hss%
    \hbox to 0pt{\hskip 0pt minus -1fil\relax\dx}}}
    \let\@evenhead\@oddhead
    \let\@evenfoot\@oddfoot
    }
    \makeatother
    \pagestyle{mystyle}% rendo attivo lo stile

    \begin{document}
    % filetto per verificare il centraggio di \cc
    \noindent\rule{0.4pt}{10pt}\hfill\rule{0.4pt}{10pt}\hfill\rule{0.4pt}{10pt}

    Ciao a tutti!
    \end{document}
    `
    Tuttavia, si può fare di meglio visto che bisognerebbe controllare che:
    `0.5\wd{\cc}+\wd{\sx}<0.5\textwidth
    e/o
    0.5\wd{\cc}+\wd{\dx}<0.5\textwidth
    `

    Grazie e saluti.
    (ora devo andare, la famiglia chiama!!!, ma ci sentiamo presto)

    Go to top