
CWEB ファイルがあり、ページ サイズを変更したいと考えています。プレーン TeX ドキュメントでこれを行う方法はわかっていますし、これまでは問題なく機能していました。CWEB ファイルで同じ操作 (hsize、オフセットの変更など) を行うと、余白と配置が完全に台無しになります。
A4 用紙に出力したいのですが、最終的なページ サイズは pdftex によって A4 に設定されているので、これは問題ではありません。問題はむしろ、CWEB がレター ペーパー出力用に作成されているため、たとえばコピーが中央に配置されないことです。
Knuth の Stanford Graphbase で解決策を探してみました。これは書籍形式で公開された一連の CWEB プログラムなので、ページ サイズを変更するために何らかの操作を行ったに違いありません。ただし、彼がインターネットで公開しているソースはレター出力用に作成されているため、役に立ちません。何かアイデアはありますか?
これまでに、CWEB ファイルの先頭に次のコードを追加しました (ちなみに、このコードはプレーンな TeX ファイルでも機能します)。
\newdimen\pagewidth \pagewidth=210mm
\newdimen\pageheight \pageheight=297mm
\hsize=13cm
\hoffset=\pagewidth
\advance\hoffset by-\hsize
\hoffset=.5\hoffset
\advance\hoffset by-1in
\voffset=\pageheight
\advance\voffset by-\vsize
\voffset=0.5\voffset
\advance\voffset by-1in
答え1
これはCWEBマニュアルに記載されています(texdoc cweb
DVIファイルを開くを呼び出すことで開くことができます。オンラインでPDFとして読む)、 で付録 C: CWEB マクロの使用方法(25ページ)、ポイント4。
コツは、\pagewidth
(デフォルト 6.5 インチ)、\pageheight
(デフォルト 8.7 インチ)、または\fullpageheight
(デフォルト 9 インチ) のいずれかを設定した後、次のように言う必要があることです\setpage
。
これらの数量のいずれかを変更する場合は、変更後すぐにマクロ \setpage を呼び出す必要があります。
例: ダウンロードした場合lp.wクヌースよりダウンロード可能なプログラムページを実行し、 を実行するcweave lp.w
と が得られ、これを(または)lp.tex
で処理すると、最初のページとして次のものが生成されます。tex lp.tex
pdftex lp.tex
上部lp.tex
を
\input cwebmac
\datethis
に
\input cwebmac
\pagewidth=3.25in % The default is 6.5in
\pageheight=4.35in % The default is 8.7in
\fullpageheight=4.5in % The default is 9in
\setpage
\datethis
(すべてを半分にすると)、(PDF 用紙サイズを変更しない場合は) 次のようになります。
特に A4 用紙の場合、レター用紙と同じ余白を維持したい場合 (あまり意味がないかもしれませんが、1 つのオプションです)、ファイル\input cwebmac
の上部にあるを.tex
次のように変更できます ( を使用している場合pdftex
)。
\input cwebmac
\pdfpagewidth=210mm
\pdfpageheight=297mm
\pagewidth= 159.2mm % The default is 6.5in for 8.5in width, so for A4 this is 210mm - 2in
\pageheight=238.58mm % The default is 8.7in for 11in height, so for A4 this is 297mm - 2.3in
\fullpageheight=246.2mm % The default is 9in for 11in height, so for A4 this is 297mm - 2in
\setpage
レイアウト(テキストの幅、改行など)をレター用紙と同じに保ちながら、代わりにそれを A4 用紙に圧縮して中央に配置する場合(Igor の回答で提案されているように)、もちろん、特定の操作を行う必要はなくcwebmac
、同じコード ブロックをどこでも使用できます。調整するだけです\pdfhorigin
。デフォルトは1in
(=(8.5in - 6.5in)/2) です。ファイルの先頭にこれを追加するだけで、他の変更は行いません。
\pdfpagewidth=210mm
\pdfpageheight=297mm
\pdfhorigin=\dimexpr (210mm-6.5in)/2
\pdfvorigin=\dimexpr (297mm-9in)/2