|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2006
Città: Valdagno (VI)
Messaggi: 53
|
[LaTex] Indentazione in un listato di pseudocodice
Ciao a tutti,
sto scrivendo la mia tesi in latex, ma ho un problema: voglio scrivere un listato di pseudocodice opportunamente indentato (ad esempio nel corpo degli if o delle funzioni) affiancato a sinistra dai numeri di riga. Ho pensato allora di creare una tabella a due colonne con il comando \begin{tabular} . Il problema è che l'indentazione col comando \indent non appare nel pdf compilato. Come posso fare? Qualcuno saprebbe darmi una mano? Segue il codice latex che vorrei far funzionare Codice:
\begin{tabular}{r l}
1 & if($L_{-\lfloor\vert L\vert/2\rfloor} \le D \le L_{\lfloor\vert L\vert/2\rfloor}$)\{ \\
2 & \indent // $D$ è dentro l'intervallo del leaf set \\
3 & \indent * inoltra ad $L_i$ tale che $\vert D-L_i \vert$ è minimo; \\
4 & \} else \{ \\
5 & \indent // utilizzo della tabella di routing \\
6 & \indent $l$ = shl($D,A$); \\
7 & \indent if($R_l^{D_l} \neq null$) \{ \\
8 & \indent \indent * inoltra a $R_l^{D_l}$;\\
9 & \indent \} \\
10 & \indent else \{ \\
11 & \indent\indent// caso raso \\
12 & \indent\indent * inoltra a $T \in L \cup R \cup M$ tale che \\
13 & \indent\indent\indent shl($T, D) \ge l$ and $\vert T - D \vert < \vert A-D \vert $ \\
14 & \}\\
15 & \}\\
\end{tabular}
__________________
MacBook Pro 15" Mid 2009: Intel Core 2 Duo T7200 2,66 GHz, RAM 4 Gb DDR 3 1067MHz, HDD 320 Gb 7200 RPM SATA, NVIDIA GeForce 9600M GT 256Mb + GeForce 9400M 256Mb, Display 15" @1440x900, Mac Os X Snow Leopard 10.6 Notebook Santech X2710: Intel Core 2 Duo T7200 2,00 GHz Chipset Intel 945PM, RAM 2 Gb DDR II 667MHz, HDD 100 Gb 7200 RPM SATA, NVIDIA GeForce Go 7600 256Mb GDDR2, Display 15,4" @ 1.680x1.050, Ubuntu Linux |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2006
Città: Valdagno (VI)
Messaggi: 53
|
Nessuna idea?
__________________
MacBook Pro 15" Mid 2009: Intel Core 2 Duo T7200 2,66 GHz, RAM 4 Gb DDR 3 1067MHz, HDD 320 Gb 7200 RPM SATA, NVIDIA GeForce 9600M GT 256Mb + GeForce 9400M 256Mb, Display 15" @1440x900, Mac Os X Snow Leopard 10.6 Notebook Santech X2710: Intel Core 2 Duo T7200 2,00 GHz Chipset Intel 945PM, RAM 2 Gb DDR II 667MHz, HDD 100 Gb 7200 RPM SATA, NVIDIA GeForce Go 7600 256Mb GDDR2, Display 15,4" @ 1.680x1.050, Ubuntu Linux |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: May 2005
Messaggi: 9
|
Varie soluzioni: anzichè \indent prova a giocare con gli \hspace, ma non so che risultato producono, oppure prova con l'ambiente:
\begin{verbatim} <listato> \end{verbatim} non ricordo bene come funziona ma potrebbe esserti d'aiuto nell'indentazione, se hai codice già indentato in un altro editor. Se non hai i numeri di riga nel codice potrei conisgliarti una furbata tipo incollare tutto in excel e aggiungere una colonna all'inizio coi numeri di riga, poi esportare il tutto con una macro che mi pare si chiami excel2latex che ti genera codice latex da una tabella di excel. Fammi sapere se hai ottenuto qualche risultato. Stefano |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Sep 2006
Città: Valdagno (VI)
Messaggi: 53
|
Signori, ho risolto!!!
A seconda del livello di indentazione, ho inserito un certo numero di caratteri "\ " (backslash + spazio) in modo da forzare la comparsa di uno spazio. Il mio codice è diventato quindi il seguente: Codice:
\begin{tabular}{r l}
1 & if($L_{-\lfloor\vert L\vert/2\rfloor} \le D \le L_{\lfloor\vert L\vert/2\rfloor}$)\{ \\
2 & \ \ \ // $D$ è dentro l'intervallo del leaf set \\
3 & \ \ \ * inoltra ad $L_i$ tale che $\vert D-L_i \vert$ è minimo; \\
4 & \} else \{ \\
5 & \ \ \ // utilizzo della tabella di routing \\
6 & \ \ \ $l$ = shl($D,A$); \\
7 & \ \ \ if($R_l^{D_l} \neq null$) \{ \\
8 & \ \ \ \ \ \ * inoltra a $R_l^{D_l}$;\\
9 & \ \ \ \} \\
10 & \ \ \ else \{ \\
11 & \ \ \ \ \ \ // caso raso \\
12 & \ \ \ \ \ \ * inoltra a $T \in L \cup R \cup M$ tale che \\
13 & \ \ \ \ \ \ \ \ \ ($T, D) \ge l$ and $\vert T - D \vert < \vert A-D \vert $ \\
14 & \ \ \ \}\\
15 & \}\\
\end{tabular}
__________________
MacBook Pro 15" Mid 2009: Intel Core 2 Duo T7200 2,66 GHz, RAM 4 Gb DDR 3 1067MHz, HDD 320 Gb 7200 RPM SATA, NVIDIA GeForce 9600M GT 256Mb + GeForce 9400M 256Mb, Display 15" @1440x900, Mac Os X Snow Leopard 10.6 Notebook Santech X2710: Intel Core 2 Duo T7200 2,00 GHz Chipset Intel 945PM, RAM 2 Gb DDR II 667MHz, HDD 100 Gb 7200 RPM SATA, NVIDIA GeForce Go 7600 256Mb GDDR2, Display 15,4" @ 1.680x1.050, Ubuntu Linux |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:40.



















