tabelle o immagini nel loro paragrafo…no floattanti!

  • Creatore
    Topic
  • #11899
    Up
    0
    Down
    ::


    Innanzitutto salve a tutti è la prima volta che scrivo. Cercherò di rispettare la netiquette.
    Allora ho letto 2-3 manuali e ho controllato che le mie risposte non ci sono (?) nel forum.

    Allora incominciamo:
    SO windows XP ho edition
    Distribuzione latek: MikTex 2.5
    Editor: TexNic Center

    Problema:
    io una serie di tabelle che non stanno tutte in un’unica pagina e fin qui mi sta bene.
    Ma che una parte faccia parte del loro parafrafo e altra finiscono alla cavolo in un altro non mi va affatto bene (devono praticamente venire una dopo l’altra all’interno dello stesso paragrafo che decido io!). Ho provato con htbp ma non funzia, anzi mettere solo h non mi lascia e lui me lo rimette a ht. Come posso fare ciò? Ecco i sprazzi di codice:

    `
    \documentclass[a4paper,11pt]{book}

    \usepackage[a4paper,hmargin={2.5cm,2.5cm},vmargin={2.5cm,2.5cm}]{geometry}
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[Italian]{babel}
    \usepackage{graphicx}

    %[…]

    %qui creo una tabella e così di seguito creo tutto le altre con lo stesso codice

    \begin{table}[ht]
    \begin{tabular}{|p{15.5cm}|c|}
    \hline
    Frasi relative ai soci onorari\\
    \hline
    per i soci onorari rappresentiamo la data di nominazione\\
    \hline
    \end{tabular}
    \end{table}`

    Voi mi direte che latex si arrangia ma io devo fare così a spostarle per rapporto spazio testo MA io ho la necessità che queste tabelle stiano nel loro paragrafo dato che sono le uniche cose ce ci sono in quel paragrafo!

    PS poi mi piacerebbe sapere perché ho dovuto specificare la larghezza della tabelle sennò mi sforavano fuori dal foglio e perché mettendo quel |c| le scritte all’interno non vengano centrate…su impara latex e (mettilo da parte…) non occorre specificare la larghezza e quel |c| funziona…boh

    Invece per le immagini ho un problema simile, se io voglio che una immagine stia nel suo paragrafo e non in quello di un’altro e inoltre che fra il titolo del paragrafo e l’immagine non ci siano interruzione come faccio? ho provato con \newpage e htbp ma il risultato è catastrofico…insomma non posso trovarmi il titolo di un paragrafo mezza pagina vuota altri pragrafi e lìimmagine nei due paragrafi successivi.
    Voi mi direte che latex fa un lavoro egregio…ma io in un paragrafo sto cercando di mettere SOLO un’immagine…se me la sposta da un’altra parte ho un paragrafo vuoto!

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #11900
      Up
      0
      Down
      ::


      Ciao ugaciaka.

      io una serie di tabelle che non stanno tutte in un’unica pagina…

      In tal caso sarebbe meglio caricare il pacchetto «longtable» e usare l’ambiente apposito al posto del più semplice «table».

      … e fin qui mi sta bene.
      Ma che una parte faccia parte del loro parafrafo e altra finiscono alla cavolo in un altro non mi va affatto bene (devono praticamente venire una dopo l’altra all’interno dello stesso paragrafo che decido io!)

      Non certo con un ambiente mobile, come «table» o «figure», dove è LaTeX a decidere. Se vuoi decidere tu, dovresti trattare questi oggetti come caratteri, collocandoli in un ambiente tipo «center» o una sua ridefinizione, anche se non sarebbe proprio corretto. Ad ogni modo, se la tabella è tanto lunga, non sono sicuro che tutto ciò funzioni. Io userei «longtable» e proverei a vedere come viene fuori.

      `\usepackage[a4paper,hmargin={2.5cm,2.5cm},vmargin={2.5cm,2.5cm}]{geometry}
      `

      Carino questo modo di impostare i margini con «geometry», lo terrò a mente (ero rimasto a «top=…, left=… »).

      `\begin{tabular}{|p{15.5cm}|c|}`
      […] mi piacerebbe sapere perché ho dovuto specificare la larghezza della tabelle sennò mi sforavano fuori dal foglio …

      Un piccolo consiglio: invece di scrivere così
      `p{15.5cm}
      `
      ti conviene fare riferimento alla giustezza dell’ambiente immediatamente superiore nel quale ti trovi
      `p{.5\linewidth}
      `
      nell’esempio che ti ho fatto, quella colonna sarà larga il 50% di esso. In molti esempi si usa «\textwidth», ma secondo me «\linewidth» è più corretto in quanto, come detto sopra, fa riferimento non al documento in generale ma al contesto che «contiene» la tabella che stai inserendo.

      … e perché mettendo quel |c| le scritte all’interno non vengano centrate…su impara latex e (mettilo da parte…) non occorre specificare la larghezza e quel |c| funziona…boh

      Ti faccio notare che avendo scritto
      `\begin{tabular}{|p{15.5cm}|c|}`
      hai definito due colonne nella tua tabella, ma nel tuo esempio ne hai riempita una sola: prova a popolare entrambe le colonne…
      `\begin{table}[ht]
      \begin{tabular}{|p{15.5cm}|c|}
      \hline
      Frasi relative ai soci onorari & fff\\
      \hline
      per i soci onorari rappresentiamo la data di nominazione & ggg\\
      \hline
      \end{tabular}
      \end{table}
      `
      … a me pare che la seconda sia centrata, come volevi tu.

      Invece per le immagini ho un problema simile, se io voglio che una immagine stia nel suo paragrafo e non in quello di un’altro …

      Come prima, anche se poco carino: «center» o simili, e non ambienti mobili.

      … e inoltre che fra il titolo del paragrafo e l’immagine non ci siano interruzione

      Questo è già più difficile da evitare. Se l’immagine è vettoriale, prova a scalarla, o a ridefinire il comando di sezionamento (es. «\section», «\subsection», ecc.) in modo che inizi sempre in una pagina nuova, così lo spazio ce l’hai (anche questa, comunque, non è un granché come soluzione).

      … ho la necessità che queste tabelle stiano nel loro paragrafo dato che sono le uniche cose ce ci sono in quel paragrafo!
      […]
      in un paragrafo sto cercando di mettere SOLO un’immagine…se me la sposta da un’altra parte ho un paragrafo vuoto!

      Ti prego di non offenderti, ma credo che un paragrafo che contiene solo una tabella o un’immagine non sia proprio il massimo (se te lo dico io che faccio cose che definire tipograficamente orrende sarebbe poco… 😉 forse sarebbe il caso di rivedere (ad un livello logico, di strutturazione) quella parte.

      Saluti.

    • #11901
      Up
      0
      Down
      ::


      Aggiungo solamente che se hai necessità che le tue figure e/o le tue tabelle abbiano una caption anche senza usare ambienti flottanti, hai bisogno del pacchetto caption. Dai un’occhiata alla sua documentazione, prima di usarlo.

      Ciao.

    • #11902
      Up
      0
      Down
      ::


      Se vuoi che oggetti flottanti stiano in un paragrafo, puoi mettere come limite il comando \FloatBarrier.

    • #11903
      Up
      0
      Down
      ::


      ok grazie mille…sì in effetti un paragrafo composto solo da un’immagine o una tabella fa un po’ schifo…mmm…magari faccio l’elenco delle tabelle che forse ha più senso!
      Comunque sempre sulle tabelle: io in un ambiente table ho creato varie tabular…però mi vengono tutte quasi appiccicate in cascata. Ho provato con \\ (che naturalmente non funziona)…come posso dirgli dopo ogni tabella lascia uno spazio di tot?

      Un’altra cosa con questo comando:
      `p{.5\linewidth} `
      tutto risulta più chiaro in effetti solo che se metto 100%
      `p{1\linewidth} `
      le tabelle rimangono sì dentro il foglio ma non sono per esempio allineate con un testo di un paragrafo…tipo sforano il layout di pagina…

      Insomma:
      questa è la scritta questa è la scritta questa è la scritta
      questa è la tabella questa è la tabella questa è la tabella questa è la tabella |

      ….come mai? pensato che con 100%stesse dentro il layout della pagina dato che l’ambiente non ho specificato nessuna dimensione…

    • #11904
      Up
      0
      Down
      ::

      ok grazie mille…sì in effetti un paragrafo composto solo da un’immagine o una tabella fa un po’ schifo…mmm…magari faccio l’elenco delle tabelle che forse ha più senso!
      Comunque sempre sulle tabelle: io in un ambiente table ho creato varie tabular…però mi vengono tutte quasi appiccicate in cascata. Ho provato con \\ (che naturalmente non funziona)…come posso dirgli dopo ogni tabella lascia uno spazio di tot?

      `\begin{table}[htp]
      \begin{tabular}{…}

      \end{tabular}

      \medskip

      \begin{tabular}{…}

      \end{tabular}
      \end{table}`

      Un’altra cosa con questo comando:
      `p{.5\linewidth} `
      tutto risulta più chiaro in effetti solo che se metto 100%
      `p{1\linewidth} `
      le tabelle rimangono sì dentro il foglio ma non sono per esempio allineate con un testo di un paragrafo…tipo sforano il layout di pagina…

      Insomma:
      questa è la scritta questa è la scritta questa è la scritta
      questa è la tabella questa è la tabella questa è la tabella questa è la tabella |

      ….come mai? pensato che con 100%stesse dentro il layout della pagina dato che l’ambiente non ho specificato nessuna dimensione…

      Dimentichi gli spazi prima e dopo la colonna.
      `\begin{tabular}{@{}p{1\linewidth}@{}}

      \end{tabular}`
      Ciao
      Enrico

    • #11905
      Up
      0
      Down
      ::


      Però usando
      `\medskip`
      tutte le tabelle sono staccate…tranne la prima e la seconda…

    • #11906
      Up
      0
      Down
      ::

      pazzesco adesso la spaziatura me la fa sempre…ho dovuto solo riavviare texniccenter… 😯

      anche per
      \begin{tabular}{@{}p{1\linewidth}@{}}
      stesso discorso…mah…i misteri dell’informatica….
      Però facendo così ho un nuovo problema (leggi di bloch mi pare, risolto il problema se ne crea uno derivante dalla soluzione…)…ora le parole sono appiccicate troppo ai bordi delle tabelle…mmm 😕

      Difficile darti una mano se non ci fai capire bene ciò che fai. Non sono misteri dell’informatica, solo problemi di un principiante. 😀

      Prova a mostrare un breve esempio.

      Ciao
      Enrico

    • #11907
      Up
      0
      Down
      ::


      pazzesco adesso la spaziatura me la fa sempre…ho dovuto solo riavviare texniccenter… 😯

      anche per
      \begin{tabular}{@{}p{1\linewidth}@{}}
      stesso discorso…mah…i misteri dell’informatica….
      Però facendo così ho un nuovo problema (leggi di bloch mi pare, risolto il problema se ne crea uno derivante dalla soluzione…)…ora le parole sono appiccicate troppo ai bordi delle tabelle…mmm 😕

    • #11908
      Up
      0
      Down
      ::


      praticamente mi succedeva che compilava alla cavolo…sicuro del mio codice sono uscito da texnic e ci sono rientrato…e ha funzionato…mi riferisco al fatto che volevo staccare una tabella all’altra tramite
      `\medskip`
      tra una tabella e l’altra.

      E anche quando ho cambiato le tabelle da
      `\begin{tabular}{|p{1\linewidth}|} `
      a
      `\begin{tabular}{|@{}p{1\linewidth}@{}|}`
      le tabelle erano troppo grandi e sforavano il layout lo stesso.

      Comunque al di là di questo mistero adesso ho un nuovo problema, le parole sono attaccate ai bordi delle mie tabelle da quando ho messo:
      `\begin{tabular}{|@{}p{1\linewidth}@{}|}`
      mentre prima se scrivevo
      [code]%\begin{tabular}{|p{1\linewidth}|} [\code]
      questo non succedeva…

    • #11909
      Up
      0
      Down
      ::

      Comunque al di là di questo mistero adesso ho un nuovo problema, le parole sono attaccate ai bordi delle mie tabelle da quando ho messo:
      `\begin{tabular}{|@{}p{1\linewidth}@{}|}`
      mentre prima se scrivevo
      `%\begin{tabular}{|p{1\linewidth}|} `
      questo non succedeva…

      Certo che succede: stai eliminando lo spazio tra le colonne. Devi tenerne conto se vuoi che ci sia un margine. Devi dare
      `\usepackage{calc}`
      nel preambolo e poi, nell’ambiente table o in un ambiente center,
      `\begin{tabular}{|p{\linewidth-2\tabcolsep}|}

      \end{tabular}`
      Ciao
      Enrico

    • #11910
      Up
      0
      Down
      ::


      ok perfetto ora le tabelle vengono fuori in modo egregio 😀

    • #11911
      Up
      0
      Down
      ::


      Esiste anche un apposito pacchetto di utilizzo molto facile, si chiama placeins

      Basta installarlo e mettere nel preambolo del documento
      \usepackage[section]{placeins}
      e nessun float supererà mai la section in cui è inserito. Poi per le opzioni e varianti puoi consultare l’help del pacchetto.
      se non ricordo male avevo letto da qulche parte che la dichiarazione
      \usepackage[section]{placeins}
      va fatta dopo l’eventuale dichiarazione d’uso del pacchetto caption.

      Ciao Marcello

Visualizzazione 11 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top