Newsgroup: it.comp.software.tex
Titolo: Rifilare pagine con pdflatex

Ciao a tutti
Questo è il mio preambolo:
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage[paperheight=450mm,paperwidth=320mm,hcentering,vcentering,nohead,
nofoot,nomarginpar]{geometry}
\begin{document}
\includepdf[pages={1,2},nup=1x2,noautoscale,landscape,delta= 0 -20mm,offset=
0 0,delta= 0 -20mm,link,linkname=mylink]{prova.pdf}
\end{document}
Serve per creare 1 pagina formato super A3(450x320)contenente 2 pagine A4!
Siccome ho l'esigenza di avvicinare le 2 pagine ho usato il comando "delta",
purtroppo pero sul lato in cui si incontrano le pagine vengono sovrapposte
ed invece io ho bisogno di rifilarle...
nel manuale nn ne parla!!
Qualcuno ne sa qualcosa???
Grazie

ed invece io ho bisogno di rifilarle...
Non capisco: con "delta = 0 0" le pagine sono già "avvicinate", nel senso
che non viene aggiunto alcuno spazio in mezzo, oltre i margini naturali
della pagina. Se metti un valore delta negativo, non so bene che succeda
(se sia una cosa prevista da pdfpages), ma è ragionevole che le pagine
vengano sovrapposte (uno spazio minore di zero, vuol dire appunto
sovrapporle).
Se invece intendi "rifilare" nel senso di eliminare i margini da ogni
pagina, puoi usare il programma pdfcrop sul file pdf orginale, e fare le
imposizioni con il documento pdf risultato da questa operazione. Però così
in realtà le cose si complicano, perché ogni pagina può diventare di misura
diversa, secondo che sia più o meno piena.
Ciao.

 ha scritto:


 ha scritto:


trovo documentazione a riguardo :-((!!e poi ...č "pdfcrop" o "pdf crop"??
 
http://www.ctan.org/tex-archive/support/pdfcrop
Nella distribuzione MikTeX viene richiamato con un eseguibile, ma si tratta
di uno script perl, che si appoggia a Ghostscript.
Perň guarda che č un casino: pdfcrop fa quello che promette, calcolando il
bounding box di ogni pagina e rimuovendo i margini; cosě perň ogni pagina č
potenzialmente di dimensioni diverse (in particolare, in altezza, la
larghezza č piů probabile che sia la stessa), e temo che l'imposizione
diventi anche piů complicata.
La mia impressione č che tu stia forse pretendendo troppo dallo strumento:
forse pdfpages e pdftex semplicemente non sono in grado di fare delle
imposizioni con specifiche cosě rigorose come quelle che chiedi tu, e devi
per questo rivolgerti ad altri strumenti.
Ciao.

in un preambolo pdfpages???
Funziona da riga di comando. Cioè, in realtà credo che crei un documento
.tex, e lo processa poi con pdftex. Fra perl e latex (non precisamente i
linguaggi più leggibili dell'universo) mi è un po' difficile capire in
dettaglio che cosa fa.
Si potrebbe tentare di modificare la procedura clean, in modo che non
vengano cancellati i file temporanei, e vedere che cosa ci scrive.
Ciao.

, scriveva:


...pero mi da fastidio il fatto che nn posso specificare i mm!!!!
 

>...pero mi da fastidio il fatto che nn posso specificare i mm!!!!
pdfcrop è uno script Perl, che (dopo aver chiesto qualcosa a Ghostscript)
genera un documento TeX, che processa con pdftex. Credo che usi i bp perché
è l'unità in cui riceve il bounding box da Ghostscript. Di per sé, pdftex è
perfettamente in grado di lavorare con i mm, naturalmente.
Si può semplicemente intervenire sullo script Perl, convertendo in bp i
margini forniti in mm. Il punto in cui intervenire è dove viene processata
l'opzione "opt_margins" (dopo la riga "### margins"), e le variabili da
convertire sono: $llx, $lly, $urx, $ury.
La formula di conversione (salvo errori od omissioni) dovrebbe essere:
 
    bp = mm * 72 / 25.4
quindi:
    $llx = $llx * 72 / 25.4
    $lly = $lly * 72 / 25.4
    ...
In alternativa, se riesci a capire qualcosa del codice TeX contenuto in
pdfcrop.pl
, e visto che del bounding box, per quello che ho capito, non ti
interessa nulla, è teoricamente possibile riscrivere in TeX quello che fa
pdfcrop, con gli aggiustamenti del caso, senza chiamare Ghostscript e
processando poi con pdftex. Qui però io non sono proprio in grado di
assisterti.
Ciao.

assisterti.
Per intendersi, questo è il file TeX temporaneo generato da pdfcrop, per
processare due pagine din un documento pdf (prova.pdf):
%%% file tmp-pdfcrop-1528.tex %%%
\def\pdffile{prova.pdf}
\csname pdfmapfile\endcsname{}
\def\page #1 [#2 #3 #4 #5]{%
  \count0=#1\relax
  \setbox0=\hbox{%
    \pdfximage page #1{\pdffile}%
    \pdfrefximage\pdflastximage
  }%
  \pdfhorigin=-#2bp\relax
  \pdfvorigin=#3bp\relax
  \pdfpagewidth=#4bp\relax
  \advance\pdfpagewidth by -#2bp\relax
  \pdfpageheight=#5bp\relax
  \advance\pdfpageheight by -#3bp\relax
  \ht0=\pdfpageheight
  \shipout\box0\relax
}
\def\pageclip #1 [#2 #3 #4 #5][#6 #7 #8 #9]{%
  \count0=#1\relax
  \dimen0=#4bp\relax \advance\dimen0 by -#2bp\relax
  \edef\imagewidth{\the\dimen0}%
  \dimen0=#5bp\relax \advance\dimen0 by -#3bp\relax
  \edef\imageheight{\the\dimen0}%
  \pdfximage page #1{\pdffile}%
  \setbox0=\hbox{%
    \kern -#2bp\relax
    \lower #3bp\hbox{\pdfrefximage\pdflastximage}%
  }%
  \wd0=\imagewidth\relax
  \ht0=\imageheight\relax
  \dp0=0pt\relax
  \pdfhorigin=#6pt\relax
  \pdfvorigin=#7bp\relax
  \pdfpagewidth=\imagewidth
  \advance\pdfpagewidth by #6bp\relax
  \advance\pdfpagewidth by #8bp\relax
  \pdfpageheight=\imageheight\relax
  \advance\pdfpageheight by #7bp\relax
  \advance\pdfpageheight by #9bp\relax
  \pdfxform0\relax
  \shipout\hbox{\pdfrefxform\pdflastxform}%
}%
\page 1 [63 60 532 714]
\page 2 [63 568 532 769]
\csname @@end\endcsname
\end
%%% EOF %%%
Se qualcuno di voi ci capisce qualcosa....
Ciao.

...NATURALMENTE PURCHE SI TRATTI DI MATERIALE OPEN SOURCE!!!
No, non ho conoscenza diretta di altri strumenti, e tanto meno di strumenti
open source.
ConTeXt è un altro oggetto (un formato, in questo caso) che fa uso di
pdftex e ha strumenti per riarrangiare le pagine e fare qualche operazione
di imposizione; ad occhio forse anche con qualche possibilità di controllo
in più rispetto a pdfpages. Non conosco però ConTeXt (che, essendo un
formato complesso, anche più di LaTeX, ha dei tempi di apprendimento un po'
più lunghi rispetto ai quattro comandi di interfaccia di un pacchetto).
E ci sono, naturalmente, le primitive di pdftex (\pdfximage e altre) con
cui, alla fine, sia pdfpages che pdfcrop che ConTeXt fanno il lavoro: nulla
vieta di usare direttamente quelle. Una volta capito come fare (posto che
ci si arrivi), questo dovrebbe dare un maggior controllo sul posizionamento
delle pagine. Anche qui, però, non sono proprio in grado di aiutarti.
Ciao.

, scriveva:


č possibile associare + pdf ad un file tex??
Sarei tentato di rispondere genericamente di sě, ma in realtŕ non ho capito
come lo fai questo file tex (abbiamo parlato di tante cose che mi sono
confuso da me stesso medesimo).
Se parli dell'opzione offset del pacchetto pdfpages, certo, puoi inserire
quante pagine vuoi da quanti pdf vuoi, anche ognuna singolarmente. Cioč,
puoi avere quanti \includepdf vuoi nello stesso file, ognuno che processa
una diversa pagina di un diverso pdf con parametri diversi.
Ciao.

 più lunghi rispetto ai quattro comandi di interfaccia di un pacchetto).
Semplice booklet, inserisce due pagine A3 in una A4
\setuppapersize[A4][A3,landscape]
\setuparranging[2UP]
\setuplayout
  [topspace=0pt,
   backspace=0pt,
   header=0pt,
   footer=0pt,
   width=middle,
   height=middle]
\starttext
\insertpages[nomefile.pdf]
\stoptext
-- 
Giuseppe "Oblomov" Bilotta
Hic manebimus optime

 quante pagine vuoi da quanti pdf vuoi, anche ognuna singolarmente. Cioè,


     paperwidth=230mm,    %Formato A4 + crocini di registro(x)
l'ultima volta che l'ho usata, la carta A4 era 210 mm x 297 mm.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

Mi chiedevo se fosse possibile?
"Non riesci" perché? Sě, č possibile, senza particolari accorgimenti, basta
scrivere la lista o l'intervallo delle pagine, nel caso di pagine prelevate
da un pdf; o usare un'altra istruzione \includepdf, nel caso di pdf
diversi; o anche usare l'istruzione \includepdfmerge, che tenta di fare
entrambe le cose insieme:
\includepdf[pages={1-10},    %Pagine da includere (TUTTE E SOLE QUELLE
%                             CHE SI VOGLIONO)
    noautoscale, %Le dimensioni della pagina originale NON vengonoscalati
    offset= -10mm 0mm, %L'offset permette di spostare la pagina a filo del
%                       documento 
    link,        %Specifiche per l'indirizzamento del file
    linkname=mylink,frame]    %Specifiche per l'indirizzamento del file
    {dummy3.pdf}    %Richiamo il file
%    \includepdfmerge}
%    Inserts pages of several external \PDF\ documents.
%
%    \includepdfmerge[<key=val>]{<file-page-list>}
%
%        <key=val>  A comma separated list of options
%                   using the <key>=<value> syntax.
%
%        <file-page-list> - <filename>[,<page spec>][,<file-page-list>]
%                   A comma separated list of filenames and 
%                   optional <page spec> specifiers.
%                   A <page spec> can be everything the
%                   option "pages" accepts. Leading and trailing
%                   spaces of items in the list is stripped.
%
Esattamente, che cosa non ti "riesce"?
Ciao.

 l'ultima volta che l'ho usata, la carta A4 era 210 mm x 297 mm.
210x297 + crocini di registro(o segni di taglio)= A4 con 10 mm intorno a
tutto il foglio...di conseguenza => 230x317 

, scriveva:


fatto!!!
Puoi avere un solo document per ogni file tex: latex smette di leggere
dopo il primo \end{document}, ed č per questo che la seconda pagina
non viene prodotta.
Ma puoi benissimo avere piů \includepdf in un documento:
\begin{document}
\includepdf[pages={1},    %Pagine da includere
    noautoscale,%
    offset= -9.9mm 0mm,%
    link,        %Specifiche per l'indirizzamento del file
    linkname=mylink]    %Specifiche per l'indirizzamento del file
    {1.pdf}    %Richiamo il file
\includepdf[pages={1},    %Pagine da includere
    noautoscale,%
    offset= -9.9mm 0mm,%
    link,        %Specifiche per l'indirizzamento del file
    linkname=mylink] %Specifiche per l'indirizzamento del file
    {2.pdf} 
\end{document}
Per contro, "preambolo" č tutto quello che PRECEDE il primo (e anche
unico legale) \begin{document}.
Ciao.

 Ciao.
PROPRIO QUELLO CHE MI SERVIVA...GRAZIE 1000
In questo modo ho incrementato le prestazioni del 50%