Includere pagine di PDF in Latex

  • Creatore
    Topic
  • #59773
    Up
    0
    Down
    ::


    Salve a tutti! Stavo cercando un modo per includere delle specifiche pagine di un file PDF in un mio documento latex.

    Ho provato con successo il pacchetto pdfpages, ma mi serviva anche un modo per creare dei riferimenti alle pagine in cui sono contenuti i pdf

    In pratica, devo scrivere qualcosa del tipo
    “Per vedere il PDF originale si vada a pagina X”
    e con pdfpages non riesco ad ottenere questo risultato.

    Ho dato un occhiata all’arte, ma non trovo niente 🙁

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


      Ciao,

      se metti una label subito dopo il comando che usi per includere i pdf?

      Ciao ciao.
      Fra

    • #59775
      Up
      0
      Down
      ::


      Nella compilazione mi appare [??] dove poi metto il comando \pageref riferito alla label in questione.

    • #59776
      lavocedilassù
      Partecipante
        Up
        0
        Down
        ::

        Nella compilazione mi appare [??] dove poi metto il comando \pageref riferito alla label in questione.

        Per vedere i riferimenti si deve compilare due volte… 😉

        Ciao
        Gianni

      • #59777
        Up
        0
        Down
        ::


        Gianni ha ragione, ma il problema non credo sia quello.

        Prova una cosa del genere quando includi i pdf:

        `\clearpage
        \label{pippo}
        \includepdf[pages={3,4}]{pippo.pdf}`

        Ciao ciao.
        Fra

      • #59778
        Up
        0
        Down
        ::

        Nella compilazione mi appare [??] dove poi metto il comando \pageref riferito alla label in questione.

        Per vedere i riferimenti si deve compilare due volte… 😉

        Ciao
        Gianni

        Sisi, ovviamente l’ho fatto, anche più di due 😀

        Gianni ha ragione, ma il problema non credo sia quello.

        Prova una cosa del genere quando includi i pdf:

        `\clearpage
        \label{pippo}
        \includepdf[pages={3,4}]{pippo.pdf}`

        Ciao ciao.
        Fra

        Permangono i punti interrogativi 🙁

      • #59779
        Up
        0
        Down
        ::


        Uhm strano.
        Prova questo documento minimale, a me funziona perfettamente
        (ovviamente compilando due volte).

        `\documentclass[a4paper]{book}
        \usepackage{pdfpages}
        \begin{document}
        Il primo articolo si trova a pag. \pageref{pippo} e l'altro a pag. \pageref{pluto}.

        \clearpage
        \label{pippo}
        \includepdf[pages={1,2}]{pippo.pdf}

        \clearpage
        \label{pluto}
        \includepdf[pages={3,4}]{pippo.pdf}

        \end{document}`

        Ciao ciao.
        Fra

      • #59780
        Up
        0
        Down
        ::


        ragazzi, non mi funzionava nemmeno il codice postato da francesco.

        Poi ho riavviato texmaker e vanno entrambi 👿

        A cosa può essere dovuto questo comportamento?

      • #59781
        Up
        0
        Down
        ::


        Non ho idea, forse funzionava già da prima ma il visualizzatore integrato
        di TexMaker per qualche motivo non ti faceva vedere il pdf aggiornato.

        In ogni caso se metti solo la label non funziona neanche a me.
        Se metti il \clearpage prima come ti ho mostrato mi funziona. E a quanto
        pare anche a te. 🙂

        Magari qualche esperto qua sul forum può spiegarci un altro modo più
        elegante. Io mi fermo qua!

        Ciao ciao.
        Fra

      • #59782
        Up
        0
        Down
        ::


        beh, eleganza o meno il problema è risolto, quindi grazie infinite 😉

      • #59783
        Up
        0
        Down
        ::

        beh, eleganza o meno il problema è risolto, quindi grazie infinite 😉

        Esiste la chiave “pagecommand” che però esegue il codice dato su ogni pagina inclusa, quindi occorre spezzare l’inclusione:
        `\includepdf[pages=3,pagecommand=\label{pippo}]{pippo}
        \includepdf[pages=4]{pippo}
        \includepdf[pages=5,pagecommand=\label{pluto}]{pippo}
        \includepdf[pages=6-8]{pippo}`
        Ciao
        Enrico

      • #59784
        Up
        0
        Down
        ::


        Ciao Enrico.

        Sì, conoscevo pagecommand ma tra le due soluzioni quella con il
        \clearpage mi sembrava meno contorta . Certo è un peccato che
        non ci sia un’opzione apposita in pdfpages. Ora scrivo all’autore 😀

        Magari gli suggerisco un’opzione solo per la prima pagina, tipo label=pippo,
        e una in cui viene aggiunto un numero all’etichetta di base: per esempio
        mlabel=pippo genererà pippo.1 per la pagina 1, pippo.2 per
        la seconda e così via.

        Ciao ciao.
        Fra

      • #59785
        Up
        0
        Down
        ::

        Ciao Enrico.

        Sì, conoscevo pagecommand ma tra le due soluzioni quella con il
        \clearpage mi sembrava meno contorta . Certo è un peccato che
        non ci sia un’opzione apposita in pdfpages. Ora scrivo all’autore 😀

        Magari gli suggerisco un’opzione solo per la prima pagina, tipo label=pippo,
        e una in cui viene aggiunto un numero all’etichetta di base: per esempio
        mlabel=pippo genererà pippo.1 per la pagina 1, pippo.2 per
        la seconda e così via.

        Ciao ciao.
        Fra

        Intanto puoi fare così. Sarebbe interessante potersi riferire alla pagina inclusa invece che a un contatore ad hoc, visto che di sicuro \includepdf ne conosce il numero.
        `\documentclass[a4paper]{article}
        \usepackage{pdfpages,etoolbox}
        \newcounter{labels}
        \newcommand\mlabel[1]{\stepcounter{labels}\label{#1.\thelabels}}
        \makeatletter
        \newcommand\xolabel[1]{\label{#1}\global\let\olabel\@gobble}
        \makeatother

        %%% infame trucco
        \expandafter\pretocmd\csname\string\includepdf\endcsname
        {\setcounter{labels}{0}\global\let\olabel\xolabel}{}{}
        %%% fine dell'infame trucco

        \begin{document}
        \includepdf[pages=1-3,pagecommand=\mlabel{pippo}]{dilip}

        \includepdf[pages=4-6,pagecommand=\olabel{pluto}]{dilip}

        \pageref{pippo.1} \pageref{pippo.2} \pageref{pippo.3}

        \pageref{pluto}

        \end{document}`
        Aggiungiamo a \includepdf il codice per inizializzare il contatore delle etichette e il comando \olabel. Quest’ultimo viene reso innocuo dopo il primo uso in un \includepdf.

        Come e perché funzioni quel misterioso \pretocmd è lasciato per esercizio al lettore. 🙂

        Ciao
        Enrico

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

    Go to top