Re: spazio di puntini

#94399
OldClaudio
Partecipante
    Up
    0
    Down
    ::

    claudio” post=94014ho risolto cosi ho trovato del codice che ho adattato
    grazie per avermi indicato dove guardare
    `
    \usepackage{calc}

    \newcommand*\puntini[1][c]{%
    \ifmmode
    \makebox[\widthof{$#1$}]{$\dotfill$}%
    \else
    \makebox[\widthof{#1}]{\dotfill}%
    \fi
    }
    `
    ciao
    claudio

    Hai provato a togliere i dollari a cavallo di \dotfill? Non credo che servano, perché comunque dentro \makebox di default sei i n modo testo e \dotfill non è né testuale né matematico; volendo lo si potrebbe considerare testuale, e quindi avresti ragione a mettere i dollari, ma la sua definizione (dal cuore di latex.ltx) è`\def\dotfill{%
    \leavevmode
    \cleaders \hb@xt@ .44em{\hss.\hss}\hfill
    \kern\z@}`A sua volta \leavevmode serve per passare in modo orizzontale se per caso il comando fosse dato in modo verticale, ma non fa praticamante nulal se si è già in modo orizzontale; i restanti comandi possono essere usati in qualunque modo. Anzi conoscendo la definizione puoi copiartela nel tuo preambolo preceduta da \makeatletter e puoi provare a modificare la spaziatura dei puntini cambiano il valore [tt].44[/tt] in un altro valore più piccolo, per esempio [tt]0.3[/tt] per avere puntini più densi.. Un’altra definizione più robusta della tua potrebbe essere
    `\makeatletter
    \newcommand\puntini[1]{%
    \ifmmode\expandafter\@firstoftwo\else
    \expandafter\@secondoftwo\fi
    {\makebox[\widthof{$#1$}]}{\makebox[\widthof{#1}]}{\dotfill}}
    \makeatother`Quei due \expandafter servono per terminare correttamente la frase condizionale, e quei due comandi strani servono per eseguire il primo o il secondo \makebox dopo afer terminato la frase condizionale. Spesso non è necessario ricorrere a costrutti così complicati, ma così si ha la certezza di avere sviluppi robusti. La cosa è fatta in modo automatico, senza ricorrere a comandi astrusi, se si usano i comandi condizionali definiti dal pacchetto etoolbox; magari non ti serve, ma la lettura di quei comandi è molto istruttiva.

    Go to top