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.