Post by AMXTo rzeczywiście jest rozwiązanie (no pół). Nie muszę pracować w
pdf-ie, mogę w eps-ie, to bez znaczenia. Tylko jak wyciąć pół
strony z całej? Takiej sztuczki to nigdy nie robiłem.
Ogólnie w pdf-ie to się nie da, natomiast robi się to 'przycinając' --
poprostu nie widać tego co wystaje na zewnątrz papieru.
Naprzykład aby uzyskać prawą cześć strony to możesz ustawić hbox na długość
dwa razy szerokości strony, do niego zasiorbać pdf-a i poźniej ustawić
hoffset na wartość ujemną szerokości. To spowoduje że tylko prawa strona
oryginału będzie widoczna.
Ogólnie do pracy z pdfami polecam xetexa, wygenerujmy dla przykładu
prostego pdfa ze świnkami na każdej stronie:
\newcount\licznik
\licznik=1
\output{\ifodd\licznik\global\setbox200\box255\else{%
\hsize 42cm\shipout\hbox to 42cm{\hbox to 21cm{\box200}\hbox to
21cm{\box255}}}\fi}
\def\drukujswinke{swinka \the\licznik\par\vfill\eject}
\loop\ifnum\licznik<9\drukujswinke\advance\licznik by 1\repeat
\bye
$ xetex -papersize="420mm,297mm" swinka.tex
wygląda on tak:
http://tmp.slimaczek.pl/tmp/swinka.pdf
teraz chcemy zrobić z niego pdfa o szerokości stron 21cm, czyli to o co
pytasz:
\newdimen\szerokosc
\newdimen\wysokosc
\newcount\ilestron
% wynikowy pdf
\szerokosc=210mm
\wysokosc=297mm
\ilestron=8
% wejsciowy pdf zakladamy ze jest dwa razy szerszy
\newdimen\szerokoscdouble
\szerokoscdouble=\szerokosc
\multiply\szerokoscdouble by 2
\newcount\strona
\newcount\pdfstrona
\strona=0
\pdfstrona=1
\output{\shipout\box255}
\voffset=-1in
\loop\ifnum\strona<\ilestron
\hsize=\szerokosc
\hoffset=-1in
\vbox to \wysokosc{\hbox to \szerokosc{%
\XeTeXpdffile swinka.pdf page \pdfstrona \relax}}
\supereject
\hsize=\szerokoscdouble
\hoffset=-\szerokosc
\advance\hoffset by -1in
\vbox to \wysokosc{\hbox to \szerokoscdouble{%
\XeTeXpdffile swinka.pdf page \pdfstrona \relax}}
\supereject
\advance\strona by 2
\advance\pdfstrona by 1
\repeat
\bye
i uzywamy tego tak:
xetex -papersize "210mm,297mm" podziel.tex
i pdf gotowy:
http://tmp.slimaczek.pl/tmp/podziel.pdf
--
Tomek
http://www.ttmath.org