- Questo topic ha 5 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 6 anni, 7 mesi fa da
LuglioM26.
-
CreatoreTopic
-
26 Gennaio 2020 alle 17:53 #117095::
Salve,ho un problema con \longtable. Questo è il codice:
`
\renewcommand{\arraystretch}{2}
\begin{longtable}{lm{14cm}cc}
\centering
& & VERO & FALSO \tabularnewline
\endhead
A & & & \\
B & & & \\
\newpage
A & & & \\
B & & & \\
\newpage
A & & & \\
B & & & \\
\end{longtable}
`Quando iniziano le nuove pagine, il contenuto A (che è un semplice simbolo o singolo carattere) delle prime righe è sfasato a destra rispetto a B (anche lui simbolo/carattere) della seconda linea.
Per risolvere ho usato un artificio è cioè ho inserito un \hspace{} negativo (nel mio caso -2.5mm) per “allineare” A e B.Suggerimenti?
Grazie in anticipo
Stefano
-
CreatoreTopic
-
AutoreRisposte
-
-
27 Gennaio 2020 alle 9:05 #117096::
@LuglioM26, sei un frequentatore di lunga data di questo forum, e dovresti aver letto centinaia di volte che è opportuno allegare un esempio minimo compilabile che col minimo di righe mostri il problema. Ora il tuoe esempio di longtable è minimo, ma non è compilabile, perché manca la classe e un preambolo minimo. Tuttavia il comando \centering è quello che ti produce il problema e non ci vuole, perché agisce solo sulla prima cella dell’unica riga di intestazione.
Ma quel che è peggio, è che il secondo campo è di 14cm = 140mm; ora fati i conti sulle dita; il foglio di carta UNI A4, è largo 210mm; le classi standard hanno margini non inferiori a 25mm ciascuno, quindi ti restano non più di 160mm per la giustezza del testo; se una colonna è larga 140mm, e gli spazi a destra e a sinistra di ciascuna colonna sono ciascuno di 6pt, circa 2mm, e la colonna contiene 4 colonne devi aggiungere 16mm per quegli spazi. Le colonne 3 e 4 contengono le parole VERO e FALSO, mentre la prima colonna contiene una lettera maiuscola, cioè in totale 10 maiuscole, puoi stimare una larghezza complessiva di 5em, che lavorando con un corpo di 12pt, vuol dire circa 2mm per ogni lettera, e se ne vanno altri 20mm. dunque la tabella è larga complessivamente circa 140mm+16mm +2mm =176mm.
Come fanno a stare 176 mm dentro uno spazio non superiore a 160mm?
Come vedi devi ridurre quella larghezza di molti millimetri, probabilmente devi scendere a 120mm o forse 110mm; fai degli esperimenti; ma ricordati di tenere conto anche del contenuto delle celle che nel tuo esempio sono vuote; forse devi ridurre ancora.
-
27 Gennaio 2020 alle 12:44 #117097::
Ringrazio @OldClaudio per il suo intervento/consigli/spiegazioni TeXniche.Riporto l’mwe:
`
\documentclass[11pt,a4paper]{article}\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{amsmath,amssymb,amsthm} % per utilizzare i simboli matematici
\graphicspath{{./images/}{../images/}} % directory immagini
\pagestyle{empty}\usepackage{cmbright}
\usepackage{iwona}
\usepackage{textcomp}
\usepackage{booktabs}
\usepackage{subfig}
\usepackage{multicol} % testo su più colonne
\usepackage{multirow}
\usepackage{array}
\usepackage{wasysym}
\usepackage{fontawesome} % simboli speciali
\usepackage{tikz} % disegno programmato
\usepackage{xfrac} % per scrivere frazione in linea del tipo a/b usare $\sfrac{a}{b}$
\usepackage[decimalsymbol=comma]{siunitx} % unità di misura \num{numero decimale}% GEOMETRIA DELLA PAGINA
\usepackage[a4paper,headheight=10mm,headsep=0mm,footskip=10mm,top=10mm,bottom=20mm,left=10mm,right=10mm,heightrounded]{geometry}% FORMATTAZIONE INTESTAZIONE E PIE' DI PAGINA
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{ISTITUTO}
\chead{MATERIA}
\rhead{CLASSE}
\lfoot{ALUNNO}
\cfoot{TOTALE:}
\rfoot{DATA}\usepackage{longtable}
\newcommand{\falert}{
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=5mm,rotate=90,anchor=center] at (current page.west) {\faExclamationCircle \, {\footnotesize TESTO SX}};
\node[xshift=-5mm,rotate=90,anchor=center] at (current page.east) {\faExclamationCircle \, {\footnotesize TESTO DX}};
\node[yshift=5mm,anchor=center] at (current page.south) {\faExclamationCircle \, {\footnotesize TESTO CENTRO}};
\end{tikzpicture}
}\begin{document}
\begin{center}
\,
\end{center}\noindent TESTO
\renewcommand{\arraystretch}{2}
\begin{longtable}{m{5mm}m{14cm}cc}
\centering
& & VERO & FALSO \tabularnewline
\endhead
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
%\pagebreak
\newpage
\falert
%\hspace{-2.5mm}
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
%\pagebreak
\newpage
\falert
%\hspace{-2.5mm}
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
$\bullet$ & DOMANDA & $\Box$ & $\Box$ \\
\end{longtable}\end{document}
`Facendo esperimenti ho constatato che l’errore è prodotto dalla macro \alert mentre \centering, invece, non crea alcun problema.
Premetto che ho necessità di inserire quella macro ed è per questo che ho dovuto inserire il comando \newpage in quanto \longtable produceva correttamente più pagine ma ovviamente non inseriva i contenuti della macro su ogni pagina.
L’alternativa sarebbe di trovare un modo per inserire un qualunque oggetto/testo/altro in modo automatico su ogni pagina creata.
Non voglio creare una sottorichiesta ma questo possibilità mi interesserebbe molto.
Tornando al problema, non capisco come mai quella macro generi questo inconveniente. In fondo sono semplici comandi tikz.
Resto in attesa
Stefano
-
27 Gennaio 2020 alle 21:44 #117098::
Stefano, adesso si capisce, on che cosa vuoi fare con quel \falert,, ma perché la riga che lo contiene è spostata a destra; perché gli spazi dopo le graffe aperte e dopo quelle chiuse sono significativi; aggiungi i segni di commento dopo le graffe e il problema sparisce; così:`\newcommand{\falert}{% COMMENTO
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=5mm,rotate=90,anchor=center] at (current page.west) {\faExclamationCircle \, {\footnotesize TESTO SX}};
\node[xshift=-5mm,rotate=90,anchor=center] at (current page.east) {\faExclamationCircle \, {\footnotesize TESTO DX}};
\node[yshift=5mm,anchor=center] at (current page.south) {\faExclamationCircle \, {\footnotesize TESTO CENTRO}};
\end{tikzpicture}% COMMENTO
}
`Ho poi il sospetto che la definizione di \falert sia sbagliata, perché le parti che contengono TESTO SX e TESTO DX credo che siano fuori della pagina. Non entro nel merito perché per disegnare solo un punto esclamativo bianco su un disco nero, io preferisco usare altre cose.
-
28 Gennaio 2020 alle 9:07 #117099::
OldClaudio” post=117527Stefano, adesso si capisce, on che cosa vuoi fare con quel \falert,, ma perché la riga che lo contiene è spostata a destra; perché gli spazi dopo le graffe aperte e dopo quelle chiuse sono significativi; aggiungi i segni di commento dopo le graffe e il problema sparisce; così:`\newcommand{\falert}{% COMMENTO
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=5mm,rotate=90,anchor=center] at (current page.west) {\faExclamationCircle \, {\footnotesize TESTO SX}};
\node[xshift=-5mm,rotate=90,anchor=center] at (current page.east) {\faExclamationCircle \, {\footnotesize TESTO DX}};
\node[yshift=5mm,anchor=center] at (current page.south) {\faExclamationCircle \, {\footnotesize TESTO CENTRO}};
\end{tikzpicture}% COMMENTO
}
`Ho poi il sospetto che la definizione di \falert sia sbagliata, perché le parti che contengono TESTO SX e TESTO DX credo che siano fuori della pagina. Non entro nel merito perché per disegnare solo un punto esclamativo bianco su un disco nero, io preferisco usare altre cose.Ciao.
Solo per capire se ho capito.
Hai necessità di inserire testi a margine per ogni pagina che produce longtable e non altre.
Sarebbe un po’ come se ci fossero due colonne in più, una prima colonna e un’ultima colonna con il materiale al centro di tutto il gruppo delle righe di ciascuna pagina.
Corretto?
R.
-
28 Gennaio 2020 alle 12:18 #117100::
Ringrazio sia @OldClaudio che @robitex.
@OldClaudio
Grazie, adesso funziona come dovrebbe!
Per quanta riguarda quel punto esclamativo con sfondo nero, il motivo è solo per far risaltare gli avvisi (TESTO) agli occhi degli studenti (almeno questa è l’intenzione!).
Quegli spsostamenti a destra del codice in effetti sono dannosi!
Il TESTO DX/SX/CENTRO mi rientra nei margini di stampa.
Ovviamente accetto consigli per migliorare il format!
@robitex
No, la mia domanda è generica, a prescindere da longtable.
In particolare vorrei poter inserire del testo esattamente come fa quella macro (dx/sx/centro basso) ma in modo automatico in ogni pagina prodotta indipendentemente dal pacchetto utilizzato un po’ come fa fancyhdr (con il quale non ho provato a vedere se sia possibile).Per correttezza, nel codice che ho postato mi sono dimenticato di inserire un \alert anche nella prima pagina prima di \noindent.
Ho voluto provare ad usare longtable visto che l’elenco delle domande occupava più di una pagina ma mi ero imbattuto in questo piccolo (ma grave per mia colpa) inconveniente.Grazie ancora
Stefano
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.