- Questo topic ha 5 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 3 mesi fa da
Daniel.
-
CreatoreTopic
-
13 Giugno 2019 alle 4:52 #115927::
Buongiorno,
come da titolo sto cercando di inserire correttamente l’ambiente enumerate all’interno di una tabella.
`
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}
\usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx}
\begin{document}
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
Tutte & \begin{enumerate}
\item titolo 1
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}
\end{document}
`
Tuttavia nel risultato l’ambiente enumerate non è allineato con “Tutte” ma è più in basso. Come posso risolvere?
-
CreatoreTopic
-
AutoreRisposte
-
-
13 Giugno 2019 alle 5:08 #115928::
desk7″ post=116338Buongiorno,
come da titolo sto cercando di inserire correttamente l’ambiente enumerate all’interno di una tabella.
`
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}
\usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx}
\begin{document}
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
Tutte & \begin{enumerate}
\item titolo 1
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}
\end{document}
`
Tuttavia nel risultato l’ambiente enumerate non è allineato con “Tutte” ma è più in basso. Come posso risolvere?Ciao.
Se sei in una tabella, sei in una tabella 🙂
In altri termini, devi prima chiarire la natura dell’oggetto che rendi con un’enumerazione.
`\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx}
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali}\\
\midrule
Tutte & titolo 1\\
& titolo 2\\
& titolo 3\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}`
Ciao.
Ps. al posto di graphics usa graphicx
-
13 Giugno 2019 alle 8:07 #115929::
desk7″ post=116338Buongiorno,
come da titolo sto cercando di inserire correttamente l’ambiente enumerate all’interno di una tabella.
`
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}
\usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx}
\begin{document}
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
Tutte & \begin{enumerate}
\item titolo 1
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}
\end{document}
`
Tuttavia nel risultato l’ambiente enumerate non è allineato con “Tutte” ma è più in basso. Come posso risolvere?Tutti gli ambienti di tipo “elenco” hanno uno spazio sopra e no sotto, iltre agli spazi fra un elemento elencato e l’altro; Puoi eliminarli se usi il pacchetto enumitem e mediante le sue funzionalità definisci un altro ambiente basato su enumerate, che non abbia gli spazi che ti danno fastidio. Il pacchetto enumitem fornisce talmente tante funzionalità che devi leggertene la documentazione (comando texdoc enuitem da terminale) per usare quelle che ti servono davvero.
LA soluzione che ti ha dato @robitex va benissimo, ma spariscono le funzionalità degli elenchi. Viene fuori un’altra cosa; sie ti vada bene o no, dipende da quello che vuoi fare davvero, non quello che mostri in un esempio minimo compilabile.
-
13 Giugno 2019 alle 8:47 #115930::
Grazie per le risposte!
La soluzione proposta da robitex ha il vantaggio di essere molto semplice ma lo svantaggio di perdere le funzionalità degli elenchi (numerazione automatica etc.)
Ho letto la documentazione del pacchetto enuitem e, in accordo anche con quanto scritto qui, sono riuscito a ridurre lo spazio verticale, ma non ad eliminarlo.
`\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}
\usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx, enumitem}
\begin{document}
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
Tutte & \begin{enumerate}[topsep=0pt]
\item titolo 1
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}\end{document}`
Al di là poi del problema tecnico, poi, mi chiedevo se è tipograficamente corretto l’uso di elenchi all’interno di tabelle, tabelle nidificate etc.—————
Una soluzione funzionante, ma non so quanto elegante, è la seguente
`\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}
\usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx, enumitem}
\begin{document}
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
Tutte & \vspace{-\topsep} \begin{enumerate}[topsep=0pt]
\item titolo 1
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}\end{document}
`
-
13 Giugno 2019 alle 10:14 #115931::
desk7″ post=116341[…]
Una soluzione funzionante, ma non so quanto elegante, è la seguente
`\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}
\usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx, enumitem}
\begin{document}
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
Tutte & \vspace{-\topsep} \begin{enumerate}[topsep=0pt]
\item titolo 1
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}\end{document}
`Se insisti a voler usare l’ambiente [tt]enumerate[/tt], c’è una ragione TeXnica (collocazione della linea di base di una [tt]\vtop[/tt] che inizia con colla verticale) che obbliga a ricorrere al trucco di anteporre all’ambiente stesso una spaziatura negativa: azzerare tutti gli spazi verticali ([tt]\topsep[/tt], [tt]\partopsep[/tt]…) non è sufficiente. Una volta entrati in questo — brutto! — ordine di idee, bisogna almeno fare le cose per bene, in modo da ottenere un allineamento preciso. Purtroppo, fare le cose per bene richiede conoscenza degli interna corporis del LaTeX. Nell’esempio che segue, mi auguro di non aver dimenticato nulla.
L’esempio è stato “ripulito” dei pacchetti non essenziali al suo funzionamento. Si noti che il pacchetto inputenc non è più necessario da un bel po’. Ho aggiunto delle linee orizzontali di riferimento che consentono di verificare agevolmente l’allineamento orizzontale; ovviamente, esse vanno rimosse in una situazione “di vita reale”.
`
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % non piu` necessario
\usepackage[italian]{babel}
% \usepackage{graphics}
% \usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
% \usepackage{multirow}
\usepackage{tabularx}
% \usepackage{enumitem}\begin{document}
Testo di riferimento.
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
\strut Tutte\rlap{\rule{4cm}{.2pt}} &
\strut \par \vspace{-\glueexpr \topsep + \partopsep + \baselineskip \relax}
\begin{enumerate} % [topsep=0pt]
\item titolo 1\rule{4cm}{.2pt}
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}Testo di riferimento.
\end{document}
`
La soluzione proposta da @robitex mi sembra molto migliore! 🙂Ciao.
—
Gustavo
-
13 Giugno 2019 alle 12:38 #115932::
letteracdp” post=116342
[…]
Una soluzione funzionante, ma non so quanto elegante, è la seguente
`\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphics}
\usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
\usepackage{multirow}\usepackage{tabularx, enumitem}
\begin{document}
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
Tutte & \vspace{-\topsep} \begin{enumerate}[topsep=0pt]
\item titolo 1
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}\end{document}
`Se insisti a voler usare l’ambiente [tt]enumerate[/tt], c’è una ragione TeXnica (collocazione della linea di base di una [tt]\vtop[/tt] che inizia con colla verticale) che obbliga a ricorrere al trucco di anteporre all’ambiente stesso una spaziatura negativa: azzerare tutti gli spazi verticali ([tt]\topsep[/tt], [tt]\partopsep[/tt]…) non è sufficiente. Una volta entrati in questo — brutto! — ordine di idee, bisogna almeno fare le cose per bene, in modo da ottenere un allineamento preciso. Purtroppo, fare le cose per bene richiede conoscenza degli interna corporis del LaTeX. Nell’esempio che segue, mi auguro di non aver dimenticato nulla.
L’esempio è stato “ripulito” dei pacchetti non essenziali al suo funzionamento. Si noti che il pacchetto inputenc non è più necessario da un bel po’. Ho aggiunto delle linee orizzontali di riferimento che consentono di verificare agevolmente l’allineamento orizzontale; ovviamente, esse vanno rimosse in una situazione “di vita reale”.
`
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % non piu` necessario
\usepackage[italian]{babel}
% \usepackage{graphics}
% \usepackage{pdfpages}
\usepackage{float}
\restylefloat{table}
\usepackage{booktabs}
% \usepackage{multirow}
\usepackage{tabularx}
% \usepackage{enumitem}\begin{document}
Testo di riferimento.
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{lX}
\toprule
\textbf{Materie} & \textbf{Nodi concettuali} \\ \midrule
\strut Tutte\rlap{\rule{4cm}{.2pt}} &
\strut \par \vspace{-\glueexpr \topsep + \partopsep + \baselineskip \relax}
\begin{enumerate} % [topsep=0pt]
\item titolo 1\rule{4cm}{.2pt}
\item titolo 2
\item titolo 3\end{enumerate} \\ \bottomrule
\end{tabularx}
\end{table}Testo di riferimento.
\end{document}
`
La soluzione proposta da @robitex mi sembra molto migliore! 🙂Ciao.
—
GustavoGrazie per la risposta. Come dicevo prima, non voglio insistere nell’usare enumerate ma stavo semplicemente sondando tutte le strade. D’altronde mi pareva che la cosa fosse poco elegante e, a vedere quanto è complicato renderla bene, come hai fatto, ne sono ora convinto.
Allora vi chiedo: il fatto che ciò che è difficile fare in LaTeX probabilmente non è tipograficamente corretto, vale anche in questo caso? Ovvero è sconsigliato inserire liste all’interno di tabelle? O anche tabelle nidificate?
Oppure si può fare ma il metodo più elegante è quello suggerito da robitex?
Grazie
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.