Carissimi,
sto cercando di creare un nuovo ambiente (esempio) fatto così:
-ambiente “compreso” tra due linee orizzontali
-una specie di titolo sopra la linea orizzontale
-dimensione del font più piccola rispetto al resto del testo
Spulciano qua e là me ne sono venuto fuori con questo codice che sarà senz’altro molto rozzo:
`\newenvironment{esempio}[1][]{\vskip 6pt\small\noindent\textsc{Esempio#1}\vskip 6pt\hrule\vskip 6pt\noindent}{\vskip 3pt\hrule\vskip 6pt\normalsize}
`
Il problema che mi rimane è che spesso capita che la linea orizzontale finale sia “orfana” e compaia da sola a inizio di una pagina, o che il titoletto dell’esempio sia orfano e linea iniziale e testo me lo ritrovi alla pagina dopo… come fare per evitare questi inconvenienti?
Un’occhiata e una modifica ad ambienti tipo theorem?
Precedi ciascun \vskip esclusi primo e ultimo con \nobreak. Quei due andrebbero sostituiti con \addvspace{6pt}.
Nota che \normalsize nella definizione è del tutto superfluo, ma che va aggiunto \ignorespaces dopo \noindent: va messo ogni volta che l’ambiente inizia un paragrafo. Occorre ricordare che \par finisce un paragrafo; invece \noindent lo comincia. Dunque
`\newenvironment{esempio}[1][]
{\par\addvspace{6pt}%
\small\noindent\textsc{Esempio #1}\par
\nobreak\vskip 6pt\hrule\nobreak\vskip 6pt
\noindent\ignorespaces}
{\par\nobreak\vskip 3pt\hrule\addvspace{6pt}}`
Occorre dare \par prima di \nobreak per andare in modo verticale, cosicché la penalità inserita con \nobreak sia appunto in modo verticale.
Non metterei tutto attaccato “Esempio#1”, visto che comunque vai a capo subito dopo; con la definizione di prima avresti dovuto dire
`\begin{esempio}[ fondamentale]`
mentre con questa puoi scrivere più comodamente
`\begin{esempio}[fondamentale]`
Ciao
Enrico