- Questo topic ha 13 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 9 mesi fa da
Vinz.
-
CreatoreTopic
-
18 Novembre 2015 alle 9:59 #104127::
Salve a tutti. Avendo avuto un immediato e grande aiuto precedentemente, ci riprovo con un altro problemino. Richiamando delle tabelle su dei file a parte con il codice \input{tabella.tex} me le inserisce un po’ quando vuole lui. C’è una maniera per controllare dove uscirà la tabella (così magari da poter scrivere nel testo “i risultati sono mostrati nella seguente tabella:” ed avere poi effettivamente la tabella nel pdf)? Grazie a tutti.
-
CreatoreTopic
-
AutoreRisposte
-
-
18 Novembre 2015 alle 10:44 #104128::
La cosa più facile, ma che forse non ti piacerà, è quella di inserire solo la tabular come oggetto non flottante, quindi senza l’ambiente table. Questo comporta di non avere didascalie, ma non ti servono, se la tabella è nel testo.Altrimenti puoi usare il pacchetto varioref, che ti permette di generare riferimenti del tipo che ti interessa.
-
18 Novembre 2015 alle 12:15 #104129::
Ciao.
Oltre a quello che ti ha suggerito @franen, aggiungo che è possibile inserire delle caption anche per oggetti “non mobili” usando il comando \captionof del pacchetto caption. Mi son trovato molto bene in alcuni casi con questo sistema.Per il resto, forse possiamo approfondire un po’ se ci mostri il codice completo con cui inserisci i dati tabellari.
R.
-
18 Novembre 2015 alle 12:58 #104130::
Grazie mille a tutti e due! Purtroppo le didascalie sono importanti per me, e non ho idea di cosa siano varioref e captionnof. Il codice che ho usato (che mi viene da un comando di Stata che genera tabelle in LaTeX) è:` According to this re-shape of the sample, the new population is composed like that:
\begin{table}[htbp]\centering
\caption{\label{ireg_by_sex}
\textbf{Region by gender}}
\begin{tabular} {@{} l r r r @{}} \\ \hline
& \multicolumn{3}{@{} c @{}}{\textbf{Gender}} \\
\textbf{Region} &
Male &Female &Total \\ \hline
Piemonte& 1,653& 1,084& 2,737\\
Valle d'Aosta& 97& 49& 146\\
Lombardia& 2,340& 1,622& 3,962\\
Trentino Alto Adige& 520& 306& 826\\
Veneto& 1,716& 1,217& 2,933\\
Friuli-Venezia Giulia& 641& 490& 1,131\\
Liguria& 756& 582& 1,338\\
Emilia-Romagna& 1,895& 1,530& 3,425\\
Toscana& 1,523& 1,108& 2,631\\
Umbria& 717& 591& 1,308\\
Marche& 860& 663& 1,523\\
Lazio& 1,080& 692& 1,772\\
Abruzzo& 522& 366& 888\\
Molise& 229& 109& 338\\
Campania& 1,654& 537& 2,191\\
Puglia& 1,233& 409& 1,642\\
Basilicata& 316& 155& 471\\
Calabria& 438& 207& 645\\
Sicilia& 1,345& 378& 1,723\\
Sardegna& 882& 470& 1,352\\
Total& 20,417& 12,565& 32,982\\\hline
\multicolumn{4}{@{}l}{\footnotesize{\emph{Source:} Elaboration on Bank of Italy \emph{Survey on Household, Income and Wealth}}}
\end{tabular}
\end{table}`
-
18 Novembre 2015 alle 15:52 #104131::
Latex mette sempre le tabelle e le figure dove c’è posto; quindi è raro che le mette subito dopo una frase come quella che precede la tabella. In sostanza non scrivi ” According to this re-shape of the sample, the new population is composed like that:” ma scrivi ” According to this re-shape of the sample, the new population is composed as in table~\ref{ireg_by_sex} on page~\pageref{ireg_by_sex}.”I comandi \label, \ref e \pageref sono fatti apposta.
Se carichi il pacchetto varioref con l’opportuna opzione di lingua, allora la cosa si può semplificare scrivendo “… as in table~\vref{ireg_by_sex}.
Lascia perdere \captionof; può essere utilissimo, ma di solito lo si usa quando assolutamente una figura o una tabella deve stare proprio lì e non altrove; \captionof{table}{Region by gender} agisce come \caption dell’ambiente table, senza stare dentro l’ambiente table.
Tuttavia, permettimi; suppongo che ti non abbia scritto quel codice, ma l’abbia scritto Stata. Ebbene, come spesso succede lasciando fare ad altri, l’ha scritto male e in modo non professionale; Il modo corretto sarebbe questo:`\begin{table}[htbp]
\caption[Region by gender]{\bfseries Region by gender}\label{iref_by_gender}
\begin{tabular}{@{}lrrr@{}}
\hline
& \multicolumn{3}{c@{}}{\textbf{Gender}} \\
`Gli spazi fra i codici delle colonne non sono vietati ma di solito non si usano; il primo fine riga \\ dopo l’istruzione \begin{tabular}{…} è superlfluo perché non c’è nessuna riga da terminare; il primo @{} dentro il secondo argomento di \multicolumn non ci vuole ed è concettualmente errato, mentre il secondo non è grammaticalmente sbagliato, sebbene tutta la tabella dovrebbe essere composta senza usare nessuna @-espresione, perché è corretto che i filetti sporgano pochi pnti furi dalla tabella (l’impostazione di default inplica una sporgenza di circa 2mm, esattamente di 6pt.I filetti orizzontali sarebbe meglio crearli con i comandi \toprule, \midrule e \bottomrule del pacchetto booktabs, che assicurano una distanza assicurata fra loro e i contenuti delle celle, mentre \hline richia di battere contro le maiuscole delle riga sottostante o contro i discendenti della riga sovrastante.
Per fortune Stata ti produce la tabella, anche se composta male in codice LaTeX, quindi puoi metterci le mani per correggerla nel modo migliore che, evidentemente Stata non conosce. 😉
-
19 Novembre 2015 alle 16:12 #104132::
Grazie per l’interessante risposta. Farò sicuramente uso dei riferimenti (ma davvero basta un circonflesso e tre interrogativi, o c’è un altro comando per richiamare il numero di tabella?). Quando alla cattiva formattazione di Stata, di certo hai ragione tu (non conosco bene LaTeX e non mi esprimo, ma non ho dubbi sul fatto che tu sia corretto). La questione è che però a me basta cambiare una riga nel dofile di stata, per avere un dataset diverso, o regressioni diverse, aggiungere variabili di controllo, eccetera eccetera, ed automaticamente me le aggiorna nel lavoro finito. Cosa che, modificando a mano le oltre duecento tabelle del lavoro (che di per sé sarebbe un lavoraccio) non sarebbe poi possibile… Ma grazie davvero per i suggerimenti!
-
24 Novembre 2015 alle 9:23 #104133::
Cari tutti, nel ringraziarvi tantissimo per avermi insegnato l’esistenza di \vref, che ha davvero rivoluzionato il mio lavoro e semplificato tantissimo l’impaginazione, sono a rompervi le scatole per chiedervi un ulteriore consiglio. Oltre alle tabelle, ho dei disegni, fatti con tikzpicture. Un esempio è questo:
`
\begin{tikzpicture}\label{linea}
\begin{axis} [axis lines=middle, xlabel=$x$,ylabel=$y$, xmin=0,xmax=155, ymin=0, ymax=1, grid=major, width=15cm, height=10cm,domain=0:150,title={\textbf{LINEA}}]
\legend{$y=1.426-0.0183x$}
\addplot [thick] {-0.0183*x+1.426};
\end{axis}
\end{tikzpicture}`Come potete vedere ho aggiunto (mea sponte) il comando \label per vedere se \vref riconosceva anche questo disegno, e dunque potessi “quotarlo” all’interno del codice. Ebbene, in effetti me lo riconosce, ma non lo numera come una tavola, ma bensì con un improbabile “3.4”, che non capisco da dove prenda. Mi sapete dire da cosa nasce questo numero (non è la pagina di riferimento, che invece vref calcola correttamente) e come posso migliorare il tutto? Grazie davvero per l’aiuto, siete preziosissimi.
-
24 Novembre 2015 alle 9:36 #104134
-
24 Novembre 2015 alle 14:34 #104135::
Certo che ti numererebbe anche la figura fatta con tikz; basta che tu ci metta la didascalia con \caption perché è caption che genera il numero; \label va messo dopo \caption.Ripeto a te quanto ho scritto pochi minuti fa ad un altro partecipante al forum.
Il fatto che sia \caption il comando che oltre a comporre la didascalia le assegni anche un numero, che può essere raccolto subito dopo con un comando \label, è scritto in qualunque guida. Hai detto di avere già scaricato L’Arte di scrivere con LaTeX; per favore (favore che fai a te stesso) leggila e usa abbondantemente sia l’indice generale sia l’indice analitico che sono ipertestualmente collegati con le cose a cui puntano; arrivi subito alla pagina giusta nel punto preciso in cui la cosa collegata è stata collegata.
-
24 Novembre 2015 alle 18:15 #104136::
Grazie ad entrambi i Claudio! Io in realtà ho letto “L’arte di fare i grafici con LaTeX”. Ho provato comunque prima di rompervi le scatole ad inserire caption. Mettendolo così:
`
\begin{tikzpicture}\caption{{\label{ortho1}}
\begin{axis}
[xbar,xmin=0,xmax=0.5,
height=6.5cm,
xmajorgrids=true,
ytick pos=left,
title={Mean },
xlabel={ mean},
symbolic y coords={1,1,2,3,4},
ytick=data,nodes near coords,
nodes near coords align=%
{horizontal}]
\addplot
[fill=cyan,draw=black]
coordinates
{(0.221,1) (0.115,1) (0.106,2) (0.089,3) (0.074,4);
\end{axis}
\end{tikzpicture}
`
Latex non mi compila, e mi da un errore (“caption outside float”). Capisco bene che studiando uno o più manuali diventerei più bravo. E ti ringrazio molto per la bibliografia. D’altra parte, la comodità di chiedere un consiglio a chi è più esperto su di un forum, piuttosto che migliorarsi, può avere un rendimento maggiore se nella vita non si vuole fare l’impaginatore con LaTeX ma si vogliono imparare le basi per i precipui scopi immediati. Grazie comunque per il tempo che mi hai dedicato e che vorrai dedicarmi, e per il suggerimento.
-
24 Novembre 2015 alle 21:51 #104137::
ci credo: \caption funzione solo dentro gli ambienti flottanti; metti tutto l’ambiente tixzpicture dentro un ambiente figure e metti \caption dopo \end{tixzpicture} ma prima di \end{figure}.E non scrivere mai \caption{{\label{…}}, sia perché \label fa scritto dopo il comando \caption con i suoi argomenti, sia perché così facendo ti ritroverai come didascalia solo, per esempio, Figure 3.5: compresi i due punti e senza una didascalia vera a propria.
Ripeto quello che sta scritto in ogni guida: la sintassi di \caption è
[tt]\caption[/tt][didascalia breve]{didascalia lunga}
La didascalia breve è facoltativa, se non viene specificata (e non vengono specificate nemmeno le corrispondenti parentesi quadre) essa vie assunta uguale a didascalia lunga. La didascalia lunga viene composta dopo il segnaposto formato dal nome dell’oggetto flottante seguito dal suo numero, da un separatore, generalmente costituito dai due punti e uno spazio (dipende dalla classe e dai pacchetti usati). La didascalia breve viene trasmessa ai file ausiliari epr comporre la lista delle figure o delle tabelle o degli altri oggetti flottanti.
tixpicture non è un abiente flottante; è simile all’ambiente standard di LaTeX picture che serve per fare disegni, similmente a quello che avviene con l’ambiente tikzpicture. Tra (tikz)picture e figure intercorre la stessa relazione che si trova fra gli ambienti tabular e table.
-
25 Novembre 2015 alle 7:45 #104138::
Caro Claudio,
grazie ancora per i consigli. Purtroppo continua a non funzionare: scrivendo
`
\begin{picture}
\begin{tikzpicture}
\begin{axis}
[xbar,xmin=0,xmax=0.5,
height=6.5cm,
xmajorgrids=true,
ytick pos=left,
title={Mean},
xlabel={ELASI mean},
symbolic y coords={Workmen, Employees, Teachers, Managements, White collars, Freelances, Entrepreneurs, Self-Employed, Family-firm Owners, Temporary workers},
ytick=data,nodes near coords,
nodes near coords align=%
{horizontal}]
\addplot
[fill=cyan,draw=black]
coordinates
{(0.221,Workmen) (0.115,Employees) (0.106,Teachers) (0.089,Managements) (0.074,White collars) (0.194,Freelances) (0.213,Entrepreneurs) (0.226,Self-Employed) (0.210,Family-firm Owners) (0.322,Temporary workers)};
\end{axis}
\end{tikzpicture}
\caption{\textbf{Mean}}\label{ortho1}
\end{picture}`Mi da un errore di compilazione (use of \pictur@ doesn’t match its definition argument). Grazie mille lo stesso.
-
25 Novembre 2015 alle 7:53 #104139
-
25 Novembre 2015 alle 7:59 #104140
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.