MiceneSagitter” post=66658Salve a tutti, sono un neo utilizzatore di LaTeX ed attualmente mi ritrovo di fronte ad un problema piuttosto ostico.
Per formattare correttamente una pagina avrei la necessità di conoscere in qualche modo il numero di righe di una tabella creata da latex…..mi spiego meglio.
Supponendo di avere un semplice codice come il seguente:
`
\documentclass[a4paper]{article}
\usepackage[italian,english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[scaled]{helvet}
\usepackage{booktabs}\begin{document}
\begin{tabular}{p{1cm}p{7cm}p{2cm}}
\small{\textbf{Codice}} & \small{\textbf{Descrizione}} & \small{\textbf{Altro}}\\ \midrule
1 & Una riga molto molto molto molto molto molto molto molto molto molto lungaaaaaaaaaaaaaaa & Altra cosa\\
\end{tabular}
\end{document}
`una volta impostato il layout della pagina, i bordi, i limiti delle celle della tabella ecc…, latex dispone nel miglior modo il contenuto all’interno. Ora nel momento della scrittura del file tex come nell’esempio fornito, io scrivo unicamente una riga. Ora tex per evidenti ragioni di spazio effettua delle andate a capo e formatta il contenuto nel miglior modo possibile.
La mia necessità sarebbe di conoscere, se possibile, il numero di righe che il compilatore cercherà di utilizzare. Ossia conoscere il numero di righe effettivamente presenti in quella tabella (nel nostro esempio sono 3). Esiste una qualche primitiva di tex in grado di fare ciò?
Ne avrei bisogno in quanto sto facendo lavorare insieme python e LaTeX e quel numero per me sarebbe fondamentale…..Qualunque idea e consiglio è più che ben accetta
Saluti a tutti
Fabio
`\documentclass[a4paper]{article}
\usepackage[italian,english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[scaled]{helvet}
\usepackage{booktabs,array}
\newenvironment{numtabular}[1][c]
{\setcounter{tabnumlines}{0}\begin{tabular}[#1]}
{\end{tabular}}
\newcounter{tabnumlines}
\makeatletter
\newcommand{\updatecountA}{\@finalstrut\@arstrutbox\par
\xdef\tempA{\the\prevgraf}\let\@finalstrut\@gobble}
\newcommand{\updatecountB}{\@finalstrut\@arstrutbox\par
\addtocounter{tabnumlines}{%
\ifnum\prevgraf>\tempA
\prevgraf
\else
\tempA
\fi}\let\@finalstrut\@gobble
}
\makeatother
\begin{document}
\begin{numtabular}{lp{7cm}<{\updatecountA}p{2cm}<{\updatecountB}} \toprule \small\bfseries Codice & \small\bfseries Descrizione & \small\bfseries Altro\\ \midrule 1 & Una riga molto molto molto molto molto molto molto molto molto molto lungaaaaaaaaaaaaaaa & Altra cosa\\ 2 & Una riga molto molto molto molto molto molto molto molto molto molto lungaaaaaaaaaaaaaaa & Altra cosa\\ \bottomrule \end{numtabular} La tabella precedente ha \thetabnumlines~righe. \end{document}` Ciao Enrico