Inserire campo per immagine vuoto con didascalia

  • Creatore
    Topic
  • #43474
    Up
    0
    Down
    ::


    Salve a tutti

    Utilizzo LaTeX da poco.
    Come compilatore uso TeXShop.
    Ho letto molte guide per le varie esigenze che mi si sono presentate in questi giorni oltre a spulciare per bene il forum.
    A dire il vero avevo trovato ciò che mi serviva ma erroneamente ho cancellato la guida ed ora non riesco più a trovarla.

    La mia esigenza è questa:

    Sto riscrivendo degli appunti per un corso di ingegneria, è necessario inserire varie immagini con diverse disposizioni (fin qui nessuna difficoltà, le guide sono state più che esaustive).
    Dato che non ho tutte le immagini a disposizione vorrei poterne inserire alcune dopo aver stampato fisicamente la dispensa.
    Quindi mi servirebbe poter inserire un box vuoto di dimensioni prestabilite con relativa didascalia e numerazione dell’immagine.
    In pratica dovrei inserire una figura senza caricare realmente il file (perchè non ce l’ho).
    Sapreste indicarmi le righe di comando necessarie?

    Grazie in anticipo per l’aiuto.

Visualizzazione 19 filoni di risposte
  • Autore
    Risposte
    • #43475
      Up
      0
      Down
      ::

      Salve a tutti

      Utilizzo LaTeX da poco.
      Come compilatore uso TeXShop.
      Ho letto molte guide per le varie esigenze che mi si sono presentate in questi giorni oltre a spulciare per bene il forum.
      A dire il vero avevo trovato ciò che mi serviva ma erroneamente ho cancellato la guida ed ora non riesco più a trovarla.

      La mia esigenza è questa:

      Sto riscrivendo degli appunti per un corso di ingegneria, è necessario inserire varie immagini con diverse disposizioni (fin qui nessuna difficoltà, le guide sono state più che esaustive).
      Dato che non ho tutte le immagini a disposizione vorrei poterne inserire alcune dopo aver stampato fisicamente la dispensa.
      Quindi mi servirebbe poter inserire un box vuoto di dimensioni prestabilite con relativa didascalia e numerazione dell’immagine.
      In pratica dovrei inserire una figura senza caricare realmente il file (perchè non ce l’ho).
      Sapreste indicarmi le righe di comando necessarie?

      Grazie in anticipo per l’aiuto.

      Benvenuto!

      Puoi ottenere una box vuota con le dimensioni richieste con
      `\begin{figure}[htp]
      \centering
      \vspace{5cm}% la figura dovrebbe essere alta 5cm
      \caption{Figura finta}
      \end{figure}`
      La larghezza, naturalmente, non ha alcuna importanza.

      Diverso è il caso se vuoi usare \subfloat (del pacchetto subfig}. In tal caso la larghezza diventa rilevante: definisci
      `\newcommand{\fakegraphics}[2]{%
      \sbox8{}\wd8=#1\relax\ht8=#2\box8 }`
      e usa
      `\fakegraphics{5cm}{4cm}% larghezza=5cm, altezza=4cm`
      dove useresti \includegraphics.

      Ciao
      Enrico

    • #43476
      Up
      0
      Down
      ::


      Grazie mille!

      Effettivamente questa soluzione l’avevo provata, quello che volevo fare io era avere anche il contorno del box lasciato apposta vuoto per poi incollare l’immagine!

      Provando ad usare il comando
      `
      \boxed{}
      `

      Il compilatore mi da errore, probabilmente perchè non c’è una vera immagine da contornare. Nel comando sopra citato è possibile anche definire delle dimensioni specifiche?

      Grazie!
      😀

    • #43477
      Up
      0
      Down
      ::

      Grazie mille!

      Effettivamente questa soluzione l’avevo provata, quello che volevo fare io era avere anche il contorno del box lasciato apposta vuoto per poi incollare l’immagine!

      metti una \fbox attorno al \fakegraphics

    • #43478
      Up
      0
      Down
      ::

      Grazie mille!

      Effettivamente questa soluzione l’avevo provata, quello che volevo fare io era avere anche il contorno del box lasciato apposta vuoto per poi incollare l’immagine!

      Provando ad usare il comando
      `
      \boxed{}
      `

      Il compilatore mi da errore, probabilmente perchè non c’è una vera immagine da contornare. Nel comando sopra citato è possibile anche definire delle dimensioni specifiche?

      Grazie!
      😀

      Puoi anche avere il contorno, ma perché? Se proprio vuoi, usa
      `\newcommand{\fakegraphics}[2]{{%
      \setlength{\fboxsep}{-\fboxrule}\sbox8{}\wd8=#1\relax\ht8=#2\relax
      \fbox{\box8}}}`
      Il comando \boxed riguarda tutt’altro. Però dà l’occasione per ricordarti che non basta dire “mi dà errore”, è meglio indicare che tipo di errore.

      Ciao
      Enrico

    • #43479
      Up
      0
      Down
      ::


      Grazie mille, scusate se insisto, ma il comando

      `
      \newcommand{\fakegraphics}[2]{{%
      \setlength{\fboxsep{-\fboxrule}\sbox8{}\wd8=#1\relax\ht8=#2\relax
      \fbox{\box8}}}
      `

      Non mi da la numerazione come per il comando adibito all’inserimento delle figure!

      Esiste un modo per avere quello che chiedo io con relativa didascalia?

    • #43480
      Up
      0
      Down
      ::

      Grazie mille, scusate se insisto, ma il comando

      `
      \newcommand{\fakegraphics}[2]{{%
      \setlength{\fboxsep{-\fboxrule}\sbox8{}\wd8=#1\relax\ht8=#2\relax
      \fbox{\box8}}}
      `

      Non mi da la numerazione come per il comando adibito all’inserimento delle figure!

      Esiste un modo per avere quello che chiedo io con relativa didascalia?

      Questo comando va messo dove useresti \includegraphics: il suo scopo è solo di costruire un rettangolo con le dimensioni prefissate. La didascalia va messa al modo usuale con il comando \caption.

      Ciao
      Enrico

    • #43481
      Up
      0
      Down
      ::


      Il compilatore mi dice:

      `
      ! File ended while scanning use of \@argdef.
      `

      Non so dove mettere mano! 🙁

    • #43482
      Up
      0
      Down
      ::


      hai inserito \begin{figure} … \end{figure} attorno al \fakegraphics ed eventuale caption?

    • #43483
      Up
      0
      Down
      ::


      Questa è la porzione di prova di codice che ho scritto sul mio compliatore:

      `
      \begin{figure}[htp]
      \centering
      \newcommand{\fakegraphics}[2]{{%
      \setlength{\fboxsep{-\fboxrule}\sbox8{}\wd8=#1\relax\ht8=#2\relax
      \fbox{\box8}}}
      \caption{Figura finta}
      \end{figure}
      `

    • #43484
      Up
      0
      Down
      ::

      Il compilatore mi dice:

      `
      ! File ended while scanning use of \@argdef.
      `

      Non so dove mettere mano! 🙁

      Mancava una graffa!
      `\newcommand{\fakegraphics}[2]{{%
      \setlength{\fboxsep}{-\fboxrule}\sbox8{}\wd8=#1\relax\ht8=#2\relax
      \fbox{\box8}}}`
      (correggo anche nel messaggio precedente).

      Ciao
      Enrico

    • #43485
      Up
      0
      Down
      ::


      Il riquadro non mi compare!
      C’è solo il campo con la didascalia!

    • #43486
      Up
      0
      Down
      ::

      Il riquadro non mi compare!
      C’è solo il campo con la didascalia!

      Davvero? A me invece compare. 🙂
      `\begin{figure}[htp]
      \centering
      \fakegraphics{4cm}{5cm}
      \caption{abc def}
      \end{figure}`
      Per favore, prova ad aiutarci dicendo che cosa stai provando a fare. Naturalmente quella definizione con \newcommand va nel preambolo (prima di \begin{document}).

      Ciao
      Enrico

    • #43487
      Up
      0
      Down
      ::

      Per favore, prova ad aiutarci dicendo che cosa stai provando a fare. Naturalmente quella definizione con \newcommand va nel preambolo (prima di \begin{document}).

      Ciao
      Enrico

      Allora, non avevo capito che il comando \newcommand andasse nel preambolo, colpa mia scusate!

      Devo semplicemente creare un riquadro tipo rettangolo con didascalia. In modo tale da riconoscere il campo una volta stampata la dispensa e incollarci con la figura con la colla.

      Grazie mille per la pazienza!

      🙂

    • #43488
      Up
      0
      Down
      ::


      Io nella mia tesi utilizzavo

      `\makebox[\textwidth]{\framebox[8cm]{\rule{0pt}{5cm}}}`

      Mi sembra funzionasse allo stesso modo indicato da egreg9 e cioè scrivendo
      `\begin{figure}[htp]
      \centering
      \makebox[\textwidth]{\framebox[8cm]{\rule{0pt}{5cm}}}
      \caption{ciao}
      \end{figure}`
      ovviamente puoi cambiare le grandezze del riquadro modificando le voci di framebox. Adesso non posso spiegarti con maggiore precisione perchè non ricordo benissimo e non posso effettuare prove su questo pc.
      Comunque forse non hai capito bene come utilizzare il comando che egreg9 ti ha suggerito precedentemente: in pratica prima lo definisci scrivendo nel preambolo
      `\newcommand{\fakegraphics}[2]{{%
      \setlength{\fboxsep}{-\fboxrule}\sbox8{}\wd8=#1\relax\ht8=#2\relax
      \fbox{\box8}}}`
      e poi al momento di inserire una figura scrivi
      `\begin{figure}[htp]
      \centering
      \fakegraphics{4cm}{5cm}
      \caption{abc def}
      \end{figure}`
      Se invece sono stato io a non capire quale fosse il problema mi scuso in anticipo; spero di non aver creato più problemi che altro! Cercavo solo di rendermi utile 😕

      Francesco

    • #43489
      Up
      0
      Down
      ::

      Io nella mia tesi utilizzavo

      `\makebox[\textwidth]{\framebox[8cm]{\rule{0pt}{5cm}}}`

      Mi sembra funzionasse allo stesso modo indicato da egreg9 e cioè scrivendo
      `\begin{figure}[htp]
      \centering
      \makebox[\textwidth]{\framebox[8cm]{\rule{0pt}{5cm}}}
      \caption{ciao}
      \end{figure}`
      ovviamente puoi cambiare le grandezze del riquadro modificando le voci di framebox. Adesso non posso spiegarti con maggiore precisione perchè non ricordo benissimo e non posso effettuare prove su questo pc.

      Il \makebox è del tutto inutile. L’idea è esattamente la stessa, solo che se provi a misurare, scopri che il tuo rettangolo non è 8 x 5, ma qualcosa di più.

      Puoi avere le dimensioni esatte, misurando dall’esterno, in modo che la fotografia incollata ricopra anche la cornice, con
      `\newcommand{\inefficientfakegraphics}[2]{%
      {\setlength{\fboxsep}{-\fboxrule}\framebox[#2]{\rule{0pt}{#1}}}}`
      e “\inefficientfakegraphics{5cm}{8cm}” darebbe il risultato corretto. Il numero di comandi primitivi eseguiti è un centinaio di volte quello dei comandi primitivi eseguiti con “\fakegraphics{5cm}{8cm}”. 🙂

      Ciao
      Enrico

    • #43490
      Up
      0
      Down
      ::


      Grazie davvero a tutti!

      Entrambi i comandi funzionano!
      Ora farò delle prove!

      Mi dispiace solo di non riuscire a capire i comandi definiti nella stringa \newcommand inserita nel preambolo!
      Sono alle prime armi e necessito ancora di molte nozioni per addentrarmi in questi comandi avanzati! 😀

    • #43491
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Prenditi un qualunque manuale come LaTeX per l’impaziente, e vai a leggerti le spiegazioni relative all’impostazione delle lunghezze e delle scatole con o senza riquadro.

        Come sempre non c’è da inventarsi niente per leggere il codice standard: basta leggere la documentazione. Nessuno pretende, nemmeno i vecchi lupi come me, di ricordarsi tutto a memoria; l’unica cosa da ricordare è dove è la documentazione?

        Enrico ha ragione a reimpostare `\fboxsep`; ponendolo uguale all’opposto dello spessore del filettino `\fboxrule` non solo leva quello spazio di distanziamento fra contenuto e cornice, ma recupera anche lo spessore del filetto della cornice.

      • #43492
        Up
        0
        Down
        ::

        …Puoi avere le dimensioni esatte, misurando dall’esterno, in modo che la fotografia incollata ricopra anche la cornice, con
        `\newcommand{\inefficientfakegraphics}[2]{%
        {\setlength{\fboxsep}{-\fboxrule}\framebox[#2]{\rule{0pt}{#1}}}}`
        e “\inefficientfakegraphics{5cm}{8cm}” darebbe il risultato corretto. Il numero di comandi primitivi eseguiti è un centinaio di volte quello dei comandi primitivi eseguiti con “\fakegraphics{5cm}{8cm}”. :)…

        Mi inchino!!! 🙂

      • #43493
        Up
        0
        Down
        ::

        …Puoi avere le dimensioni esatte, misurando dall’esterno, in modo che la fotografia incollata ricopra anche la cornice, con
        `\newcommand{\inefficientfakegraphics}[2]{%
        {\setlength{\fboxsep}{-\fboxrule}\framebox[#2]{\rule{0pt}{#1}}}}`
        e “\inefficientfakegraphics{5cm}{8cm}” darebbe il risultato corretto. Il numero di comandi primitivi eseguiti è un centinaio di volte quello dei comandi primitivi eseguiti con “\fakegraphics{5cm}{8cm}”. :)…

        Mi inchino!!! 🙂

        Di preciso sono 44 per \fakegraphics e 79 per \inefficientfakegraphics; avevo un po’ esagerato. Probabilmente il secondo richiede meno conoscenze: costruisci una box con cornice dell’ampiezza desiderata inserendo un puntello dell’altezza voluta.

        La macro \fakegraphics invece usa comandi primitivi: si usa un registro box temporaneo, nel quale inseriamo una hbox vuota (\sbox8{}, che equivale più o meno a \setbox8=\hbox{}) a cui poi assegniamo le dimensioni richieste (\wd8=#1\ht8=#2); quindi la stampiamo (\box8) dentro una \fbox.

        Ciao
        Enrico

      • #43494
        Up
        0
        Down
        ::

        La macro \fakegraphics invece usa comandi primitivi: si usa un registro box temporaneo, nel quale inseriamo una hbox vuota (\sbox8{}, che equivale più o meno a \setbox8=\hbox{}) a cui poi assegniamo le dimensioni richieste (\wd8=#1\ht8=#2); quindi la stampiamo (\box8) dentro una \fbox.

        Ci vorrebbe proprio una guida su tutte queste box! 🙂

        LuCa

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

    Go to top