Risposte nei forum create
-
AutoreRisposte
-
14 Settembre 2018 alle 11:42 in risposta a: Posizionamento di due tabelle su una stessa riga #113885::
@iretex, non mi sono spiegato bene: cucire quello che hai postato ora con quello che hai postato nel tuo primo messaggio è compito tuo; chi ti vuole aiutare deve poter copiare dalla finestra contente il tuo codice un file completo da \documentclass a \end{document}, non parti da assemblare, col rischio di commettere errori o dimenticanze nell’assemblaggio. Se l’assemblaggio lo fai tu e tu stessa collaudi che l’EMC replica esattamente il tuo problema, sei sicura che incolandolo tutto tra i tag del codice, chi lo riceve lo riceve completo.Ti prego, assembla l’EMC, collaudalo e postalo.
::
Benvenuta nel forumpeccato che come primo messaggio invii un codice che a prima vista contiene un solo errore, quello di usare il codice di posizionamento [H] che non dive usare mai, mai e poi mai perché è tipograficamente scorretto.
Per il resto è difficile dirti che cosa ci sia che non vada se non metti un minimo di preambolo per sapere quali pacchetti usi che classe usi, eccetera.
Ci vuole un esempio minimo compilabile vale a dire dovresti allegar un codice che cominci con \documentclass e finisca con \end{document}; questo lo rendo “compilabile”; poi dovrebbe contenere nel preambolo il minimo di pacchetti necessari per replicare il tuo problema.
Posso trare ad indovinare; non posso indovinare la classe, no posso indivinare se hai caricato caption con i suoi annessi e connessi; posso capire che hai caricato il pacchetto float (che puoi tranquillamente togliere del tutto, perché NON devi usare i codice H); non posso indovinare la giustezza della tua pagina senza conoscere la classe; non posso indovinare il corpo che usi come corpo predefinto nella tua classe.
Perciò, per favore crea l’esempio minimo compilabile e usa quello come codice da far esaminare ai frequentatori del forum che potrebbero darti una mano, o almeno perché ti succede quello che lamenti; Io propenderei a pensare che le due tabelline siano troppo larghe per la giustezza della tua clsse, ma evidentemente si tratta di un’ipotesi non sostenuta da nessun indizio.,
::
Per lo stesso motovo per il quale succedeva quando componevi la tabella.Cerca di capire questo fatto: l’ambiente tabular forma una scatola che costituisce un blocco unico; sotto ci metti \captionof che non fa parte del blocco, quindi \LaTeX lo mette dove trova posto per metterlo.
Se usi \includegraphics questo crea una scatola che costituisce un blocco unico contenente l’immagine inclusa; sotto ci metti \captionof e, sorpresa, succede la stessa cosa che con tabular.
L’ambiente center non forma un blocco unico, ma prende i blocchi costituiti dal suo contenuto e li gestisce come singole righe (anche queste nel momento di dividere le pagine sono delle scatole/blocchi unici che contengono una sola riga ciascuno); quindi l’interruzione di pagina avviene fra le scatole. nel tuo caso fra la scatola della tabella/immagine e la didascalia.
L’ambiente table che contiene sia la tabella o l’immagine della tabella sia la didascalia, ne costruisce un’unica scatola e posiziona questa “scatolona”, singolo oggetto non divisibile, dove c’è posto, ed è per questo che il contenuto degli ambienti table e figure si dice galleggiante o flottante.
longtable forma la tabella lunga in modo da controllare dopo ogni riga ci celle se ci stà un’altra riga; se ci sta la mette, se non ci sta inserisce il foot, poi va a pagina nuova, inserisce head, e poi prosegue una riga di celle alla volta; Longtable usa il fisrt head (che contiene anche la didascalia) come prima riga di questo intero processo e last foot come ultima riga nell’ultima pagina.
Il tuo scopo (tipograficamente errato) è quello di prendere una tabella relativamante grande per metterla lì e solo lì con la sua didascalia. Se la tabella è grande e non c’è posto per metterci sia la tabella vera e propria sia la didascalia (in una scatola distinta) è chiaro che va a pagina nuova fra la tabella e la didascalia.
Soluzioni? Te le ho già indicate e te le ripeto con altre aggiunte. Nota che dove scrivo TABELLA intendi indifferentemente la tabella composta nell’ambiente tabular o l’inclusione della sua immagine.
1) Riduzione del corpo: `\begin{center}
\small % o corpo ancora più piccolo, senza esagerare fino a \tiny… 🙂
TABELLA
\captionof{table}{…}
\end{center}`2) Longtable: `\par\bigskip
\begin{longtable}{ll}
\caption{…}\label{…}\\[0.5ex]
\toptrule
\endfirsthead
…
\endhead
…
\endfoot
….
\endlastfoot
…. & … \\
…………
\end{longtable}\bigskip`3) minipage:`
.begin{center}
\begin{minipage}{\textwidth}
TABELLA
\captionof{table}{…}\label{…}
\end{minipage}
\end{center}`4) Scalamento mediante un fattore minore di uno da cercare sperimentalmente:`
\begin{center}
\scalebox{fattore}{\begin{minipage}{\textwidth}
TABELLA
\captionf{table}{…}{…}\label{…}
\end{minipage}}
\end{center}`5) Composizione separata: crei un altro file .tex diciamo tabella.tex`\documentclass{standalone}
…
\begin{document}
\begin{tabular}{ll}
… & …\\
………….
\end{tabular}
\end{document}`
Compili con pdflatex e ottieni un’immagine scontornata della tabella nel file tabella.pdfTorni al tuo file e inserisci l’ambente table così:`\begin{table}[!htbp]
\includegraphics[width=fattore\textwidth]{tabella.pdf}
\caption{…}\label{…}
\end{table}`Naturalmente anche in questo caso al posto di “fattore” devi metere un numero minore di uno da cercare sperimentalmente.Nei due casi in cui devi cercare il fattore sperimentalmente e non puoi lasciare che LaTeX se lo determini da solo, dipende che dove vuoi mettere la tua tabella non flottante; la giustezza \textwidth ti è nota, ma non sai quanto spzio ci sia sull pagine, quindi non puoi specificare direttamente l’altezza. Se a cose fatte devi usare un fattore minore di 0.9 (circa} la procedura ti produce un risultato tipograficamante inaccettabile, indegno di LaTeX che sarebbe costruiti per produrre testi tipograficamante composti bene; se lo forzi a fare cose tipograficamente discutibili o sbagliata, il risultato, ovviamente, è tipograficamente errato.
La soluzione con una grande tabella fissa generalmente è tipograficamente errata; le tabelle e le figure flottanti a cui fare riferimento col loro numero nel testo, in modo da evitare scritture del tipo “..come si vende nella seguente tabell…”, ma usando scritture del tipo “…come si vede nela tabella~\ref{…} …” è la soluzione tipograficamente corretta.
Puoi obbiettare che la tua tabella è la sola cosa che compare in una sezione, quindi viene subito dopo il titolo della sezione; in questo caso forse le soluzioni con il fattore di scalamento, se la tabella non è troppo grande, pussono essere accettabili; altrimenti devi ricorrere a longtable.
::
Se leggessi la documentazione di longtable, potrebbe funzionare.Intanto non mettere l’ambiente longtable dentro l’ambiente centering.
Poi longtable richiede i descrittori delle colonne, tale e quale a tabular.
Longtable richiede che la didascalia sia composta nel first head.
Se deve andare a capo in un’altra pagina devi impostare anche head, foot e last foot.
Non vorrai mica che te lo scriva io il codice, che trovi già bell’e fatto nella documentazione?
Se non ti piace la documentazione in inglese, leggiti L’Arte di scrivere con LaTeX, liberamente scaricabile dal link che si trova nella sezione Documentazione di questo forum, dalla pagina 112 in poi.
::
Il pacchetto a cui alludi è imakeidx e fa parte integrante di TeXLive da una decina di anni. Ce l’hai già a bordo e ne leggi la documentazione aprendo un terminale o prompt dei comandi e dandovi dentro il comando texdoc imakeidxMa se non marchi ciò che vuoi inidicizzare, non poi farlo.
Se ci avessi pensato prima avresti [potuto scrivere i nomi con un comando che non facesse niente oltre a scrivere il nome stesso o, meglio ancora, li scrivesse in maiuscoletto, o…`\newcommand\Nome[1]{\textsc{#1}}`Poi in un secondo tempo, venuta la voglia di indicizzarli, avresti modificato il comando ridefinendolo, per esempio, `\newcommand\Nome[1]{\textsc{#1}\index[nomi]{\textsc{#1}}}`Così in modo del tutto automatico, con una semplice ridefinizione di un comando personale avreste preso due piccini con una fava.
Ora è troppo tardi e devi fare tutto a mano; naturalmente il secondo comando che ti ho indicato sarebbe utile lo stesso per cui dove c’è scritto Mario Rossi, devi solo modificare in [tt]\Nome{Mario Rossi}[/tt] aggiungendo [tt]\Nome{[/tt] prima e [tt]}[/tt] dopo. Col copia e incolla di [tt]\Nome{[/tt] non dico che fai in un attimo, ma certamente ti risparmia molto lavoro.
::
Ho controllato con la classe usata da @KeyTeX.con quella classe, ci pensa la classe stessa a caricare hyperref, rinviandone il caricamento al momento di finire il preambolo. La fine del preambolo si ha più o meno a metà del codice che vien eseguito quando il compilatore sviluppo l’istruzione \begin{document}. La cosa è spiegata meglio nella documentazione del pacchetto etoolbox.
Perciò se si mette il codice`%%%%%%%%%%%%% contatori subordinati alle parti; hyperref è chiamato a
%%%%%%%%%%%%% EndPreamble
\usepackage{chngcntr}
\counterwithin{chapter}{part}
%%%%%%%%%%%%%`subto prima di [tt]\begin{document}[/tt] questa azione viene fatta prima di caricare hyperref.E questo va bene.
Dopo di ché si può tranquillamente procedere con la compilazione della tesi, tranne un punto delicatissimo; quando si esegue la seconda compilazione, l’indice generale appare orribile, perché l numero romano maiuscolo che indica la parte occupa spazio e riempie completamante lo spazio che nei comandi di stile dell’indice generale sono dedicati ai numeri degli oggetti numerati che compaiono nell’indice.
I casi sono due:
1) o @KeyTeX rinuncia a numerare i capitoli subordinandoli alla classe (cosa che ho già consigliato di fare), oppure
2) @KeyTeX ridefinisce i comandi \l@chapter, \l@section, \l@subsection, eccetera, per assegnare uno spaziomaggiore a ciascun campo destinato al numero della parte, del capitolo, della sezione, eccetera. Probabilmente deve ridefinire anche \@caption per gli indici delle figure e delle tabelle; probabilmente dovrebbe ridefinire anche lo spazio dei numeri delle equazioni, se per caso avesse delle equazioni numerate. L’operazione è fattibile, ma non è affatto banale; tempo che per un neofita la cosa sarebbe fuori portata; ma sarebbe fuori portata (temporale) anche per chi volesse fornirgli il codice.Detto questo ribadisco il mio parere (che è solo un parere personale e non è da prendere come un assioma, vero di per sé) che subordinare la numerazione dei capitoli alle parti non è una buona idea.
::
Questo non l’avevo notato.Subordinare la numerazione dei capitoli a quelli delle parti è fattibile, ma non basta da solo per rendere l’operazione di hyperref corretta.
In particolare se lo si fa, credo che debba essere fatto prima di caricare il pacchetto hyperref, perché il meccanismo che questo fa per creare le “anchors” e i “targets” dei link ipertestuali richiedono la conoscenza delle subordinazioni dei contatori.Infatti quello che hai fatto nel tuo EDIT 2 produce l’effetto che volevi ma produce il caos nei link ipertestuali.
Io non lo farei; cioè non subordinerei la numerazione dei capitoli a quella delle parti, perché si appesantirebbe troppo la composizione di tutti i numeri associati ai vari oggetti, dai capitoli, fino alle equazioni, figure, tabelle, eccetera.
Da un punto di vista logico non ha senso nemmeno se le varie parti fossero stampate in tomi diversi, figuriamoci in un solo volume. La divisione in parti serve proprio per suddividere i capitoli in gruppi con argomenti omogenei, non per complicare le varie numerazioni.
::
Se guardi bene la data del documento che hai linkato, vedi che è stato composto nel 2010. Da allora ClassicThesis ha subito almeno un importante upgrade; in particolare non richiede più il pacchetto classicthesi-ldpkg.Per fortuna i pacchetti vengono aggiornati; purtroppo per chi scrive la documentazione è difficilissimo stare dietro alle modifiche che si incontrano in continuazione non solo nel pacchetto che viene documentato e ma anche da quelli da cui è interdipendente.
Suppongo che il suggerimento di @samiel si possa applicare tranquillamente; altrettanto semplicemente si potrebbe aggiungere nel tuo preambolo la specifica [tt]\newcounter{dummy}[/tt].
Tuttavia la composizione dell’indice analitico si fa molto più semplicemente e in automatico, usandoil pacchetto imakeidx;leggine la documentazione con il comando texdoc imakeidx dato da terminale; sostituisce completamente, specificando le opzioni opportune, tutte quelle righe indicate nella documentazione di Pantieri e on richiede di eseguire a mano il comando makeindex.
::
Come al solito non alleghi un esempio minimo compilabile; Altrettanto faccio io, così vedi che cosa vuol dire non disporre i un EMC. Ho scaricato dalla rete il template e ho modificato o duplicato alcune righe del file main.tex, così:
`\part{Part One}
\include{Chapters/Chapter1}
\part{Part Two}
\include{Chapters/Chapter1}
\part{Part Three}
\include{Chapters/Chapter1}
\part{Part Four}
\include{Chapters/Chapter1}
`
A me funziona benissimo e mi stampa le quattro parti e (ovviamente) ripete lo stesso capitolo in ciascuna parte, perché il modello contiene solo un capitolo di esempio. La cosa è irrilevante con il tuo problema.Quindi perché a me funziona e a te no?
Nota che pur essendo stato scritto per l’uso in inglese il file main.tex contiene un errore di ortografia in inglese(passi, nella fretta queste cose succedono a tutti, ma se uno ha il proprio editor impostato per segnalare le parole errate ortograficamente, la cosa balza all’occhio) e contiene un errore grave nella lista dei simboli dove $\omega$, la “angular frequency” è data in radianti invece che in radianti al secondo (come dire che la velocità si misura in chilometri, invece che in chilometri all’ora).
Queste, anche se sembrano scemenze pignolesche, sono le cose che mi fanno cadere le braccia quando vedo i template che ci sono in giro.
Con questo template il codice sembra corretto, ma non ci metterei le mani nel fuoco; infatti nel main.tex d’esempio ridefinisce più volte \keywords.
::KeyTeX” post=114163
quindi con uno stile Plain non si può mettere il numero alternativamente a dx e sx? ho capito bene?Non è che non si possa, ma lo stile plain viene usato dietro le quinte dal comando \chpter che usa lo stile plain per comporre al prima pagina di un capitolo. Siccome la prima pagina è sempre a destra, non ha senso avere quella sola pagina col numero a destra, e in tutte le altre pagine con le testatine che hanno il numero di pagina in alto e all’esterno (componendo twoside).
Ti ripeto; se vuoi consigli migliori allega un esempio minimo compilabile; visto che nel codice che hai postato mostri che carichi il pacchetto lipsum, leggine la documentazione e usalo il suo comando \lipsum per formare senza sforzo una decina di pagine con capitoli e sezioni, in modo che si possa vedere che cosa ti esce. Il testo sarà una serie di parole che ricordano il latino, ma sono assolutamante prive di senso; quel pacchetto serve per creare un riempitivo di testo fittizio in modo facile e spedito; sembra fatto apposta per creare esempi minimi compilabili.
PS: vedi che usare template è una pessima idea; ti ritorovi ad usare pacchetti matematici che ingombrano la memoria e impedisocno di sfruttare appieno le potenzialità del compilatore. Se poi quelle ridefinizioni dello stile plain erano già presenti nel template, hai la prova provata che quel template è una porcheria 🙁 😯
::
@KeyTeX ci vorrebbe un esempio minimo compilabile; esempio compilabile si commenta da solo con una puntualizzazione, il file di esempio deve potersi compilare in modo da mettere in luce il tuo problema. Minimo significa che preambolo e contenuto del testo devono essere il minimo indispensabile per replicare il problema; Non serve tutto il preambolo che hai allegato al tuo messaggio, anche perché da quanto hai allegato non si capisce se sia tutto il preambolo o non ci siano altre cose di mezzo.Ti ricordo che il preambolo va da [tt]\documetclass[/tt] a [tt]\begin{document}[/tt] e il corpo del testo va da [tt]\begin{document}[/tt] a [tt]\end{document}[/tt]. L’esempio minimo va da \documentclass a \end{document}. Lo devi creare e verificare che compili, prima di allegarlo; devi controllare che replichi il problema, nel tuo caso ce mostri in numero di pagina alternativamente a destra o a sinistra. e non sempre dallo stesso lato su tutte le pagine.
Qualche sospetto ce l’avrei, ma senza un esempio minimo compilabile è difficile verificarlo; preferisco non parlare a vanvera esponendo sospetti infondati.
Una cosa che ti posso dire subito è che NON DEVI CARICARE amsfonts VISTO CHE CARICHI amssymb.
Un’altra cosa: ho il sospetto che tu possa avere equivocato fortemente come si configura lo stile plain delle pagine. Quello che compare nel due codici che hai allegato, e che mi sembra sostanzialmente identico (cioè il contenuto del comando \impaginazione, con quello che hai messo verso la fien del primo codice allegato), sia una cosa che sostanzialmente non ha nulla a che vedere con lo stile plain. Questo stile prevede testatine vuote e il numero della pagina al centro del piedino; Questa è l’impostazione di default. Il numero di pagina altrnativamente da un lato o dall’altro ha senso solo se compare negli stili headings o myheadings; nello stile fancy dipende da che cosa configuri e come.
::
Il pacchetto ifthen (fa parte dei pacchetti essenziali) definisce il comando \whiledo con la sintassi \whiledo(espressione booleana}{cose da fare}; leggine la documentazione con texdoc ifthen cercando nella pagina 2)Il pacchetto etoolbox definisce invece una macro \whielboolexpression che ha la sintassi \whileboolexprassion{espressione booleana}{cose da fare}
Tutto sommato molto simile al caso precedente. Però l’espressione booleana ha una forma diversa e forse permette una maggiore versatilità.Il cuore di LaTeX contiene invece il comando \@wilenum verifica numerica\do{cose da fare}; mi pare decisamente più comodo solo che c’è di mezzo il carattere @ che non è valido se non nei file di classe e nei moduli di estensione; aggiri il problema in questo modo`\newcommand\wilenum[2]{\csname @whilenum#1\endcsname\do{#2}}` In modo che la sintassi del tuo nuovo comando diventa \whilenum{verificanumerica}{cose da fare}.
In tutti i casi (esemplificherò solo con l’ultimo) devi procedere con questo codice`\documentclass[…]{…]
…
\newcount \MYcontat
\newcommand\whilenum[1]{\unless\ifnum \MYcontat>#1}{\includegraphics[…]{\expandafter c\the\MYcontat}\advance\MYcontat by 1}
…
\begin{document}
…
\MYcontat=1
\whilenum{24}
…
\end{document}`Ovviamante questo è solo un esempio che va adattato alle circostanze; Supponi infatti di avere figure che si chimano c1, c2, c3, …,c24; d1, d2, d3,…,d15; e1, e2, e3, e4; e vie di questo passo; La lettera iniziale di numeri è diversa a secodna dei gruppi, quinaid devi prevedere nell’uso di \whilenum delle cose in più in modo da poter adattare la definizione di whilenum in modo che consenta un maggior numero di parametri; per esempio`\newcommand\whilenum[2]{\unless\ifnum\MYcontat>1}{\includegraphics[…]{\expandafter#2\the\MYcontat}\advance \Mycontat by 1}}`
In sostanza aggiusta le tue definizione a qual che ti pare.
-
AutoreRisposte