La sintassi di \hrule è:
[tt]\hrule width[/tt] lunghezza [tt]height[/tt] altezza [tt]depth[/tt] profondità
e ti scrive un rettangolo nero largo larghezza, sporgente sopra la linea di nase altezza e sporgente sotto alla linea di base di profondità;
di default larghezza è pari alla giustezza corrente del testo, altezza è pari a 0.4pt e profondità è uguale a zero; in definitiva lu pessore della riga è altezza + profondità; se giochi con valori positivi e negativi riesci a produrre lo spessore che vuoi e a spostare la riga orizzontale più in alto o più in basso.
Invece [tt]\hrulefill[/tt] rimepie tutto lo spazio che resta, si allunga automaticamente come se fosse una molla compressa; il tuo esempio
Paragrafo 1_________________ oppure Nozioni di insiemistica_____________
diventa:
`
\makebox[\textwidth]{Paragrafo 1\hrulefill}
`
oppure
`
\makebox[\textwidth]{Nozioni di insiemeistica\hrulefill}
`
Potrebbe essere necessario inserire [tt]\noindent[/tt] prima di [tt]\makebox[/tt]