ps2pdf - velikost papíru (delší)

Hana Skoumalova hana.skoumalova at ff.cuni.cz
Mon May 30 23:34:29 CEST 2005


Dobrý den,

narazila jsem na záhadu. Kolega mě požádal o pomoc při převodu dokumentu 
z .ps do .pdf - ve výsledném souboru byl text nahoře oříznutý a on to 
chtěl spravit. To je typický příznak toho, že někde se použil parametr 
"letter" místo "a4", tak jsem na ten jeho postscript pustila "ps2pdf 
-sPAPERSIZE=a4" a ono to pomohlo. Jenže mně vrtá hlavou, jak se tam ten 
letter předtím dostal.

V LaTeXovém zdrojáku je class article s volbou a4paper:

\documentclass[a4paper,twocolumn]{article}

Dále jsou nastaveny okraje pomocí balíku vmargin.sty:

\usepackage[A4]{vmargin}
\setmargnohfrb{0.4in}{0.4in}{0.4in}{0.4in}
  \pagestyle{empty}

Soubor byl přeložen latexem a výsledný .dvi soubor byl převeden pomocí 
dvips do .ps. Když si ten .ps prohlídnu programem gv, objeví se mi v 
horní liště jako rozměr papíru BBox (zřejmě kvůli tomu čarování s 
okraji), ale když se podívám do to postscriptu, údaj o velikosti papíru 
a4 tam pořád je, i když ne na začátku:

%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
%%Title: abstract.dvi
%%Pages: 2
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: Times-Roman Times-Italic Times-Bold
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -f abstract
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2005.05.30:1605
%%BeginProcSet: texc.pro
%!
...
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4
  end
%%EndSetup

Pak to proženu skrz ps2pdf a na výšku je to ořízlé. ps2pdf je script, 
který volá další script atd., takže nakonec se volá toto:

exec gs $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite 
"-sOutputFile=$outfile"
$OPTIONS -c .setpdfwrite -f "$infile"

Do OPTIONS se postupně nabalí -dSAFER a -dCompatibilityLevel=1.2, ale o 
velikosti papíru tam nic není. Měla by se tedy brát nějaká defaultní 
hodnota pro gs. V logu o instalaci gs je toto:

CLASSES=none setpapersize
TZ=Europe/Prague
PATH=/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin
OAMBASE=/usr/sadm/sysadm
ARCH=sparc
PKG=CSWgs
NAME=ghostscript - PostScript and PDF interpreter for previewing, 
conversion, and printing
VERSION=7.7,REV=2003.12.27
CATEGORY=application
VENDOR=http://www.ghostscript.com/ packaged for CSW by James Lee
HOTLINE=http://www.blastwave.org/bugtrack/
EMAIL=james at blastwave.org
PSTAMP=apollo20031226080613
PKGINST=CSWgs
PKGSAV=/var/sadm/pkg/CSWgs/save
PAPER=A4
INSTDATE=Feb 04 2004 14:36

Takže defaultní hodnota pro velikost papíru by měla být A4. Zkoušela 
jsem se dívat i do souborů v .../ghostscript/lib/ a velikost papíru se 
(zřejmě) nastavuje v gs_init.ps:

% Optionally choose a default paper size other than U.S. letter.
  (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse

Tohle nevím, jestli je dobře, v postscriptu se nevyznám, ale vzniklo to 
zřejmě při instalaci jako výsledek konfigurace.

Mohl by mi prosím někdo vysvětlit, proč je zapotřebí dávat tomu ps2pdf 
parametr -sPAPERSIZE=a4?

S pozdravem

Hana Skoumalová




More information about the csTeX mailing list