Re: problema tabella ed enumerate

#17169
Up
0
Down
::

Ciao a tutti,
sto cercando di comporre una tabella da inserire alla mia tesi…vi posto il codice che ho scritto

`\begin{tabular}{|p{10cm}|}
\hline
\bfseries CU1 – Azione \\
\hline
{\slshape Attori:} x, y\\
\hline
{\slshape Pre-condizioni:} – \\
\hline
\slshape Scenario principale: \\
1. x inserisce i parametri \\
2. x seleziona il documento\\
\hline
\slshape Scenari alternativi: \\
1a. x non inserisce il parametro z\\
2a. x non seleziona il documento\\
\hline
{\slshape Post-condizioni:} y memorizza il documento\\
\hline
\end{tabular}\\\\
`

in pratica è un piccolo template per tabella di caso d’so (UML).
Mi piacerebbe che i punti contrassegnati con 1 e 2 (che ora sono hardcoded) fossero gestiti da un “enumerate”, ma all’interno della tabella non lo posso inserire così com’è (ricevo un errore in compilazione)
ho dato un occhio a questo link e non è niente male, come soluzione…anche se pensavo che ci fosse qualcosa di più semplice (un campo enumerable per tabella?).
inoltre, preferirei che i campi in questione, oltre che numerati, abbiano un rientro, ad esempio:
`
Scenario principale:
1. x inserisce i parametri
2. x seleziona il documento
`

Chiedo cortesemente un idea in proposito, se possibile.

L’ambiente enumerate ti dà errore perché hai il vizio di chiudere le righe con \\. La soluzione proposta da DMW nell’altro filone è molto interessante e ti consiglio di usarla. La modifico solo leggermente per venire incontro alla tua esigenza successiva di avere etichette particolari:
`\makeatletter
\newenvironment{tabenum}[1][]
{\@minipagetrue
\begin{enumerate}[leftmargin=*,noitemsep,partopsep=0pt,%
parsep=0pt,labelindent=1.5em,#1]}
{\vspace{-\normalbaselineskip}\end{enumerate}}
\makeatother`
Dopo aver caricato i pacchetti enumitem (essenziale per l’ambiente tabenum) e booktabs, la tua tabella può diventare
`\begin{tabular}{p{10cm}}
\toprule
\textbf{CU1 — Azione} \\
\midrule
\textsl{Attori:} x, y\\
\midrule
\textsl{Pre-condizioni:} — \\
\midrule
\textsl{Scenario principale:}
\begin{tabenum}[label=\arabic*.]
\item x inserisce i parametri
\item x seleziona il documento
\end{tabenum}\\
\midrule
\textsl{Scenari alternativi:} \\
\begin{tabenum}[label=\arabic*a.]
\item x non inserisce il parametro z
\item x non seleziona il documento
\end{tabenum}\\
\midrule
\textsl{Post-condizioni:} y memorizza il documento\\
\bottomrule
\end{tabular}`
Nota l’uso di \textbf e \textsl, preferibili in questi casi alle dichiarazioni che usavi tu. Come vedi, come argomento opzionale di \begin{tabenum} puoi inserire come viene composta l’etichetta (\arabic* sta per il numero, a cui puoi aggiungere ciò che vuoi). Ho inserito anche la specificazione di “labelindent”, come chiedevi.

Ciao
Enrico

Go to top