Newsgroup: it.comp.software.tex
Titolo: Modo per stampare 2 A5 su 1 foglio A4

Ciao, so che non ci avete capito nulla dall'oggetto. Mi spiego meglio.
Voglio rilegare a filo un libro. Ho tutto il testo, ma devo stamparlo in 
maniera opportuna, e cioč 2 pagine per ogni lato del foglio, in modo tale da 
poter poi piegare l'A4 in due sul lato lungo e fascicolare 8 fogli insieme.
Sul primo A4 devo stampare sul fronte pag.16 e pag.1, e sul retro pag.2 e 
pag.15;
sul secondo A4 devo stampare sul fronte pag.14 e pag.3, e sul retro pag.4 e 
pag.13...
... e cosě via.
Chi mi sa dire come devo fare? Non mi dite per favore che devo stampare 4 
volte lo stesso foglio giocando con i margini impostati tramite il software 
della stampante...
Uso Miktek (con Winedt) in Windows e vorrei ricavare un pdf da stampare su 
una qualsiasi stampante.
Grazie.
Niki Oliva 

 psbook -s16 libroA4.ps | psnup -2 > libro-A5.ps
psbook ricombina le pagine nel modo opportuno (a fascicoli di 16
pagine) e psnup mette 2 pagine per foglio.
da qui il pdf si puň creare con ps2pdf.
ciao
-- 
La gente che non ha mai tempo fa pochissimo.

 insieme.
Prima di tutto compili il tuo documento in PS.
Poi ridisponi le pagine con quinterni di 8.
psbook -q -s32 Libro.ps Libro2.ps
Poi disponi 2 fogli per pagina A3
psnup -pa3 -Pa4 -q -2 Libro2.ps LibroFinale.ps
Ciao
Marco 

 psnup -pa3 -Pa4 -q -2 Libro2.ps LibroFinale.ps
Sono un pò rintronato.
A te serve mettere 2 A5 su un A4.
Io ti ho detto come mettere 2 A4 su un A3. :-)
Ciao
Marco 

 Chi mi sa dire come devo fare?
Io sono 8 anni che ci provo inutilmente, con delle utility che 
(teoricamente) fanno quel lavoro, ma in realtà non fungono (almeno con 
Windoz). Già da tempo stampo tutto in A4, facendo attenzione che il testo 
sia multiplo di 4 pagine (4, 8, 12...). Poi prendo le pagine e le assemblo a 
due a due con nastro per eliografo. Una volta ottenuto il master lo porto in 
copisteria e fotocopio fronte retro. Semplice, banale... ma soprattutto 
funziona :-)

una qualsiasi stampante.
Oltre alla procedura con le psutils che ti hanno consigliato (e ad altre
ancora, su cui sorvolerò), se hai, o pensi di installare, Perl, c'è un
modulo per il trattamento di documenti PDF, Text::PDF, che è accompagnato
da un esempio/utilità, pdfbklt, che fa il lavoro su documenti PDF (comunque
ottenuti, non c'è il vincolo che siano stati creati da latex).
Crei il tuo documento PDF (in qualsiasi modo: latex+dvips+ps2latex,
latex+dvipdfm, pdflatex) e applichi pdfbklt.
Ciao.

Windoz).
Non "teoricamente", lo fanno proprio, senza alcun problema, anche in
Windows: sono almeno altrettanti 8 anni che le uso regolarmente.
Ci possono essere problemi con documenti stampati in Windows da altre
applicazioni, perché i driver postscript di Windows inseriscono della roba
che disturba le psutils (ma comunque si possono aggiustare), o non
inseriscono (se non convenientemente istruiti) della roba che gli serve;
non ho invece mai incontrato delle difficoltà con documenti postscript
creati con dvips.
Ciao.

 da qui il pdf si può creare con ps2pdf.

del Linux? (uso il Miktek da tre giorni)...
Sě. O, se non erano selezionate al momento dell'installazione, puoi
installare da Miktex. Fanno parte di Miktex, insomma.
Ciao.

 perché i driver postscript di Windows
No *.ps, *.pdf!


 latex+dvipdfm, pdflatex) e applichi pdfbklt.
questo mi mancava ed è veramente ottimo.
grazie ;-)
-- 
La memoria ti diminuisce, se non la eserciti.
cicerone

No *.ps, *.pdf!
Sì, ma le imposizioni su che cosa le facevi? le psutils lavorano sui file
postscript.
Altre utilità (dvi2dvi, a5booklet,...) processano i file .dvi, e potrebbero
essere il "lambda" del tuo procedimento.
Per ottenere un file postscript in Windows (salvo il caso di dvips o altre
applicazioni che lo producono nativamente) devi passare necessariamente da
un driver postscript; e i driver postscript di Windows hanno i problemi
detti, rispetto alle psutils. Ci si arriva, ma bisogna accordare bene il
driver e fare comunque qualche aggiustamento sul postscript prima di darlo
in pasto alle psutils.
Con i postscript ottenuti con dvips, invece, non ho mai avuto difficoltà,
fin dal primo tentativo e senza alcun intervento: fai girare psbook e psnup
ed è fatta. dvi2dvi l'ho trovato più macchinoso e l'ho usato pochissime
volte, ma sostanzialmente funziona anche quello.
Postprocessare i documenti pdf è la cosa che ho finito per preferire,
perché funziona su qualunque documento pdf.
Ciao.

per windows non serve neanche il perl. su
http://www.sil.org/~hosken/Utils/PDFCreate.html
se ne può trovare un .exe.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

se ne può trovare un .exe.
Carino, ma per quanto ne ho capito non c'è modo di ottenere
fascicoli.. giusto?
Maltese
________________________________________________________________________
"Physics is like sex: sure, it may give some practical
results, but that's not why we do it"  (Richard Feynman)

 i driver postscript di Windows
ho avuto una 'aspra' discussione su comp.text.tex a questo proposito:
non sono un windows-fan, però se i ps prodotti in windows non funzionano
perfettamente, non se ne deve certo dare la colpa a winzozz stesso!
Io il driver l'ho scaricato dalla Adobe, mica dalla M$...
Chi mi illumina, senza bruciarmi?
;-)
-- 
ciao
El Bandolero

Io il driver l'ho scaricato dalla Adobe, mica dalla M$...
L'obiezione è corretta. Fatto sta che, com'è come non è, tutti i
driver postscript PER Windows che ho avuto modo di vedere producono
documenti PostScript che hanno problemi di compatibilità con le
psutils. Che, a rigore, non vuol neppur dire (e infatti io non l'ho
mai detto) che "non funzionano perfettamente".
Funzionano perfettamente per la stampa, ma producono documenti che è
più difficile postprocessare. A parte la conformità DSC, che in genere
è possibile imporre, inseriscono un preambolo che, tra le altre
innumerevoli cose (non necessariamente gradite) che fa, rende
difficile separare le pagine sulla base dei soli commenti. In pratica,
vengono meno alle raccomandazioni Adobe sull'indipendenza delle
pagine.
Chi li produca e perché si comportino in questo modo è, per i miei
scopi, totalmente irrilevante.
Ciao.

fascicoli.. giusto?
Che cosa intendi per "fascicoli"?
PDF::Text è una libreria per il trattamento di documenti PDF con cui è
possibile fare praticamente tutto, basta avere la pazienza di
programmarlo.
pdfbklt è un'utilità molto limitata, che usa PDF::Text per fare alcune
cose. Che fra queste ci sia la possibilità di ottenere "fascicoli",
così come li intendi tu, non saprei dire. Certamente è possibile fare
alcune semplici imposizioni (stampare due o più pagine per foglio,
secondo un certo ordine).
Un ulteriore sistema per postprocessare documenti PDF è (sorpresa,
sorpresa!) pdftex. Attraverso il pacchetto pdfpages, per esempio, o
con ConTeX. Con pdfpages si possono fare imposizioni anche piuttosto
complesse.
Ciao.

con ConTeX.
     ^^^^^^
     ConTeXt
Ciao.

Ciao.
darò un'occhiata.. grazie mille..


psbook -s16 libroA4.ps | psnup -2 > libro-A5.ps
Con pdfbklt, così com'è, si ottiene lo stesso effetto di:
  psbook libroA4.ps | psnup -2 > libro-A5.ps
cioè, il numero di pagine della "signature" (o del fascicolo) è quello
dell'intero documento, modulo 4. Eventualmente, è possibile modificare
il numero di pagine per foglio, l'orientazione e l'ordine, ma non
raggrupparle in fascicoli più piccoli.
Dovrebbe essere semplice modificare pdfbklt in modo da consentire
anche questo. Si tratta di modificare la procedura di ordinamento
delle pagine che, a differenza di quella per ridimensionameto e
posizionamento, è molto semplice (non è neppure necessario conoscere i
particolari di PDF::Text o dei documenti PDF: è puro e semplice Perl,
che costruisce una lista). È tuttavia una cosa da fare, che richiede
tempo e una buona conoscenza di Perl, non penso che nessuno ci si sia
messo. Un'alternativa è contattare l'autore di PDF::Text e chiedergli
se può provvedere lui.
Il pacchetto pdfpages, invece, ha un'opzione "signature" che permette
la fascicolazione.
Ciao.

che costruisce una lista).
Eccola qui, limitandosi al caso ($opt_p == 2), cioè due pagine per
foglio:
    for ($i = 0; $i < $rpc / $opt_p; $i++)
    {
        if ($opt_p == 1) {
           ...
        } elsif ($opt_p == 2) {
            @pl = ($pglist[$i], $rpc - $i > $pgcount ?
                             undef :
                             $pglist[$rpc - $i - 1]);
            @pl = ($pl[1], $pl[0]) if ($i & 1);
            $m = ($i + 1) . ", " . ($rpc - $i);
        } else {     # $opt_p == 4
           ...
        }
        print "Merging " . $m . "\n" unless $opt_q;
        merge_pages(@pl);
    }
$prc è il numero di pagine del documento, @pglist la lista che
contiene gli oggetti pagina, merge_pages(@pl) la procedura che dispone
le pagine della lista @pl su un foglio ($m è semplicemente un
messaggio informativo a schermo, giusto per dire all'utente che cosa
si sta facendo).
Si tratta di costruire un algoritmo che, allo scorrere di $i
sull'indice delle pagine, fornisca in @pl la giusta coppia di pagine
da disporre sul foglio.
L'algoritmo attuale prende semplicemente la prima e l'ultima pagina
del documento, poi la seconda e la penultima, la terza e la terzultima
e via così.
Introducendo un'ulteriore opzione (sia $opt_f) sul numero delle pagine
per fascicolo, bisogna fare la stessa cosa, operando però sul
fascicolo: la prima e l'ultima del fascicolo, la seconda e la
penultima del fascicolo... e così via finché non si finisce il
fascicolo, quindi si passa al successivo, se le pagine del documento
non sono terminate, e così via per ogni fascicolo.
Io non sono molto bravo in queste cose (moduli, indici...) perché
m'imbarbaglio subito, sicché non è detto che la mia sia la soluzione
migliore, e neppure che sia una soluzione e neanche solo che giri;
comunque ci provo.
Intanto, aggiungo l'opzione f all'elenco delle opzioni possibili:
   getopts("b:h:lp:qrs:");
diventa:
   getopts("b:h:lp:qrs:f:");
 
racchiudo il ciclo for di cui sopra in una sub, così da poterlo
richiamare più volte (per semplicità, o pigrizia, scegliete voi,
localizzo alla sub delle variabili con lo stesso nome di quelle
globali, invece di modificarne il nome in ogni occorrenza):
    sub proc_fascicolo {
        my $rpc = $opt_f;
        my @pglist = @_;
        my $pgcount = scalar @pglist;
        for ($i = 0; $i < $rpc / $opt_p; $i++)
        {
        ...
        }
    }
e aggiungo la parte che gestisce i fascicoli:
    my $fascicoli = int(($rpc + $opt_f - 1)/$opt_f);
    #Va aggiunta anche una gestione di default dell'opzione f, nel
    #caso venga omessa:
    $opt_f = $rpc unless defined $opt_f;
    my $primo;
    my $ultimo;
    my $fascicolo;
    for ($fascicolo = 0; $fascicolo < $fascicoli; $fascicolo++) {
        $primo = $fascicolo * $opt_f;
        $ultimo = $primo + $opt_f - 1;
        proc_fascicolo(@pglist[$primo .. $ultimo]);
    }
Non ho verificato, e non ho intenzione di farlo, ma modificando in
questo modo pdfbklt non è escluso che si ottenga il risultato voluto
(in ogni caso, qualcosa si dovrebbe ottenere). A questo punto pdfbklt
andrebbe richiamato con l'opzione f:
  pdfbklt -f16 libroA4.pdf
o secondo il numero di pagine che si vogliono in ogni fascicolo.
Ciao.

(in ogni caso, qualcosa si dovrebbe ottenere).
Per gli ardimentosi che volessero verificare, il file pdfbklt.bat da me
modificato per la fascicolazione è disponibile qui:
 
http://mio.discoremoto.virgilio.it/zezzagio
Va da sé che non garantisco alcunché, né sono disponibile per modifiche e
spiegazioni.
Mancano diverse cose, non ultime copyright e documentazione della modifica
effettuata (non sono neppure sicuro che, così com'è, sia effettivamente
distribuibile, ma confido nella benevolenza dell'autore Martin Hosken),
inoltre l'odometro andrebbe modificato per visualizzare il numero di pagine
originali del documento, invece di quelle del fascicolo.
Il meccanismo della fascicolazione, comunque, potrebbe anche funzionare.
Il nome corretto del modulo Perl, che ho riferito in questo thread a volte
come Text::PDF e a volte come PDF::Text, è Text::PDF.
Ciao.

,

Sei stato davvero gentilissimo, ma purtroppo io non conosco il Perl.. 
quando e se qualcuno avrà tempo e voglia di compilare il sorgente
spero si faccia sentire e renda disponibile l'eseguibile..
Ancora grazie per la disponibilità..


spero si faccia sentire e renda disponibile l'eseguibile..
Purtroppo io non sono in grado di compilare uno script Perl, nel senso e
nel modo in cui (credo) è disponibile pdfbklt.exe su
http://www.sil.org/~hosken/Utils/PDFCreate.html
.
Il massimo che so fare è compattare tutto (interprete Perl, librerie e
script) con par. Il risultato è un eseguibile, che non ha bisogno di altro
per funzionare, ma è più grande (1.5Mb, contro 547Kb) e contiene in chiaro
il sorgente dello script e di tutte le librerie necessarie per farlo
funzionare.
   pdfbklt.exe su  
http://mio.discoremoto.virgilio.it/zezzagio
Ciao.

funzionare.
Piů che sufficiente.. funziona benissimo.. ho visto che c'č anche
l'eseguibile per invertire l'operazione..
Ancora grazie.. alla prossima..
