MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 3.135.210.146
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/ps-print.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:06:28 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/ps-print.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@367 ps-print.el, v 7.3.5 <2009/12/23 vinicius>

Vinicius's last change version -- this file may have been edited as part of
Emacs without changes to the version number.  When reporting bugs, please also
report the version of Emacs, if any, that ps-print was distributed with.

Please send all bug fixes and enhancements to
	Vinicius Jose Latorre <viniciusjl@ig.com.br>.
(defconst ps-print-version "7.3.5" (#$ . 552))
(byte-code "\301\302!\210\303\300!\203\304Y\204\305\306!\210\301\207" [emacs-major-version require lpr boundp 23 error "`ps-print' only supports Emacs 23 and higher"] 2)
(defconst ps-windows-system (memq system-type '(ms-dos windows-nt)))
(defconst ps-lp-system (memq system-type '(usg-unix-v hpux irix)))
(byte-code "\300\301!\210\302\303\304\305\306\307\310\311\312\313&	\210\302\314\304\315\316\317\320\321\310\311\312\322\312\303&
\210\302\323\304\324\320\321\306\325\310\311\312\314&\210\302\326\304\327\320\321\306\330\310\311\312\314&\210\302\331\304\332\320\321\306\333\310\311\312\314&\210\302\334\304\335\320\321\306\336\310\311\312\314&\210\302\337\304\340\320\321\306\341\310\311\312\314&\210\302\342\304\343\320\321\306\344\310\311\312\314\312\345&
\210\302\346\304\347\320\321\306\350\310\311\312\314&\210\302\351\304\352\320\321\306\353\310\311\312\314&\210\302\354\304\355\320\321\306\356\310\311\312\314&\210\302\357\360\361\320\321\306\362\310\311\312\314&\210\302\363\304\364\320\321\306\365\310\311\312\314&\210\302\366\304\367\320\321\306\370\310\311\312\314&\210\371\372\373\374\375\376\310\311\312\366&	\210\371\377\304\201@\375\201A\310\311\312\366&	\210\371\201B\304\201C\375\201D\310\311\312\366&	\210\371\201E\201F\201G\375\201H\310\311\312\357&	\210\371\201I\201J\201K\375\201L\310\201M\312\357&	\210\371\201N\201O\201P\375\201Q\310\311\312\357&	\210\371\201R\201S\201T\375\201U\310\311\312\357&	\210\371\201V\304\201W\375\201X\310\311\312\357&	\210\371\201Y\304\201Z\375\201[\310\311\312\357&	\210\371\201\\\201]\201^\310\201M\375\201[\310\311\312\357&\210\371\201_\201`\201a\375\201b\310\311\312\363&	\210\371\201c\201d\201e\375\201f\310\311\312\363&	\210\371\201g\201h\201i\375\201[\310\311\312\363&	\210\371\201j\304\201k\375\201[\310\311\312\363&	\210\371\201l\304\201m\375\201[\310\201M\312\363&	\210\371\201n\304\201o\375\201p\310\311\312\363&	\210\371\201q\304\201r\375\201s\310\311\312\363&	\210\371\201t\201u\201v\375\201w\310\311\312\366&	\210\371\201x\201y\201z\375\201{\310\311\312\346&	\210\371\201|\201}\201~\375\201\310\311\312\346&	\210\371\201\200\201h\201\201\375\201[\310\311\312\346&	\210\371\201\202\201\203\201\204\375\201\205\310\311\312\346&	\210\371\201\206\201\207\201\210\375\201\310\311\312\366&	\210\371\201\211\304\201\212\375\201[\310\311\312\351&	\210\371\201\213\201\214\201\215\375\201\310\311\312\351&	\210\371\201\216\201\217\201\220\375\201\221\310\311\312\351&	\210\371\201\222\304\201\223\375\201\224\310\311\312\351&	\210\371\201\225\304\201\226\375\201[\310\311\312\366&	\210\371\201\227\201y\201\230\375\201\231\310\311\312\366&	\210\371\201\232\201y\201\233\375\201\234\310\311\312\366&	\210\371\201\235\304\201\236\375\201\237\310\311\312\354&	\210\371\201\240\304\201\241\375\201\242\310\311\312\354&	\210\371\201\243\201\244\201\245\375\201\310\311\312\323&	\210\371\201\246\201\247\201\250\375\201\310\311\312\323&	\210\371\201\251\201\252\201\253\375\201\310\311\312\323&	\210\371\201\254\201\255\201\256\375\201\310\311\312\326&	\210\371\201\257\201\260\201\261\375\201\310\311\312\326&	\210\371\201\262\201\263\201\264\375\201\310\311\312\326&	\210\371\201\265\201\266\201\267\375\201\310\311\312\326&	\210\371\201\270\201\271\201\272\375\201\310\311\312\326&	\210\371\201\273\201\274\201\275\375\201\310\311\312\326&	\210\371\201\276\201h\201\277\375\201[\310\311\312\331&	\210\371\201\300\201h\201\301\375\201[\310\311\312\331&	\210\371\201\302\201\303\201\304\310\201M\375\201\305\310\311\312\331&\210\371\201\306\201\307\201\310\375\201\311\310\311\312\331&	\210\371\201\312\304\201\313\375\201[\310\201M\312\331&	\210\371\201\314\201h\201\315\375\201[\310\201M\312\331&	\210\371\201\316\201\317\201\320\375\201\321\310\201M\312\331&	\210\371\201\322\201\307\201\323\375\201\311\310\201M\312\331&	\210\371\201\324\304\201\325\375\201[\310\311\312\331&	\210\371\201\326\201\327\201\330\375\201\331\310\311\312\331&	\210\371\201\332\201h\201\333\375\201[\310\311\312\331&	\210\371\201\334\201\335\201\336\375\201\337\310\311\312\331&	\210\371\201\340\304\201\341\375\201[\310\311\312\331&	\210\371\201\342\304\201\343\375\201[\310\311\312\331&	\210\371\201\344\201\345\201\346\375\201\347\310\311\312\334&	\210\371\201\350\201\351\201\352\375\201\353\310\311\312\334&	\210\371\201\354\201\355\201\356\375\201\357\310\311\312\334&	\210\371\201\360\201\361\201\362\375\201\353\310\311\312\334&	\210\371\201\363\201\364\201\365\375\201\366\310\311\312\334&	\210\371\201\367\201\370\201\371\375\201\372\310\311\312\334&	\210\371\201\373\201\374\201\375\375\201\353\310\201M\312\334&	\210\371\201\376\201\377\201\375\201\310\201M\312\334&	\210\371\201\201\201\375\201\310\201M\312\334\312\366&\210\371\201\201\201\375\201Q\310\311\312\334\312\366&\210\371\201	\201\n\201\375\201\f\310\311\312\334\312\366&\210\371\201
\201\201\375\201\310\311\312\337&	\210\371\201\304\201\375\201\310\311\312\337&	\210\371\201\304\201\375\201\310\311\312\337&	\210\371\201\304\201\375\201\310\201\312\337&	\210\371\201\201h\201\375\201[\310\201\312\337&	\210\371\201\201h\201\375\201[\310\311\312\334&	\210\371\201\201 \201!\310\201M\375\201\"\310\311\312\342&\210\371\201#\201$\201%\375\201&\310\311\312\342&	\210\371\201'\201(\201)\375\201*\310\311\312\342&	\210\371\201+\201,\201-\375\201.\310\311\312\342&	\210\371\201/\304\2010\375\2011\310\311\312\342&	\210\371\2012\2013\2014\375\2015\310\311\312\331&	\210\371\2016\2017\2018\375\2019\310\311\312\331&	\210\371\201:\201;\201<\375\201=\310\201M\312\331&	\210\371\201>\201?\201@\375\201A\310\201M\312\331&	\210\371\201B\201h\201C\375\201[\310\311\312\366&	\210\371\201D\201E\201F\375\201Q\310\311\312\366&	\210\371\201G\201h\201H\375\201[\310\311\312\342&	\210\371\201I\304\201J\375\201[\310\311\312\342&	\210\371\201K\304\201L\375\201[\310\311\312\331&	\210\371\201M\201N\201O\375\201P\310\311\312\366&	\210\371\201Q\201R\201S\375\201T\310\201M\312\366&	\210\371\201U\201R\201V\375\201W\310\201M\312\366&	\210\371\201X\201Y\201Z\375\201[\310\201M\312\366&	\210\371\201\\\304\201]\375\201^\310\201M\312\366&	\210\371\201_\304\201`\375\201a\310\201M\312\366&	\207" [require ps-def custom-declare-group postscript nil "Support for printing and PostScript." :tag "PostScript" :version "20" :group external ps-print "PostScript generator for Emacs." :link (emacs-library-link :tag "Source Lisp File" "ps-print.el") :prefix "ps-" wp ps-print-horizontal "Horizontal page layout." "Horizontal" ps-print-vertical "Vertical page layout." "Vertical" ps-print-headers "Headers & footers layout." "Header & Footer" ps-print-font "Fonts customization." "Font" ps-print-color "Color customization." "Color" ps-print-face "Faces customization." "PS Faces" faces ps-print-n-up "N-up customization." "N-Up" ps-print-zebra "Zebra customization." "Zebra" ps-print-background "Background customization." "Background" ps-print-printer ((lpr custom-group)) "Printer customization." "Printer" ps-print-page "Page customization." "Page" ps-print-miscellany "Miscellany customization." "Miscellany" custom-declare-variable ps-error-handler-message 'paper "Specify where the error handler message should be sent.\n\nValid values are:\n\n   `none'		catch the error and *DON'T* send any message.\n\n   `paper'		catch the error and print on paper the error message.\n\n   `system'		catch the error and send back the error message to\n			printing system.  This is useful only if printing system\n			send back an email reporting the error, or if there is\n			some other alternative way to report back the error from\n			the system to you.\n\n   `paper-and-system'	catch the error, print on paper the error message and\n			send back the error message to printing system.\n\nAny other value is treated as `paper'." :type (choice :menu-tag "Error Handler Message" :tag "Error Handler Message" (const none) (const paper) (const system) (const paper-and-system)) ps-user-defined-prologue "User defined PostScript prologue code inserted before all prologue code.\n\n`ps-user-defined-prologue' may be a string or a symbol function which returns a\nstring.  Note that this string is inserted after `ps-adobe-tag' and PostScript\nprologue comments, and before ps-print PostScript prologue code section.  That\nis, this string is inserted after error handler initialization and before\nps-print settings.\n\nIt's strongly recommended only insert PostScript code and/or comments specific\nfor your printing system particularities.  For example, some special\ninitialization that only your printing system needs.\n\nDo not insert code for duplex printing, n-up printing or error handler,\nps-print handles this in a suitable way.\n\nFor more information about PostScript, see:\n   PostScript Language Reference Manual (2nd edition)\n   Adobe Systems Incorporated\n\nAs an example for `ps-user-defined-prologue' setting:\n\n   ;; Setting for HP PostScript printer\n   (setq ps-user-defined-prologue\n	 (concat \"<</DeferredMediaSelection true /PageSize [612 792] \"\n		 \"/MediaPosition 2 /MediaType (Plain)>> setpagedevice\"))" (choice :menu-tag "User Defined Prologue" :tag "User Defined Prologue" (const :tag "none" nil) string symbol) ps-print-prologue-header "PostScript prologue header comments besides that ps-print generates.\n\n`ps-print-prologue-header' may be a string or a symbol function which returns a\nstring.  Note that this string is inserted on PostScript prologue header\nsection which is used to define some document characteristic through PostScript\nspecial comments, like \"%%Requirements: jog\\n\".\n\nps-print always inserts the %%Requirements: comment, so if you need to insert\nmore requirements put them first in `ps-print-prologue-header' using the\n\"%%+\" comment.  For example, if you need to set numcopies to 3 and jog on\nrequirements and set %%LanguageLevel: to 2, do:\n\n (setq ps-print-prologue-header\n       \"%%+ numcopies(3) jog\\n%%LanguageLevel: 2\\n\")\n\nThe duplex requirement is inserted by ps-print (see `ps-spool-duplex').\n\nDo not forget to terminate the string with \"\\n\".\n\nFor more information about PostScript document comments, see:\n   PostScript Language Reference Manual (2nd edition)\n   Adobe Systems Incorporated\n   Appendix G: Document Structuring Conventions -- Version 3.0" (choice :menu-tag "Prologue Header" :tag "Prologue Header" (const :tag "none" nil) string symbol) ps-printer-name (and (boundp 'printer-name) (symbol-value 'printer-name)) "The name of a local printer for printing PostScript files.\n\nOn Unix-like systems, a string value should be a name understood by lpr's -P\noption; a value of nil means use the value of `printer-name' instead.\n\nOn MS-DOS and MS-Windows systems, a string value is taken as the name of the\nprinter device or port to which PostScript files are written, provided\n`ps-lpr-command' is \"\".  By default it is the same as `printer-name'; typical\nnon-default settings would be \"LPT1\" to \"LPT3\" for parallel printers, or\n\"COM1\" to \"COM4\" or \"AUX\" for serial printers, or \"\\\\hostname\\printer\"\nfor a shared network printer.  You can also set it to a name of a file, in\nwhich case the output gets appended to that file.  (Note that `ps-print'\npackage already has facilities for printing to a file, so you might as well use\nthem instead of changing the setting of this variable.)  If you want to\nsilently discard the printed output, set this to \"NUL\".\n\nSet to t, if the utility given by `ps-lpr-command' needs an empty printer name.\n\nAny other value is treated as t, that is, an empty printer name.\n\nSee also `ps-printer-name-option' for documentation." (choice :menu-tag "Printer Name" :tag "Printer Name" (const :tag "Same as printer-name" nil) (const :tag "No Printer Name" t) (file :tag "Print to file") (string :tag "Pipe to ps-lpr-command")) ps-printer-name-option (cond (ps-windows-system "/D:") (ps-lp-system "-d") (t "-P")) "Option for `ps-printer-name' variable (see it).\n\nOn Unix-like systems, if `lpr' is in use, this should be the string\n\"-P\"; if `lp' is in use, this should be the string \"-d\".\n\nOn MS-DOS and MS-Windows systems, if `print' is in use, this should be\nthe string \"/D:\".\n\nFor any other printing utility, see its documentation.\n\nSet this to \"\" or nil, if the utility given by `ps-lpr-command'\nneeds an empty printer name option--that is, pass the printer name\nwith no special option preceding it.\n\nAny value that is not a string is treated as nil.\n\nThis variable is used only when `ps-printer-name' is a non-empty string." (choice :menu-tag "Printer Name Option" :tag "Printer Name Option" (const :tag "None" nil) (string :tag "Option")) "21.1" ps-lpr-command lpr-command "Name of program for printing a PostScript file.\n\nOn MS-DOS and MS-Windows systems, if the value is an empty string then Emacs\nwill write directly to the printer port named by `ps-printer-name'.  The\nprograms `print' and `nprint' (the standard print programs on Windows NT and\nNovell Netware respectively) are handled specially, using `ps-printer-name' as\nthe destination for output; any other program is treated like `lpr' except that\nan explicit filename is given as the last argument." string ps-lpr-switches lpr-switches "List of extra switches to pass to `ps-lpr-command'.\n\nThe list element can be:\n\n   string	it should be an option for `ps-lpr-command' (which see).\n		For example: \"-o Duplex=DuplexNoTumble\"\n\n   symbol	it can be a function or variable symbol.  If it's a function\n		symbol, it should be a function with no argument.  The result\n		of the function or the variable value should be a string or a\n		list of strings.\n\n   list		the header should be a symbol function and the tail is the\n		arguments for this function.  This function should return a\n		string or a list of strings.\n\nAny other value is silently ignored.\n\nIt is recommended to set `ps-printer-name' (which see) instead of including an\nexplicit switch on this list.\n\nSee `ps-lpr-command'." (repeat :tag "PostScript lpr Switches" (choice :menu-tag "PostScript lpr Switch" :tag "PostScript lpr Switch" string symbol (repeat sexp))) ps-print-region-function "Specify a function to print the region on a PostScript printer.\nSee definition of `call-process-region' for calling conventions.  The fourth\nand the sixth arguments are both nil." (choice (const nil) function) ps-manual-feed "Non-nil means the printer will manually feed paper.\n\nIf it's nil, automatic feeding takes place." boolean ps-end-with-control-d (and ps-windows-system t) "Non-nil means insert C-d at end of PostScript file generated." ps-page-dimensions-database (purecopy (list (list 'a4 (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list 'a3 (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list 'letter (* 72 8.5) (* 72 11.0) "Letter") (list 'legal (* 72 8.5) (* 72 14.0) "Legal") (list 'letter-small (* 72 7.68) (* 72 10.16) "LetterSmall") (list 'tabloid (* 72 11.0) (* 72 17.0) "Tabloid") (list 'ledger (* 72 17.0) (* 72 11.0) "Ledger") (list 'statement (* 72 5.5) (* 72 8.5) "Statement") (list 'executive (* 72 7.5) (* 72 10.0) "Executive") (list 'a4small (* 72 7.47) (* 72 10.85) "A4Small") (list 'b4 (* 72 10.125) (* 72 14.33) "B4") (list 'b5 (* 72 7.16) (* 72 10.125) "B5") '(addresslarge 236.0 99.0 "AddressLarge") '(addresssmall 236.0 68.0 "AddressSmall") '(cuthanging13 90.0 222.0 "CutHanging13") '(cuthanging15 90.0 114.0 "CutHanging15") '(diskette 181.0 136.0 "Diskette") '(eurofilefolder 139.0 112.0 "EuropeanFilefolder") '(eurofoldernarrow 526.0 107.0 "EuroFolderNarrow") '(eurofolderwide 526.0 136.0 "EuroFolderWide") '(euronamebadge 189.0 108.0 "EuroNameBadge") '(euronamebadgelarge 223.0 136.0 "EuroNameBadgeLarge") '(filefolder 230.0 37.0 "FileFolder") '(jewelry 76.0 136.0 "Jewelry") '(mediabadge 180.0 136.0 "MediaBadge") '(multipurpose 126.0 68.0 "MultiPurpose") '(retaillabel 90.0 104.0 "RetailLabel") '(shipping 271.0 136.0 "Shipping") '(slide35mm 26.0 104.0 "Slide35mm") '(spine8mm 187.0 26.0 "Spine8mm") '(topcoated 425.19685 136.0 "TopCoatedPaper") '(topcoatedpaper 396.0 136.0 "TopcoatedPaper150") '(vhsface 205.0 127.0 "VHSFace") '(vhsspine 400.0 50.0 "VHSSpine") '(zipdisk 156.0 136.0 "ZipDisk"))) "List associating a symbolic paper type to its width, height and doc media.\nSee `ps-paper-type'." (repeat (list :tag "Paper Type" (symbol :tag "Symbol Name") (number :tag "Width in points") (number :tag "Height in points") (string :tag "Media"))) ps-paper-type 'letter "Specify the size of paper to format for.\nShould be one of the paper types defined in `ps-page-dimensions-database', for\nexample `letter', `legal' or `a4'." (symbol :validate (lambda (wid) (if (assq (widget-value wid) ps-page-dimensions-database) nil (widget-put wid :error "Unknown paper size") wid))) ps-warn-paper-type t "Non-nil means give an error if paper size is not equal to `ps-paper-type'.\n\nIt's used when `ps-spool-config' is set to `setpagedevice'." ps-landscape-mode "Non-nil means print in landscape mode." ps-print-upside-down "Non-nil means print upside-down (that is, rotated by 180 degrees)." ps-selected-pages "Specify which pages to print.\n\nIf nil, print all pages.\n\nIf a list, the lists element may be an integer or a cons cell (FROM . TO)\ndesignating FROM page to TO page; any invalid element is ignored, that is, an\ninteger lesser than one or if FROM is greater than TO.\n\nOtherwise, it's treated as nil.\n\nAfter ps-print processing `ps-selected-pages' is set to nil.  But the\nlatest `ps-selected-pages' is saved in `ps-last-selected-pages' (which\nsee).  So you can restore the latest selected pages by using\n`ps-last-selected-pages' or with the `ps-restore-selected-pages'\ncommand (which see).\n\nSee also `ps-even-or-odd-pages'." (repeat :tag "Selected Pages" (radio :tag "Page" (integer :tag "Number") (cons :tag "Range" (integer :tag "From") (integer :tag "To")))) ps-even-or-odd-pages "Specify if it prints even/odd pages.\n\nValid values are:\n\n   nil		print all pages.\n\n   `even-page'	print only even pages.\n\n   `odd-page'	print only odd pages.\n\n   `even-sheet'	print only even sheets.\n		That is, if `ps-n-up-printing' is 1, it behaves as `even-page';\n		but for values greater than 1, it'll print only the even sheet\n		of paper.\n\n   `odd-sheet'	print only odd sheets.\n		That is, if `ps-n-up-printing' is 1, it behaves as `odd-page';\n		but for values greater than 1, it'll print only the odd sheet\n		of paper.\n\nAny other value is treated as nil.\n\nIf you set `ps-selected-pages' (see it for documentation), first the pages are\nfiltered by `ps-selected-pages' and then by `ps-even-or-odd-pages'.  For\nexample, if we have:\n\n   (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))\n\nCombining with `ps-even-or-odd-pages' and `ps-n-up-printing', we have:\n\n`ps-n-up-printing' = 1:\n   `ps-even-or-odd-pages'	PAGES PRINTED\n	nil			1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 20\n	even-page		4, 6, 8, 10, 12, 14, 16, 20\n	odd-page		1, 7, 9, 13, 15\n	even-sheet		4, 6, 8, 10, 12, 14, 16, 20\n	odd-sheet		1, 7, 9, 13, 15\n\n`ps-n-up-printing' = 2:\n   `ps-even-or-odd-pages'	PAGES PRINTED\n	nil			1/4, 6/7, 8/9, 10/12, 13/14, 15/16, 20\n	even-page		4/6, 8/10, 12/14, 16/20\n	odd-page		1/7, 9/13, 15\n	even-sheet		6/7, 10/12, 15/16\n	odd-sheet		1/4, 8/9, 13/14, 20\n\nSo even-page/odd-page are about page parity and even-sheet/odd-sheet are about\nsheet parity." (choice :menu-tag "Print Even/Odd Pages" :tag "Print Even/Odd Pages" (const :tag "All Pages" nil) (const :tag "Only Even Pages" even-page) (const :tag "Only Odd Pages" odd-page) (const :tag "Only Even Sheets" even-sheet) (const :tag "Only Odd Sheets" odd-sheet)) ps-print-control-characters 'control-8-bit "Specify the printable form for control and 8-bit characters.\nThat is, instead of sending, for example, a ^D (\\004) to printer,\nit is sent the string \"^D\".\n\nValid values are:\n\n  `8-bit'         This is the value to use when you want an ASCII encoding of\n		  any control or non-ASCII character.  Control characters are\n		  encoded as \"^D\", and non-ASCII characters have an\n		  octal encoding.\n\n  `control-8-bit' This is the value to use when you want an ASCII encoding of\n		  any control character, whether it is 7 or 8-bit.\n		  European 8-bits accented characters are printed according\n		  the current font.\n\n  `control'       Only ASCII control characters have an ASCII encoding.\n		  European 8-bits accented characters are printed according\n		  the current font.\n\n  nil             No ASCII encoding.  Any character is printed according the\n		  current font.\n\nAny other value is treated as nil." (choice :menu-tag "Control Char" :tag "Control Char" (const 8-bit) (const control-8-bit) (const control) (const :tag "nil" nil)) ps-n-up-printing 1 "Specify the number of pages per sheet paper." (integer :tag "N Up Printing" :validate (lambda (wid) (if (and (< 0 (widget-value wid)) (<= (widget-value wid) 100)) nil (widget-put wid :error "Number of pages per sheet paper must be between 1 and 100.") wid))) ps-n-up-margin (/ (* 72 1.0) 2.54) "Specify the margin in points between the sheet border and n-up printing." number ps-n-up-border-p "Non-nil means a border is drawn around each page." ps-n-up-filling 'left-top "Specify how page matrix is filled on each sheet of paper.\n\nFollowing are the valid values for `ps-n-up-filling' with a filling example\nusing a 3x4 page matrix:\n\n   `left-top'   1  2  3  4         `left-bottom'    9  10 11 12\n		5  6  7  8                          5  6  7  8\n		9  10 11 12                         1  2  3  4\n\n   `right-top'  4  3  2  1         `right-bottom'   12 11 10 9\n		8  7  6  5                          8  7  6  5\n		12 11 10 9                          4  3  2  1\n\n   `top-left'   1  4  7  10        `bottom-left'    3  6  9  12\n		2  5  8  11                         2  5  8  11\n		3  6  9  12                         1  4  7  10\n\n   `top-right'  10 7  4  1         `bottom-right'   12 9  6  3\n		11 8  5  2                          11 8  5  2\n		12 9  6  3                          10 7  4  1\n\nAny other value is treated as `left-top'." (choice :menu-tag "N-Up Filling" :tag "N-Up Filling" (const left-top) (const left-bottom) (const right-top) (const right-bottom) (const top-left) (const bottom-left) (const top-right) (const bottom-right)) ps-number-of-columns (if ps-landscape-mode 2 1) "Specify the number of columns." ps-zebra-stripes "Non-nil means print zebra stripes.\nSee also documentation for `ps-zebra-stripe-height' and `ps-zebra-color'." ps-zebra-stripe-height 3 "Number of zebra stripe lines.\nSee also documentation for `ps-zebra-stripes' and `ps-zebra-color'." ps-zebra-color 0.95 "Zebra stripe gray scale or RGB color.\nSee also documentation for `ps-zebra-stripes' and `ps-zebra-stripe-height'." (choice :menu-tag "Zebra Gray/Color" :tag "Zebra Gray/Color" (number :tag "Gray Scale" :value 0.95) (string :tag "Color Name" :value "gray95") (list :tag "RGB Color" :value (0.95 0.95 0.95) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) ps-zebra-stripe-follow "Specify how zebra stripes continue on next page.\n\nVisually, valid values are (the character `+' at right of each column indicates\nthat a line is printed):\n\n		   `nil'        `follow'        `full'        `full-follow'\n   Current Page --------     -----------     ---------     ----------------\n		1  XXXXX +   1  XXXXXXXX +   1  XXXXXX +   1  XXXXXXXXXXXXX +\n		2  XXXXX +   2  XXXXXXXX +   2  XXXXXX +   2  XXXXXXXXXXXXX +\n		3  XXXXX +   3  XXXXXXXX +   3  XXXXXX +   3  XXXXXXXXXXXXX +\n		4        +   4           +   4         +   4                +\n		5        +   5           +   5         +   5                +\n		6        +   6           +   6         +   6                +\n		7  XXXXX +   7  XXXXXXXX +   7  XXXXXX +   7  XXXXXXXXXXXXX +\n		8  XXXXX +   8  XXXXXXXX +   8  XXXXXX +   8  XXXXXXXXXXXXX +\n		9  XXXXX +   9  XXXXXXXX +   9  XXXXXX +   9  XXXXXXXXXXXXX +\n		10       +   10          +\n		11       +   11          +\n		--------     -----------     ---------     ----------------\n      Next Page --------     -----------     ---------     ----------------\n		12 XXXXX +   12          +   10 XXXXXX +   10               +\n		13 XXXXX +   13 XXXXXXXX +   11 XXXXXX +   11               +\n		14 XXXXX +   14 XXXXXXXX +   12 XXXXXX +   12               +\n		15       +   15 XXXXXXXX +   13        +   13 XXXXXXXXXXXXX +\n		16       +   16          +   14        +   14 XXXXXXXXXXXXX +\n		17       +   17          +   15        +   15 XXXXXXXXXXXXX +\n		18 XXXXX +   18          +   16 XXXXXX +   16               +\n		19 XXXXX +   19 XXXXXXXX +   17 XXXXXX +   17               +\n		20 XXXXX +   20 XXXXXXXX +   18 XXXXXX +   18               +\n		21       +   21 XXXXXXXX +\n		22       +   22          +\n		--------     -----------     ---------     ----------------\n\nAny other value is treated as nil." (choice :menu-tag "Zebra Stripe Follow" :tag "Zebra Stripe Follow" (const :tag "Always Restart" nil) (const :tag "Continue on Next Page" follow) (const :tag "Print Only Full Stripe" full) (const :tag "Continue on Full Stripe" full-follow)) ps-line-number "Non-nil means print line number." ps-line-number-step "Specify the interval that line number is printed.\n\nFor example, `ps-line-number-step' is set to 2, the printing will look like:\n\n   1 one line\n     one line\n   3 one line\n     one line\n   5 one line\n     one line\n     ...\n\nValid values are:\n\n   integer	an integer that specifies the interval that line number is\n		printed.  If it's lesser than or equal to zero, it's used the\n		value 1.\n\n   `zebra'	specifies that only the line number of the first line in a\n		zebra stripe is to be printed.\n\nAny other value is treated as `zebra'." (choice :menu-tag "Line Number Step" :tag "Line Number Step" (integer :tag "Step Interval") (const :tag "Synchronize Zebra" zebra)) ps-line-number-start "Specify the starting point in the interval given by `ps-line-number-step'.\n\nFor example, if `ps-line-number-step' is set to 3 and `ps-line-number-start' is\nset to 3, the printing will look like:\n\n      one line\n      one line\n    3 one line\n      one line\n      one line\n    6 one line\n      one line\n      one line\n    9 one line\n      one line\n      ...\n\nThe values for `ps-line-number-start':\n\n   * If `ps-line-number-step' is an integer, must be between 1 and the value of\n     `ps-line-number-step' inclusive.\n\n   * If `ps-line-number-step' is set to `zebra', must be between 1 and the\n     value of `ps-zebra-strip-height' inclusive.  Use this combination if you\n     wish that line number be relative to zebra stripes." (integer :tag "Start Step Interval") ps-print-background-image "EPS image list to be printed on background.\n\nThe elements are:\n\n   (FILENAME X Y XSCALE YSCALE ROTATION PAGES...)\n\nFILENAME is a file name which contains an EPS image or some PostScript\nprogramming like EPS.\nFILENAME is ignored, if it doesn't exist or is read protected.\n\nX and Y are relative positions on paper to put the image.\nIf X and Y are nil, the image is centered on paper.\n\nXSCALE and YSCALE are scale factor to be applied to image before printing.\nIf XSCALE and YSCALE are nil, the original size is used.\n\nROTATION is the image rotation angle; if nil, the default is 0.\n\nPAGES designates the page to print background image.\nPAGES may be a number or a cons cell (FROM . TO) designating FROM page to TO\npage.\nIf PAGES is nil, print background image on all pages.\n\nX, Y, XSCALE, YSCALE and ROTATION may be a floating point number, an integer\nnumber or a string.  If it is a string, the string should contain PostScript\nprogramming that returns a float or integer value.\n\nFor example, if you wish to print an EPS image on all pages do:\n\n   '((\"~/images/EPS-image.ps\"))" (repeat (list (file :tag "EPS File") (choice :tag "X" (const :tag "default" nil) number string) (choice :tag "Y" (const :tag "default" nil) number string) (choice :tag "X Scale" (const :tag "default" nil) number string) (choice :tag "Y Scale" (const :tag "default" nil) number string) (choice :tag "Rotation" (const :tag "default" nil) number string) (repeat :tag "Pages" :inline t (radio (integer :tag "Page") (cons :tag "Range" (integer :tag "From") (integer :tag "To")))))) ps-print-background-text "Text list to be printed on background.\n\nThe elements are:\n\n   (STRING X Y FONT FONTSIZE GRAY ROTATION PAGES...)\n\nSTRING is the text to be printed on background.\n\nX and Y are positions on paper to put the text.\nIf X and Y are nil, the text is positioned at lower left corner.\n\nFONT is a font name to be used on printing the text.\nIf nil, \"Times-Roman\" is used.\n\nFONTSIZE is font size to be used, if nil, 200 is used.\n\nGRAY is the text gray factor (should be very light like 0.8).\nIf nil, the default is 0.85.\n\nROTATION is the text rotation angle; if nil, the angle is given by the diagonal\nfrom lower left corner to upper right corner.\n\nPAGES designates the page to print background text.\nPAGES may be a number or a cons cell (FROM . TO) designating FROM page to TO\npage.\nIf PAGES is nil, print background text on all pages.\n\nX, Y, FONTSIZE, GRAY and ROTATION may be a floating point number, an integer\nnumber or a string.  If it is a string, the string should contain PostScript\nprogramming that returns a float or integer value.\n\nFor example, if you wish to print text \"Preliminary\" on all pages do:\n\n   '((\"Preliminary\"))" (repeat (list (string :tag "Text") (choice :tag "X" (const :tag "default" nil) number string) (choice :tag "Y" (const :tag "default" nil) number string) (choice :tag "Font" (const :tag "default" nil) string) (choice :tag "Fontsize" (const :tag "default" nil) number string) (choice :tag "Gray" (const :tag "default" nil) number string) (choice :tag "Rotation" (const :tag "default" nil) number string) (repeat :tag "Pages" :inline t (radio (integer :tag "Page") (cons :tag "Range" (integer :tag "From") (integer :tag "To")))))) ps-left-margin (/ (* 72 2.0) 2.54) "Left margin in points (1/72 inch)." ps-right-margin (/ (* 72 2.0) 2.54) "Right margin in points (1/72 inch)." ps-inter-column (/ (* 72 2.0) 2.54) "Horizontal space between columns in points (1/72 inch)." ps-bottom-margin (/ (* 72 1.5) 2.54) "Bottom margin in points (1/72 inch)." ps-top-margin (/ (* 72 1.5) 2.54) "Top margin in points (1/72 inch)." ps-header-offset (/ (* 72 1.0) 2.54) "Vertical space in points (1/72 inch) between the main text and the header." ps-header-line-pad 0.15 "Portion of a header title line height to insert.\nThe insertion is done between the header frame and the text it contains,\nboth in the vertical and horizontal directions." ps-footer-offset (/ (* 72 1.0) 2.54) "Vertical space in points (1/72 inch) between the main text and the footer." ps-footer-line-pad 0.15 "Portion of a footer title line height to insert.\nThe insertion is done between the footer frame and the text it contains,\nboth in the vertical and horizontal directions." ps-print-header "Non-nil means print a header at the top of each page.\nBy default, the header displays the buffer name, page number, and, if the\nbuffer is visiting a file, the file's directory.  Headers are customizable by\nchanging variables `ps-left-header' and `ps-right-header'." ps-print-header-frame "Non-nil means draw a gaudy frame around the header." ps-header-frame-alist '((fore-color . 0.0) (back-color . 0.9) (border-width . 0.4) (border-color . 0.0) (shadow-color . 0.0)) "Specify header frame properties alist.\n\nValid frame properties are:\n\n   `fore-color'		Specify the foreground frame color.\n			It should be a float number between 0.0 (black color)\n			and 1.0 (white color), a string which is a color name,\n			or a list of 3 float numbers which corresponds to the\n			Red Green Blue color scale, each float number between\n			0.0 (dark color) and 1.0 (bright color).\n\n   `back-color'		Specify the background frame color (similar to\n			`fore-color').\n\n   `shadow-color'	Specify the shadow color (similar to `fore-color').\n\n   `border-color'	Specify the border color (similar to `fore-color').\n\n   `border-width'	Specify the border width.\n\nAny other property is ignored.\n\nDon't change this alist directly, instead use customization, or `ps-value',\n`ps-get', `ps-put' and `ps-del' functions (see them for documentation)." (repeat (choice :menu-tag "Header Frame Element" :tag #1="" (cons :tag "Foreground Color" :format "%v" (const :format #1# fore-color) (choice :menu-tag "Foreground Color" :tag "Foreground Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Background Color" :format "%v" (const :format #1# back-color) (choice :menu-tag "Background Color" :tag "Background Color" (number :tag "Gray Scale" :value 0.9) (string :tag "Color Name" :value "gray90") (list :tag "RGB Color" :value (0.9 0.9 0.9) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Border Width" :format "%v" (const :format #1# border-width) (number :tag "Border Width" :value 0.4)) (cons :tag "Border Color" :format "%v" (const :format #1# border-color) (choice :menu-tag "Border Color" :tag "Border Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Shadow Color" :format "%v" (const :format #1# shadow-color) (choice :menu-tag "Shadow Color" :tag "Shadow Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))))) ps-header-lines 2 "Number of lines to display in page header, when generating PostScript." integer ps-print-footer "Non-nil means print a footer at the bottom of each page.\nBy default, the footer displays page number.\nFooters are customizable by changing variables `ps-left-footer' and\n`ps-right-footer'." ps-print-footer-frame "Non-nil means draw a gaudy frame around the footer." ps-footer-frame-alist '((fore-color . 0.0) (back-color . 0.9) (border-width . 0.4) (border-color . 0.0) (shadow-color . 0.0)) "Specify footer frame properties alist.\n\nDon't change this alist directly, instead use customization, or `ps-value',\n`ps-get', `ps-put' and `ps-del' functions (see them for documentation).\n\nSee also `ps-header-frame-alist' for documentation." (repeat (choice :menu-tag "Header Frame Element" :tag #1# (cons :tag "Foreground Color" :format "%v" (const :format #1# fore-color) (choice :menu-tag "Foreground Color" :tag "Foreground Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Background Color" :format "%v" (const :format #1# back-color) (choice :menu-tag "Background Color" :tag "Background Color" (number :tag "Gray Scale" :value 0.9) (string :tag "Color Name" :value "gray90") (list :tag "RGB Color" :value (0.9 0.9 0.9) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Border Width" :format "%v" (const :format #1# border-width) (number :tag "Border Width" :value 0.4)) (cons :tag "Border Color" :format "%v" (const :format #1# border-color) (choice :menu-tag "Border Color" :tag "Border Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Shadow Color" :format "%v" (const :format #1# shadow-color) (choice :menu-tag "Shadow Color" :tag "Shadow Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))))) ps-footer-lines "Number of lines to display in page footer, when generating PostScript." ps-print-only-one-header "Non-nil means print only one header/footer at the top/bottom of each page.\nThis is useful when printing more than one column, so it is possible to have\nonly one header/footer over all columns or one header/footer per column.\nSee also `ps-print-header' and `ps-print-footer'." ps-switch-header 'duplex "Specify if headers/footers are switched or not.\n\nValid values are:\n\nnil	Never switch headers/footers.\n\nt	Always switch headers/footers.\n\nduplex	Switch headers/footers only when duplexing is on, that is, when\n	`ps-spool-duplex' is non-nil.\n\nAny other value is treated as t.\n\nSee also `ps-print-header' and `ps-print-footer'." (choice :menu-tag "Switch Header/Footer" :tag "Switch Header/Footer" (const :tag "Never Switch" nil) (const :tag "Always Switch" t) (const :tag "Switch When Duplexing" duplex)) ps-show-n-of-n "Non-nil means show page numbers as N/M, meaning page N of M.\nNOTE: page numbers are displayed as part of headers,\n      see variable `ps-print-header'." ps-spool-config (if ps-windows-system nil 'lpr-switches) "Specify who is responsible for setting duplex and page size.\n\nValid values are:\n\n  `lpr-switches'    duplex and page size are configured by `ps-lpr-switches'.\n		    Don't forget to set `ps-lpr-switches' to select duplex\n		    printing for your printer.\n\n  `setpagedevice'   duplex and page size are configured by ps-print using the\n		    setpagedevice PostScript operator.\n\n  nil               duplex and page size are configured by ps-print *not* using\n		    the setpagedevice PostScript operator.\n\nAny other value is treated as nil.\n\nWARNING: The setpagedevice PostScript operator affects ghostview utility when\n	 viewing file generated using landscape.  Also on some printers,\n	 setpagedevice affects zebra stripes; on other printers, setpagedevice\n	 affects the left margin.\n	 Besides all that, if your printer does not have the paper size\n	 specified by setpagedevice, your printing will be aborted.\n	 So, if you need to use setpagedevice, set `ps-spool-config' to\n	 `setpagedevice', generate a test file and send it to your printer; if\n	 the printed file isn't OK, set `ps-spool-config' to nil." (choice :menu-tag "Spool Config" :tag "Spool Config" (const lpr-switches) (const setpagedevice) (const :tag "nil" nil)) ps-spool-duplex "Non-nil generates PostScript for a two-sided printer.\nFor a duplex printer, the `ps-spool-*' and `ps-print-*' commands will insert\nblank pages as needed between print jobs so that the next buffer printed will\nstart on the right page.  Also, if headers are turned on, the headers will be\nreversed on duplex printers so that the page numbers fall to the left on\neven-numbered pages.\n\nSee also `ps-spool-tumble'." ps-spool-tumble "Specify how the page images on opposite sides of a sheet are oriented.\nIf `ps-spool-tumble' is nil, produces output suitable for binding on the left\nor right.  If `ps-spool-tumble' is non-nil, produces output suitable for\nbinding at the top or bottom.\n\nIt has effect only when `ps-spool-duplex' is non-nil." ps-font-info-database '((Courier (fonts (normal . "Courier") (bold . "Courier-Bold") (italic . "Courier-Oblique") (bold-italic . "Courier-BoldOblique")) (size . 10.0) (line-height . 10.55) (space-width . 6.0) (avg-char-width . 6.0)) (Helvetica (fonts (normal . "Helvetica") (bold . "Helvetica-Bold") (italic . "Helvetica-Oblique") (bold-italic . "Helvetica-BoldOblique")) (size . 10.0) (line-height . 11.56) (space-width . 2.78) (avg-char-width . 5.09243)) (Times (fonts (normal . "Times-Roman") (bold . "Times-Bold") (italic . "Times-Italic") (bold-italic . "Times-BoldItalic")) (size . 10.0) (line-height . 11.0) (space-width . 2.5) (avg-char-width . 4.71432)) (Palatino (fonts (normal . "Palatino-Roman") (bold . "Palatino-Bold") (italic . "Palatino-Italic") (bold-italic . "Palatino-BoldItalic")) (size . 10.0) (line-height . 12.1) (space-width . 2.5) (avg-char-width . 5.08676)) (Helvetica-Narrow (fonts (normal . "Helvetica-Narrow") (bold . "Helvetica-Narrow-Bold") (italic . "Helvetica-Narrow-Oblique") (bold-italic . "Helvetica-Narrow-BoldOblique")) (size . 10.0) (line-height . 11.56) (space-width . 2.2796) (avg-char-width . 4.17579)) (NewCenturySchlbk (fonts (normal . "NewCenturySchlbk-Roman") (bold . "NewCenturySchlbk-Bold") (italic . "NewCenturySchlbk-Italic") (bold-italic . "NewCenturySchlbk-BoldItalic")) (size . 10.0) (line-height . 12.15) (space-width . 2.78) (avg-char-width . 5.31162)) (AvantGarde-Book (fonts (normal . "AvantGarde-Book") (italic . "AvantGarde-BookOblique")) (size . 10.0) (line-height . 11.77) (space-width . 2.77) (avg-char-width . 5.45189)) (AvantGarde-Demi (fonts (normal . "AvantGarde-Demi") (italic . "AvantGarde-DemiOblique")) (size . 10.0) (line-height . 12.72) (space-width . 2.8) (avg-char-width . 5.51351)) (Bookman-Demi (fonts (normal . "Bookman-Demi") (italic . "Bookman-DemiItalic")) (size . 10.0) (line-height . 11.77) (space-width . 3.4) (avg-char-width . 6.05946)) (Bookman-Light (fonts (normal . "Bookman-Light") (italic . "Bookman-LightItalic")) (size . 10.0) (line-height . 11.79) (space-width . 3.2) (avg-char-width . 5.67027)) (Symbol (fonts (normal . "Symbol")) (size . 10.0) (line-height . 13.03) (space-width . 2.5) (avg-char-width . 3.24324)) (Zapf-Dingbats (fonts (normal . "Zapf-Dingbats")) (size . 10.0) (line-height . 9.63) (space-width . 2.78) (avg-char-width . 2.78)) (ZapfChancery-MediumItalic (fonts (normal . "ZapfChancery-MediumItalic")) (size . 10.0) (line-height . 11.45) (space-width . 2.2) (avg-char-width . 4.10811)) (Zapf-Chancery-MediumItalic (fonts (normal . "ZapfChancery-MediumItalic")) (size . 10.0) (line-height . 11.45) (space-width . 2.2) (avg-char-width . 4.10811))) "Font info database.\nEach element comprises: font family (the key), name, bold, italic, bold-italic,\nreference size, line height, space width, average character width.\nTo get the info for another specific font (say Helvetica), do the following:\n- create a new buffer\n- generate the PostScript image to a file (C-u M-x ps-print-buffer)\n- open this file and delete the leading `%' (which is the PostScript comment\n  character) from the line\n	   `% 3 cm 20 cm moveto  10/Courier ReportFontInfo  showpage'\n  to get the line\n	   `3 cm 20 cm moveto  10/Helvetica ReportFontInfo  showpage'\n- add the values to `ps-font-info-database'.\nYou can get all the fonts of YOUR printer using `ReportAllFontInfo'.\n\nNote also that ps-print DOESN'T download any font to your printer, instead it\nuses the fonts resident in your printer." (repeat (list :tag "Font Definition" (symbol :tag "Font Family") (cons :format "%v" (const :format #1# fonts) (repeat :tag "Faces" (cons (choice :menu-tag "Font Weight/Slant" :tag "Font Weight/Slant" (const normal) (const bold) (const italic) (const bold-italic) (symbol :tag "Face")) (string :tag "Font Name")))) (cons :format "%v" (const :format #1# size) (number :tag "Reference Size")) (cons :format "%v" (const :format #1# line-height) (number :tag "Line Height")) (cons :format "%v" (const :format #1# space-width) (number :tag "Space Width")) (cons :format "%v" (const :format #1# avg-char-width) (number :tag "Average Character Width")))) ps-font-family 'Courier "Font family name for ordinary text, when generating PostScript." symbol ps-font-size '(7 . 8.5) "Font size, in points, for ordinary text, when generating PostScript.\nEither a float or a cons of floats (LANDSCAPE-SIZE . PORTRAIT-SIZE)." (choice :menu-tag "Ordinary Text Font Size" :tag "Ordinary Text Font Size" (number :tag "Text Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Text Size") (number :tag "Portrait Text Size"))) ps-header-font-family 'Helvetica "Font family name for text in the header, when generating PostScript." ps-header-font-size '(10 . 12) "Font size, in points, for text in the header, when generating PostScript.\nEither a float or a cons of floats (LANDSCAPE-SIZE . PORTRAIT-SIZE)." (choice :menu-tag "Header Font Size" :tag "Header Font Size" (number :tag "Header Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Header Size") (number :tag "Portrait Header Size"))) ps-header-title-font-size '(12 . 14) "Font size, in points, for the top line of text in header, in PostScript.\nEither a float or a cons of floats (LANDSCAPE-SIZE . PORTRAIT-SIZE)." (choice :menu-tag "Header Title Font Size" :tag "Header Title Font Size" (number :tag "Header Title Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Header Title Size") (number :tag "Portrait Header Title Size"))) ps-footer-font-family 'Helvetica "Font family name for text in the footer, when generating PostScript." ps-footer-font-size '(10 . 12) "Font size, in points, for text in the footer, when generating PostScript.\nEither a float or a cons of floats (LANDSCAPE-SIZE . PORTRAIT-SIZE)." (choice :menu-tag "Footer Font Size" :tag "Footer Font Size" (number :tag "Footer Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Footer Size") (number :tag "Portrait Footer Size"))) ps-line-number-color "black" "Specify color for line-number, when generating PostScript." (choice :menu-tag "Line Number Color" :tag "Line Number Color" (number :tag "Gray Scale" :value 0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0 0 0) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) ps-line-number-font "Times-Italic" "Font for line-number, when generating PostScript." ps-line-number-font-size 6 "Font size, in points, for line number, when generating PostScript.\nEither a float or a cons of floats (LANDSCAPE-SIZE . PORTRAIT-SIZE)." (choice :menu-tag "Line Number Font Size" :tag "Line Number Font Size" (number :tag "Font Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Font Size") (number :tag "Portrait Font Size"))) ps-print-color-p (or (fboundp 'x-color-values) (fboundp 'color-instance-rgb-components)) "Specify how buffer's text color is printed.\n\nValid values are:\n\n   nil		Do not print colors.\n\n   t		Print colors.\n\n   black-white	Print colors on black/white printer.\n		See also `ps-black-white-faces'.\n\nAny other value is treated as t." (choice :menu-tag "Print Color" :tag "Print Color" (const :tag "Do NOT Print Color" nil) (const :tag "Print Always Color" t) (const :tag "Print Black/White Color" black-white)) ps-default-fg "RGB values of the default foreground color.\n\nThe `ps-default-fg' variable contains the default foreground color used by\nps-print, that is, if there is a face in a text that doesn't have a foreground\ncolor, the `ps-default-fg' color should be used.\n\nValid values are:\n\n   t		The foreground color of Emacs session will be used.\n\n   frame-parameter	The foreground-color frame parameter will be used.\n\n   NUMBER	It's a real value between 0.0 (black) and 1.0 (white) that\n		indicate the gray color.\n\n   COLOR-NAME	It's a string which contains the color name.  For example:\n		\"yellow\".\n\n   LIST		It's a list of RGB values, that is a list of three real values\n		of the form:\n\n		  (RED GREEN BLUE)\n\n		Where RED, GREEN and BLUE are reals between 0.0 (no color) and\n		1.0 (full color).\n\nAny other value is ignored and black color will be used.\n\nThis variable is used only when `ps-print-color-p' (which see) is neither nil\nnor black-white." (choice :menu-tag "Default Foreground Gray/Color" :tag "Default Foreground Gray/Color" (const :tag "Session Foreground" t) (const :tag "Frame Foreground" frame-parameter) (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) ps-default-bg "RGB values of the default background color.\n\nThe `ps-default-bg' variable contains the default background color used by\nps-print, that is, if there is a face in a text that doesn't have a background\ncolor, the `ps-default-bg' color should be used.\n\nValid values are:\n\n   t		The background color of Emacs session will be used.\n\n   frame-parameter	The background-color frame parameter will be used.\n\n   NUMBER	It's a real value between 0.0 (black) and 1.0 (white) that\n		indicate the gray color.\n\n   COLOR-NAME	It's a string which contains the color name.  For example:\n		\"yellow\".\n\n   LIST		It's a list of RGB values, that is a list of three real values\n		of the form:\n\n		  (RED GREEN BLUE)\n\n		Where RED, GREEN and BLUE are reals between 0.0 (no color) and\n		1.0 (full color).\n\nAny other value is ignored and white color will be used.\n\nThis variable is used only when `ps-print-color-p' (which see) is neither nil\nnor black-white.\n\nSee also `ps-use-face-background'." (choice :menu-tag "Default Background Gray/Color" :tag "Default Background Gray/Color" (const :tag "Session Background" t) (const :tag "Frame Background" frame-parameter) (number :tag "Gray Scale" :value 1.0) (string :tag "Color Name" :value "white") (list :tag "RGB Color" :value (1.0 1.0 1.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) ps-fg-list "Specify foreground color list.\n\nThis list is used to chose a text foreground color which is different than the\nbackground color.  It'll be used the first foreground color in `ps-fg-list'\nwhich is different from the background color.\n\nIf this list is nil, the default foreground color is used.  See\n`ps-default-fg'.\n\nThe list element valid values are:\n\n   NUMBER	It's a real value between 0.0 (black) and 1.0 (white) that\n		indicate the gray color.\n\n   COLOR-NAME	It's a string which contains the color name.  For example:\n		\"yellow\".\n\n   LIST		It's a list of RGB values, that is a list of three real values\n		of the form:\n\n		  (RED GREEN BLUE)\n\n		Where RED, GREEN and BLUE are reals between 0.0 (no color) and\n		1.0 (full color).\n\nAny other value is ignored and black color will be used.\n\nThis variable is used only when `ps-fg-validate-p' (which see) is non-nil and\nwhen `ps-print-color-p' (which see) is neither nil nor black-white." (repeat (choice :menu-tag "Foreground Gray/Color" :tag "Foreground Gray/Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) "22" ps-fg-validate-p "Non-nil means validate if foreground color is different than background.\n\nIf text foreground and background colors are equals, no text will appear.\n\nSee also `ps-fg-list'." ps-auto-font-detect "Non-nil means automatically detect bold/italic/underline face attributes.\nIf nil, we rely solely on the lists `ps-bold-faces', `ps-italic-faces', and\n`ps-underlined-faces'." ps-black-white-faces '((font-lock-builtin-face "black" nil bold) (font-lock-comment-face "gray20" nil italic) (font-lock-constant-face "black" nil bold) (font-lock-function-name-face "black" nil bold) (font-lock-keyword-face "black" nil bold) (font-lock-string-face "black" nil italic) (font-lock-type-face "black" nil italic) (font-lock-variable-name-face "black" nil bold italic) (font-lock-warning-face "black" nil bold italic)) "Specify list of face attributes to print colors on black/white printers.\n\nThe list elements are the same as defined on `ps-extend-face' (which see).\n\nThis variable is used only when `ps-print-color-p' is set to `black-white'." (repeat (list :tag "Face Specification" (face :tag "Face Symbol") (choice :menu-tag "Foreground Color" :tag "Foreground Color" (const :tag "Black" nil) (string :tag "Color Name")) (choice :menu-tag "Background Color" :tag "Background Color" (const :tag "None" nil) (string :tag "Color Name")) (repeat :inline t (choice :menu-tag "Attribute" (const bold) (const italic) (const underline) (const strikeout) (const overline) (const shadow) (const box) (const outline))))) ps-bold-faces (unless ps-print-color-p '(font-lock-function-name-face font-lock-builtin-face font-lock-variable-name-face font-lock-keyword-face font-lock-warning-face)) "A list of the (non-bold) faces that should be printed in bold font.\nThis applies to generating PostScript." (repeat face) ps-italic-faces (unless ps-print-color-p '(font-lock-variable-name-face font-lock-type-face font-lock-string-face font-lock-comment-face font-lock-warning-face)) "A list of the (non-italic) faces that should be printed in italic font.\nThis applies to generating PostScript." (repeat face) ps-underlined-faces (unless ps-print-color-p '(font-lock-function-name-face font-lock-constant-face font-lock-warning-face)) "A list of the (non-underlined) faces that should be printed underlined.\nThis applies to generating PostScript." (repeat face) ps-use-face-background "Specify if face background should be used.\n\nValid values are:\n\n   t		always use face background color.\n   nil		never use face background color.\n   (face...)	list of faces whose background color will be used.\n\nAny other value will be treated as t." (choice :menu-tag "Use Face Background" :tag "Use Face Background" (const :tag "Always Use Face Background" t) (const :tag "Never Use Face Background" nil) (repeat :menu-tag "Face Background List" :tag "Face Background List" face)) ps-left-header (list 'ps-get-buffer-name 'ps-header-dirpart) "The items to display (each on a line) on the left part of the page header.\nThis applies to generating PostScript.\n\nThe value should be a list of strings and symbols, each representing an entry\nin the PostScript array HeaderLinesLeft.\n\nStrings are inserted unchanged into the array; those representing\nPostScript string literals should be delimited with PostScript string\ndelimiters '(' and ')'.\n\nFor symbols with bound functions, the function is called and should return a\nstring to be inserted into the array.  For symbols with bound values, the value\nshould be a string to be inserted into the array.  In either case, function or\nvariable, the string value has PostScript string delimiters added to it.\n\nIf symbols are unbounded, they are silently ignored." (repeat (choice :menu-tag "Left Header" :tag "Left Header" string symbol)) ps-right-header (list "/pagenumberstring load" 'ps-time-stamp-locale-default 'ps-time-stamp-hh:mm:ss) "The items to display (each on a line) on the right part of the page header.\nThis applies to generating PostScript.\n\nSee the variable `ps-left-header' for a description of the format of this\nvariable.\n\nThere are the following basic functions implemented:\n\n   `ps-time-stamp-locale-default'	Return the locale's \"preferred\" date\n					as, for example, \"06/18/01\".\n\n   `ps-time-stamp-hh:mm:ss'		Return time as \"17:28:31\".\n\n   `ps-time-stamp-mon-dd-yyyy'		Return date as \"Jun 18 2001\".\n\n   `ps-time-stamp-yyyy-mm-dd'		Return date as \"2001-06-18\" (ISO\n					date).\n\n   `ps-time-stamp-iso8601'		Alias for `ps-time-stamp-yyyy-mm-dd'.\n\nYou can also create your own time stamp function by using `format-time-string'\n(which see)." (repeat (choice :menu-tag "Right Header" :tag "Right Header" string symbol)) ps-left-footer (list 'ps-get-buffer-name 'ps-header-dirpart) "The items to display (each on a line) on the left part of the page footer.\nThis applies to generating PostScript.\n\nThe value should be a list of strings and symbols, each representing an entry\nin the PostScript array FooterLinesLeft.\n\nStrings are inserted unchanged into the array; those representing PostScript\nstring literals should be delimited with PostScript string delimiters '(' and\n')'.\n\nFor symbols with bound functions, the function is called and should return a\nstring to be inserted into the array.  For symbols with bound values, the value\nshould be a string to be inserted into the array.  In either case, function or\nvariable, the string value has PostScript string delimiters added to it.\n\nIf symbols are unbounded, they are silently ignored." (repeat (choice :menu-tag "Left Footer" :tag "Left Footer" string symbol)) ps-right-footer (list "/pagenumberstring load" 'ps-time-stamp-locale-default 'ps-time-stamp-hh:mm:ss) "The items to display (each on a line) on the right part of the page footer.\nThis applies to generating PostScript.\n\nSee the variable `ps-left-footer' for a description of the format of this\nvariable.\n\nThere are the following basic functions implemented:\n\n   `ps-time-stamp-locale-default'	Return the locale's \"preferred\" date\n					as, for example, \"06/18/01\".\n\n   `ps-time-stamp-hh:mm:ss'		Return time as \"17:28:31\".\n\n   `ps-time-stamp-mon-dd-yyyy'		Return date as \"Jun 18 2001\".\n\n   `ps-time-stamp-yyyy-mm-dd'		Return date as \"2001-06-18\" (ISO\n					date).\n\n   `ps-time-stamp-iso8601'		Alias for `ps-time-stamp-yyyy-mm-dd'.\n\nYou can also create your own time stamp function by using `format-time-string'\n(which see)." (repeat (choice :menu-tag "Right Footer" :tag "Right Footer" string symbol)) ps-razzle-dazzle "Non-nil means report progress while formatting buffer." ps-adobe-tag "%!PS-Adobe-3.0\n" "Contains the header line identifying the output as PostScript.\nBy default, `ps-adobe-tag' contains the standard identifier.  Some printers\nrequire slightly different versions of this line." ps-build-face-reference "Non-nil means build the reference face lists.\n\nps-print sets this value to nil after it builds its internal reference lists of\nbold and italic faces.  By setting its value back to t, you can force ps-print\nto rebuild the lists the next time you invoke one of the ...-with-faces\ncommands.\n\nYou should set this value back to t after you change the attributes of any\nface, or create new faces.  Most users shouldn't have to worry about its\nsetting, though." ps-always-build-face-reference "Non-nil means always rebuild the reference face lists.\n\nIf this variable is non-nil, ps-print will rebuild its internal reference lists\nof bold and italic faces *every* time one of the ...-with-faces commands is\ncalled.  Most users shouldn't need to set this variable." ps-banner-page-when-duplexing "Non-nil means the very first page is skipped.\nIt's like the very first character of buffer (or region) is ^L (\\014)." ps-postscript-code-directory (or (if (featurep 'xemacs) (cond ((fboundp 'locate-data-directory) (funcall 'locate-data-directory "ps-print")) ((boundp 'data-directory) (symbol-value 'data-directory)) (t nil)) data-directory) (error "`ps-postscript-code-directory' isn't set properly")) "Directory where it's located the PostScript prologue file used by ps-print.\nBy default, this directory is the same as in the variable `data-directory'." directory ps-line-spacing 0 "Specify line spacing, in points, for ordinary text.\n\nEither a float or a cons of floats (LANDSCAPE-SIZE . PORTRAIT-SIZE).\n\nSee also `ps-paragraph-spacing' and `ps-paragraph-regexp'.\n\nTo get all lines with some spacing set both `ps-line-spacing' and\n`ps-paragraph-spacing' variables." (choice :menu-tag "Line Spacing For Ordinary Text" :tag "Line Spacing For Ordinary Text" (number :tag "Line Spacing") (cons :tag "Landscape/Portrait" (number :tag "Landscape Line Spacing") (number :tag "Portrait Line Spacing"))) ps-paragraph-spacing "Specify paragraph spacing, in points, for ordinary text.\n\nEither a float or a cons of floats (LANDSCAPE-SIZE . PORTRAIT-SIZE).\n\nSee also `ps-line-spacing' and `ps-paragraph-regexp'.\n\nTo get all lines with some spacing set both `ps-line-spacing' and\n`ps-paragraph-spacing' variables." (choice :menu-tag "Paragraph Spacing For Ordinary Text" :tag "Paragraph Spacing For Ordinary Text" (number :tag "Paragraph Spacing") (cons :tag "Landscape/Portrait" (number :tag "Landscape Paragraph Spacing") (number :tag "Portrait Paragraph Spacing"))) ps-paragraph-regexp "[ 	]*$" "Specify paragraph delimiter.\n\nIt should be a regexp or nil.\n\nSee also `ps-paragraph-spacing'." (choice :menu-tag "Paragraph Delimiter" (const :tag "No Delimiter" nil) (regexp :tag "Delimiter Regexp")) ps-begin-cut-regexp "Specify regexp which is start of a region to cut out when printing.\n\nAs an example, variables `ps-begin-cut-regexp' and `ps-end-cut-regexp' may be\nset to \"^Local Variables:\" and \"^End:\", respectively, in order to leave out\nsome special printing instructions from the actual print.  Special printing\ninstructions may be appended to the end of the file just like any other\nbuffer-local variables.  See section \"Local Variables in Files\" on Emacs\nmanual for more information.\n\nVariables `ps-begin-cut-regexp' and `ps-end-cut-regexp' control together what\nactually gets printed.  Both variables may be set to nil in which case no\ncutting occurs." (choice (const :tag "No Delimiter" nil) (regexp :tag "Delimiter Regexp")) ps-end-cut-regexp "Specify regexp which is end of the region to cut out when printing.\n\nSee `ps-begin-cut-regexp' for more information." (choice (const :tag "No Delimiter" nil) (regexp :tag "Delimiter Regexp"))] 14)
#@35 Latest `ps-selected-pages' value.
(defvar ps-last-selected-pages nil (#$ . 62398))
#@43 Restore latest `ps-selected-pages' value.
(defalias 'ps-restore-selected-pages #[nil "\211\207" [ps-last-selected-pages ps-selected-pages] 2 (#$ . 62487) nil])
#@34 Customization of ps-print group.
(defalias 'ps-print-customize #[nil "\300\301!\207" [customize-group ps-print] 2 (#$ . 62655) nil])
#@441 Generate and print a PostScript image of the buffer.

Interactively, when you use a prefix argument (\[universal-argument]), the command prompts the
user for a file name, and saves the PostScript image in that file instead of
sending it to the printer.

Noninteractively, the argument FILENAME is treated as follows: if it is nil,
send the image to the printer.  If FILENAME is a string, save the PostScript
image in a file with that name.
(defalias 'ps-print-buffer #[(&optional filename) "\301ed#\207" [filename ps-print-without-faces] 4 (#$ . 62795) (list (ps-print-preprint current-prefix-arg))])
#@256 Generate and print a PostScript image of the buffer.
Like `ps-print-buffer', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.
(defalias 'ps-print-buffer-with-faces #[(&optional filename) "\301ed#\207" [filename ps-print-with-faces] 4 (#$ . 63404) (list (ps-print-preprint current-prefix-arg))])
#@114 Generate and print a PostScript image of the region.
Like `ps-print-buffer', but prints just the current region.
(defalias 'ps-print-region #[(from to &optional filename) "\303	\n\304$\207" [from to filename ps-print-without-faces t] 5 (#$ . 63836) (ps-print-preprint-region current-prefix-arg)])
#@256 Generate and print a PostScript image of the region.
Like `ps-print-region', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.
(defalias 'ps-print-region-with-faces #[(from to &optional filename) "\303	\n\304$\207" [from to filename ps-print-with-faces t] 5 (#$ . 64141) (ps-print-preprint-region current-prefix-arg)])
#@243 Generate and spool a PostScript image of the buffer.
Like `ps-print-buffer' except that the PostScript image is saved in a local
buffer to be sent to the printer later.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-buffer #[nil "\300ed\"\207" [ps-spool-without-faces] 3 (#$ . 64596) nil])
#@329 Generate and spool a PostScript image of the buffer.
Like `ps-spool-buffer', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-buffer-with-faces #[nil "\300ed\"\207" [ps-spool-with-faces] 3 (#$ . 64939) nil])
#@195 Generate a PostScript image of the region and spool locally.
Like `ps-spool-buffer', but spools just the current region.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-region #[(from to) "\302	\303#\207" [from to ps-spool-without-faces t] 4 (#$ . 65376) "r"])
#@337 Generate a PostScript image of the region and spool locally.
Like `ps-spool-region', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-region-with-faces #[(from to) "\302	\303#\207" [from to ps-spool-with-faces t] 4 (#$ . 65690) "r"])
#@440 Send the spooled PostScript to the printer.

Interactively, when you use a prefix argument (\[universal-argument]), the command prompts the
user for a file name, and saves the spooled PostScript image in that file
instead of sending it to the printer.

Noninteractively, the argument FILENAME is treated as follows: if it is nil,
send the image to the printer.  If FILENAME is a string, save the PostScript
image in a file with that name.
(defalias 'ps-despool #[(&optional filename) "\301!\207" [filename ps-do-despool] 2 (#$ . 66154) (list (ps-print-preprint current-prefix-arg))])
#@182 Display the correspondence between a line length and a font size.
Done using the current ps-print setup.
Try: pr -t file | awk '{printf "%3d %s
", length($0), $0}' | sort -r | head
(defalias 'ps-line-lengths #[nil "\300 \207" [ps-line-lengths-internal] 1 (#$ . 66746) nil])
#@122 Display number of pages to print this buffer, for various font heights.
The table depends on the current ps-print setup.
(defalias 'ps-nb-pages-buffer #[(nb-lines) "\301!\207" [nb-lines ps-nb-pages] 2 (#$ . 67027) (byte-code "\300ed\"\207" [ps-count-lines-preprint] 3)])
#@121 Display number of pages to print the region, for various font heights.
The table depends on the current ps-print setup.
(defalias 'ps-nb-pages-region #[(nb-lines) "\301!\207" [nb-lines ps-nb-pages] 2 (#$ . 67306) (byte-code "\300\301 `\"\207" [ps-count-lines-preprint mark] 3)])
#@40 Used for `ps-print-quote' (which see).
(defvar ps-prefix-quote nil (#$ . 67592))
#@49 Return the current PostScript-generation setup.
(defalias 'ps-setup #[nil "\305\306\307\310\311\312	\313\260\314\315\316\n\"\315\317\"\315\320\f\"\305\321\322\323\324\325\326\327\330\305\331\332\333\334\335\305\336\337\340\341\342\343\344\305\345\346\347\350\351\305\352\305\353\305\354\305\355\305\356\357\360\361\362\305\363\364\365\366\367\370\371\372\373\374\375\376\377\201@\201A\201B\201C\201D\201E\201F\201G\201H\201I\201J\201K\201L\201M\201N\305\201O\201P\201Q\201R\305\201S\201T\201U\201V\201W\201X\201Y\201Z\201[\201\\\201]\201^\201_\201`\201a\201b\305\201c\201d\201e\305\201f\201g\305\201h\201i\201j\201k\201l\201m\257q\313#)\207" [ps-prefix-quote ps-print-version emacs-version ps-windows-system ps-lp-system nil mapconcat ps-print-quote "\n;;; (" "Emacs" ") ps-print version " "\n" ";; internal vars" ps-comment-string "emacs-version     " "ps-windows-system " "ps-lp-system      " (25 . ps-print-color-p) (25 . ps-lpr-command) (25 . ps-lpr-switches) (25 . ps-printer-name) (25 . ps-printer-name-option) (25 . ps-print-region-function) (25 . ps-manual-feed) (25 . ps-end-with-control-d) (23 . ps-paper-type) (23 . ps-warn-paper-type) (23 . ps-landscape-mode) (23 . ps-print-upside-down) (23 . ps-number-of-columns) (23 . ps-zebra-stripes) (23 . ps-zebra-stripe-height) (23 . ps-zebra-stripe-follow) (23 . ps-zebra-color) (23 . ps-line-number) (23 . ps-line-number-step) (23 . ps-line-number-start) (17 . ps-razzle-dazzle) (17 . ps-default-bg) (17 . ps-default-fg) (17 . ps-fg-validate-p) (17 . ps-fg-list) (23 . ps-use-face-background) (28 . ps-print-control-characters) (26 . ps-print-background-image) (25 . ps-print-background-text) (29 . ps-error-handler-message) (29 . ps-user-defined-prologue) (29 . ps-print-prologue-header) (29 . ps-postscript-code-directory) (29 . ps-adobe-tag) (30 . ps-left-margin) (30 . ps-right-margin) (30 . ps-inter-column) (30 . ps-bottom-margin) (30 . ps-top-margin) (30 . ps-print-only-one-header) (30 . ps-switch-header) (30 . ps-print-header) (30 . ps-header-lines) (30 . ps-header-offset) (30 . ps-header-line-pad) (30 . ps-print-header-frame) (30 . ps-header-frame-alist) (30 . ps-print-footer) (30 . ps-footer-lines) (30 . ps-footer-offset) (30 . ps-footer-line-pad) (30 . ps-print-footer-frame) (30 . ps-footer-frame-alist) (30 . ps-show-n-of-n) (30 . ps-spool-config) (30 . ps-spool-duplex) (30 . ps-spool-tumble) (30 . ps-banner-page-when-duplexing) (30 . ps-left-header) (30 . ps-right-header) (30 . ps-left-footer) (30 . ps-right-footer) (23 . ps-n-up-printing) (23 . ps-n-up-margin) (23 . ps-n-up-border-p) (23 . ps-n-up-filling) (26 . ps-multibyte-buffer) (26 . ps-font-family) (26 . ps-font-size) (26 . ps-header-font-family) (26 . ps-header-font-size) (26 . ps-header-title-font-size) (26 . ps-footer-font-family) (26 . ps-footer-font-size) (26 . ps-line-number-color) (26 . ps-line-number-font) (26 . ps-line-number-font-size) (26 . ps-line-spacing) (26 . ps-paragraph-spacing) (26 . ps-paragraph-regexp) (26 . ps-begin-cut-regexp) (26 . ps-end-cut-regexp) (23 . ps-even-or-odd-pages) (23 . ps-selected-pages) (23 . ps-last-selected-pages) (31 . ps-build-face-reference) (31 . ps-always-build-face-reference) (20 . ps-auto-font-detect) (20 . ps-bold-faces) (20 . ps-italic-faces) (20 . ps-underlined-faces) (20 . ps-black-white-faces) "      )\n\n;; The following customized variables have long lists and are seldom modified:\n;;    ps-page-dimensions-database\n;;    ps-font-info-database\n\n;;; ps-print - end of settings\n"] 115 (#$ . 67679)])
#@701 Quote ELT for printing (used for showing settings).

If ELT is nil, return an empty string.
If ELT is string, return it.
Otherwise, ELT should be a cons (LEN . SYM) where SYM is a variable symbol and
LEN is the field length where SYM name will be inserted.  The variable
`ps-prefix-quote' is used to form the string, if `ps-prefix-quote' is nil, it's
used "(setq " as prefix; otherwise, it's used "      ".  So, the string
generated is:

   * If `ps-prefix-quote' is nil:
      "(setq SYM-NAME   SYM-VALUE"
	     |<------->|
		 LEN

   * If `ps-prefix-quote' is non-nil:
      "      SYM-NAME   SYM-VALUE"
	     |<------->|
		 LEN

If `ps-prefix-quote' is nil, it's set to t after generating string.
(defalias 'ps-print-quote #[(elt) ";\203\207:\203S@\250\203SA9\203S\306A!\203S@A\307\n!\211G\nJ\2038\310\202<\311\312	\fV\203L\313	\fZ\314\"\202M\315\316
!R-\207\317\207" [elt col sym key len val boundp symbol-name "      " t "(setq " make-string 32 " " ps-value-string "" ps-prefix-quote] 6 (#$ . 71245)])
#@67 Return a string representation of VAL.  Used by `ps-print-quote'.
(defalias 'ps-value-string #[(val) "\204\301\207\302=\203\303\2079\204<\203\304\305\"\207\304\306\"\207" [val "nil" t "t" format "'%S" "%S"] 3 (#$ . 72286)])
#@48 Return a comment string like ";; STR = VALUE".
(defalias 'ps-comment-string #[(str value) "\302\303\304	!#\207" [str value format ";; %s = %s" ps-value-string] 5 (#$ . 72530)])
#@72 Return value from association list ALIST-SYM which car is `eq' to KEY.
(defalias 'ps-value #[(alist-sym key) "	J\236A\207" [key alist-sym] 2 (#$ . 72714)])
#@74 Return element from association list ALIST-SYM which car is `eq' to KEY.
(defalias 'ps-get #[(alist-sym key) "	J\236\207" [key alist-sym] 2 (#$ . 72877)])
#@170 Store element (KEY . VALUE) into association list ALIST-SYM.
If KEY already exists in ALIST-SYM, modify cdr to VALUE.
It can be retrieved with `(ps-get ALIST-SYM KEY)'.
(defalias 'ps-put #[(alist-sym key value) "	J\236\211\203\n\241\210\202B	\n	JBL\210\n)\207" [key alist-sym elt: value] 4 (#$ . 73040)])
#@68 Delete by side effect element KEY from association list ALIST-SYM.
(defalias 'ps-del #[(alist-sym key) "J\304\211\2031\n@@=\203(	\203	\nA\241\210\202\"\nAL\210\304\211\202\n\nA\211\204	*J\207" [alist-sym old a:list: key nil] 3 (#$ . 73361)])
#@67 Return the locale's "preferred" date as, for example, "06/18/01".
(defalias 'ps-time-stamp-locale-default #[nil "\300\301!\207" [format-time-string "%x"] 2 (#$ . 73626)])
#@31 Return date as "Jun 18 2001".
(defalias 'ps-time-stamp-mon-dd-yyyy #[nil "\300\301!\207" [format-time-string "%b %d %Y"] 2 (#$ . 73803)])
#@41 Return date as "2001-06-18" (ISO date).
(defalias 'ps-time-stamp-yyyy-mm-dd #[nil "\300\301!\207" [format-time-string "%Y-%m-%d"] 2 (#$ . 73947)])
(defalias 'ps-time-stamp-iso8601 'ps-time-stamp-yyyy-mm-dd)
#@28 Return time as "17:28:31".
(defalias 'ps-time-stamp-hh:mm:ss #[nil "\300\301!\207" [format-time-string "%T"] 2 (#$ . 74160)])
(defvar ps-print-color-scale 1.0)
(defalias 'ps-color-scale #[(color) "\301\302\303!\"\207" [color mapcar #[(value) "	\245\207" [value ps-print-color-scale] 2] ps-color-values] 4])
(defalias 'ps-face-underlined-p #[(face) "\302!\206		>\207" [face ps-underlined-faces face-underline-p] 2])
#@244 If prologue FILENUMBER exists and is readable, return contents as string.

Note: No major/minor-mode is activated and no local variables are evaluated for
      FILENUMBER, but proper EOL-conversion and character interpretation is
      done!
(defalias 'ps-prologue-file #[(filenumber) "\304\305\306\307\"	\"!\310\n!\203*\311\n!\203*\312\313!rq\210\314\216\315\n!\210\316 +\202.\317\320\n\")\207" [filenumber ps-postscript-code-directory filename #1=#:temp-buffer convert-standard-filename expand-file-name format "ps-prin%d.ps" file-exists-p file-readable-p generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents buffer-string error "ps-print PostScript prologue `%s' file was not found"] 5 (#$ . 74587)])
(defvar ps-mark-code-directory nil)
#@36 ps-print PostScript error handler.
(defvar ps-print-prologue-0 "" (#$ . 75419))
#@31 ps-print PostScript prologue.
(defvar ps-print-prologue-1 "" (#$ . 75505))
(defvar ps-source-buffer nil)
(defvar ps-spool-buffer-name "*PostScript*")
(defvar ps-spool-buffer nil)
(defvar ps-output-head nil)
(defvar ps-output-tail nil)
(defvar ps-page-postscript 0)
(defvar ps-page-order 0)
(defvar ps-page-sheet 0)
(defvar ps-page-column 0)
(defvar ps-page-printed 0)
(defvar ps-page-n-up 0)
(defvar ps-lines-printed 0)
(defvar ps-showline-count 1)
(defvar ps-first-page nil)
(defvar ps-last-page nil)
(defvar ps-print-page-p t)
(defvar ps-control-or-escape-regexp nil)
(defvar ps-n-up-on nil)
(defvar ps-background-pages nil)
(defvar ps-background-all-pages nil)
(defvar ps-background-text-count 0)
(defvar ps-background-image-count 0)
(defvar ps-current-font 0)
(defvar ps-default-foreground nil)
(defvar ps-default-background nil)
(defvar ps-default-color nil)
(defvar ps-current-color nil)
(defvar ps-current-bg nil)
(defvar ps-foreground-list nil)
(defvar ps-zebra-stripe-full-p nil)
(defvar ps-razchunk 0)
(defvar ps-color-p nil)
#@110 Vertical and horizontal space between the header frame and the text.
This is in units of points (1/72 inch).
(defvar ps-header-pad 0 (#$ . 76548))
#@110 Vertical and horizontal space between the footer frame and the text.
This is in units of points (1/72 inch).
(defvar ps-footer-pad 0 (#$ . 76702))
(defalias 'ps-page-dimensions-get-width '(macro . #[(dims) "\301\302E\207" [dims nth 0] 3]))
(defalias 'ps-page-dimensions-get-height '(macro . #[(dims) "\301\302E\207" [dims nth 1] 3]))
(defalias 'ps-page-dimensions-get-media '(macro . #[(dims) "\301\302E\207" [dims nth 2] 3]))
(defvar ps-landscape-page-height nil)
(defvar ps-print-width nil)
(defvar ps-print-height nil)
(defvar ps-height-remaining nil)
(defvar ps-width-remaining nil)
(defvar ps-font-size-internal nil)
(defvar ps-header-font-size-internal nil)
(defvar ps-header-title-font-size-internal nil)
(defvar ps-footer-font-size-internal nil)
(defvar ps-line-spacing-internal nil)
(defvar ps-paragraph-spacing-internal nil)
#@362 Alist of symbolic faces used for black/white PostScript printers.
An element of this list has the same form as `ps-print-face-extension-alist'
(which see).

Don't change this list directly; instead,
use `ps-extend-face' and `ps-extend-face-list'.
See documentation for `ps-extend-face' for valid extension symbol.
See also documentation for `ps-print-color-p'.
(defvar ps-black-white-faces-alist nil (#$ . 77547))
#@573 Alist of symbolic faces *WITH* extension features (box, outline, etc).
An element of this list has the following form:

   (FACE . [BITS FG BG])

   FACE is a symbol denoting a face name
   BITS is a bit vector, where each bit correspond
      to a feature (bold, underline, etc)
      (see documentation for `ps-print-face-map-alist')
   FG foreground color (string or nil)
   BG background color (string or nil)

Don't change this list directly; instead,
use `ps-extend-face' and `ps-extend-face-list'.
See documentation for `ps-extend-face' for valid extension symbol.
(defvar ps-print-face-extension-alist nil (#$ . 77968))
#@296 Alist of symbolic faces *WITHOUT* extension features (box, outline, etc).

An element of this list has the same form as an element of
`ps-print-face-extension-alist'.

Don't change this list directly; this list is used by `ps-face-attributes',
`ps-map-face' and `ps-build-reference-face-lists'.
(defvar ps-print-face-alist nil (#$ . 78603))
#@106 Alist of all features and the corresponding bit mask.
Each symbol correspond to one bit in a bit vector.
(defconst ps-print-face-map-alist '((bold . 1) (italic . 2) (underline . 4) (strikeout . 8) (overline . 16) (shadow . 32) (box . 64) (outline . 128)) (#$ . 78951))
#@389 Extend face in ALIST-SYM.

If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged
with face extension in ALIST-SYM; otherwise, overrides.

If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
otherwise, it should be an alist symbol.

The elements in FACE-EXTENSION-LIST are like those for `ps-extend-face'.

See `ps-extend-face' for documentation.
(defalias 'ps-extend-face-list #[(face-extension-list &optional merge-p alist-sym) "\205\303@	\n#\210A\211\204\304\207" [face-extension-list merge-p alist-sym ps-extend-face nil] 5 (#$ . 79227)])
#@989 Extend face in ALIST-SYM.

If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged
with face extensions in ALIST-SYM; otherwise, overrides.

If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
otherwise, it should be an alist symbol.

The elements of FACE-EXTENSION list have the form:

   (FACE-NAME FOREGROUND BACKGROUND EXTENSION...)

FACE-NAME is a face name symbol.

FOREGROUND and BACKGROUND may be nil or a string that denotes the
foreground and background colors respectively.

EXTENSION is one of the following symbols:
   bold      - use bold font.
   italic    - use italic font.
   underline - put a line under text.
   strikeout - like underline, but the line is in middle of text.
   overline  - like underline, but the line is over the text.
   shadow    - text will have a shadow.
   box       - text will be surrounded by a box.
   outline   - print characters as hollow outlines.

If EXTENSION is any other symbol, it is ignored.
(defalias 'ps-extend-face #[(face-extension &optional merge-p alist-sym) "\204\306\307	8	A@	@\211J\236A\211\206 \310\311\312\211#\313	!\311\203:\314\311H\"\202<I\210\203L\203R;\203R\315I\210\203`\n\203f\n;\203f\307\nI\210
\206s\fBJBL.\207" [alist-sym face-extension background foreground face-name ps-face ps-print-face-extension-alist 2 vector 0 nil ps-extension-bit logior 1 face-vector face-bit merge-p] 6 (#$ . 79826)])
(defalias 'ps-extension-bit #[(face-extension) "\303	AA	A\211\203\304	@\n\236A\206\303\"\202)\207" [face-bit face-extension ps-print-face-map-alist 0 logior] 4])
(defalias 'ps-font-lock-face-attributes #[nil "\306\307!\205\203\307J\205\203\306\310!\205\203\310J\205\202\211A@\211@\211\311N\204~	A@\312	8\313	8\314	8\315	8\316\211\203K\317BB\203W\320BB\203a\321\322\"
\203j\321\323\"\f\203s\321\324\"\325\n\326DC\316#\210.*\202)\207" [face-attributes face-attribute face face-spec underline-p italic-p boundp font-lock-mode font-lock-face-attributes saved-face 2 3 4 5 nil :foreground :background append (:weight bold) (:slant italic) (:underline t) custom-declare-face t bold-p background foreground] 7])
(defalias 'ps-message-log-max #[nil "\301 \302\230?\205\303\300!\205\207" [message-log-max buffer-name "*Messages*" boundp] 2])
(defvar ps-print-hook nil)
(defvar ps-print-begin-sheet-hook nil)
(defvar ps-print-begin-page-hook nil)
(defvar ps-print-begin-column-hook nil)
(defalias 'ps-print-without-faces #[(from to &optional filename region-p) "\304	\n#\210\305!\207" [from to region-p filename ps-spool-without-faces ps-do-despool] 4])
(defalias 'ps-spool-without-faces #[(from to &optional region-p) "\304 \305\306!\210\307	\n#\210\310p\n\311$)\207" [message-log-max region-p from to ps-message-log-max run-hooks ps-print-hook ps-printing-region ps-generate ps-generate-postscript] 5])
(defalias 'ps-print-with-faces #[(from to &optional filename region-p) "\304	\n#\210\305!\207" [from to region-p filename ps-spool-with-faces ps-do-despool] 4])
(defalias 'ps-spool-with-faces #[(from to &optional region-p) "\304 \305\306!\210\307	\n#\210\310p\n\311$)\207" [message-log-max region-p from to ps-message-log-max run-hooks ps-print-hook ps-printing-region ps-generate ps-generate-postscript-with-faces] 5])
(defalias 'ps-count-lines-preprint #[(from to) "\203	\204\f\303\304!\210\305 \306	\")C\207" [from to message-log-max error "The mark is not set now" ps-message-log-max count-lines] 3])
(defalias 'ps-count-lines #[(from to) "\302	\"\212	b\210i\303U\203\304\202\303)\\\207" [from to count-lines 0 1] 3])
#@386 Variable used to indicate the region that ps-print is printing.
It is a cons, the car of which is the line number where the region begins, and
its cdr is the total number of lines in the buffer.  Formatting functions can
use this information to print the original line number (and not the number of
lines printed), and to indicate in the header that the printout is of a partial
file.
(defvar ps-printing-region nil (#$ . 83496))
#@46 Non-nil means ps-print is printing a region.
(defvar ps-printing-region-p nil (#$ . 83932))
(defalias 'ps-printing-region #[(region-p from to) "\203\305e\n^\"\202\306\305ed\"B\211\207" [region-p ps-printing-region-p from to ps-printing-region ps-count-lines 1] 4])
(defalias 'ps-font-alist #[(font-sym) "\301N\207" [font-sym fonts] 2])
(put 'ps-font-alist 'byte-optimizer 'byte-compile-inline-expand)
#@71 Font family name for text of `font-type', when generating PostScript.
(defalias 'ps-font #[(font-sym font-type) "\211\304N)\305	\236A	\203	@@=\204	A\211\204	@A\206&\n*\207" [font-sym font-list normal-font font-type fonts normal] 3 (#$ . 84349)])
(defalias 'ps-fonts #[(font-sym) "\301\302\211\303N)\"\207" [font-sym mapcar cdr fonts] 5])
(put 'ps-fonts 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-font-number #[(font-sym font-type) "\302	\211\303N)\"\206
\304\207" [font-type font-sym ps-alist-position fonts 0] 5])
(put 'ps-font-number 'byte-optimizer 'byte-compile-inline-expand)
#@287 The height of a line, for generating PostScript.
This is the value that ps-print uses to determine the height,
y-dimension, of the lines of text it has printed, and thus affects the
point at which page-breaks are placed.
The line-height is *not* the same as the point size of the font.
(defalias 'ps-line-height #[(font-sym) "\301N\207" [font-sym line-height] 2 (#$ . 84971)])
(put 'ps-line-height 'byte-optimizer 'byte-compile-inline-expand)
#@301 The height of a `title' line, for generating PostScript.
This is the value that ps-print uses to determine the height,
y-dimension, of the lines of text it has printed, and thus affects the
point at which page-breaks are placed.
The title-line-height is *not* the same as the point size of the font.
(defalias 'ps-title-line-height #[(font-sym) "\301N\207" [font-sym title-line-height] 2 (#$ . 85422)])
(put 'ps-title-line-height 'byte-optimizer 'byte-compile-inline-expand)
#@108 The width of a space character, for generating PostScript.
This value is used in expanding tab characters.
(defalias 'ps-space-width #[(font-sym) "\301N\207" [font-sym space-width] 2 (#$ . 85905)])
(put 'ps-space-width 'byte-optimizer 'byte-compile-inline-expand)
#@237 The average width, in points, of a character, for generating PostScript.
This is the value that ps-print uses to determine the length,
x-dimension, of the text it has printed, and thus affects the point at
which long lines wrap around.
(defalias 'ps-avg-char-width #[(font-sym) "\301N\207" [font-sym avg-char-width] 2 (#$ . 86177)])
(put 'ps-avg-char-width 'byte-optimizer 'byte-compile-inline-expand)
#@182 Display the correspondence between a line length and a font size.
Done using the current ps-print setup.
Try: pr -t file | awk '{printf "%3d %s
", length($0), $0}' | sort -r | head
(defalias 'ps-line-lengths-internal #[nil "\206\306\307!	\206\306\310!\n\206\306\311!\206\306\312!\313\314!\315 \210 \316\211!\317N)\"\320 \321#\322\211$%\323&\322\211'(\322\211)*\322+\"#_
\245$\324 $\245!%\"&_
\245'\324 '\245!\211(+\fq\210db\210o\204\217\325\326\327\330\"\325\261\210\331\261\210+%X\203\301 \332+!\245*
*_\"\245)\333\334+)#c\210+T\211+\202\227\325c\210\335\f\336\".\207" [ps-font-size-internal ps-header-font-size-internal ps-footer-font-size-internal ps-header-title-font-size-internal buf ifs ps-get-font-size ps-font-size ps-header-font-size ps-footer-font-size ps-header-title-font-size get-buffer-create "*Line-lengths*" ps-get-page-dimensions ps-font-for-text avg-char-width ps-setup 5 nil 14 floor "\n" make-string 75 59 "\nnb char per line / font size\n" float format "%16d   %s\n" display-buffer not-this-window ps-print-width print-width font-sym icw fs-min cw-min nb-cpl-max fs-max cw-max nb-cpl-min fs cw nb-cpl] 5 (#$ . 86587)])
#@164 Display correspondence between font size and the number of pages.
The correspondence is based on having NB-LINES lines of text,
and on the current ps-print setup.
(defalias 'ps-nb-pages #[(nb-lines) "\206\306\307!	\206\306\310!\n\206\306\311!\206\306\312!\f\206(\313
\314\"\315\316!#\f$%\317 \210&'\320\211(\321N))\322 \323*\324\211+,\324-\325.\324\211/0\324\21112\324\21134\3245)$\\*_$Z%\245+\326'+\245!,\327\3306!,\245!-)$\\._$Z%\245/\326'/\245!0\327\3306!0\245!1-5#q\210db\210o\204\314\331\332\333\334\"\331\261\210\335\3366\"\337\261\21051X\203
\3276\3305!\245!4'4\2453%3_)\2452\335\34052#c\2105T\2115\202\331\331c\210\341#\342\".\207" [ps-font-size-internal ps-header-font-size-internal ps-footer-font-size-internal ps-header-title-font-size-internal ps-line-spacing-internal ps-line-spacing ps-get-font-size ps-font-size ps-header-font-size ps-footer-font-size ps-header-title-font-size ps-get-size "line spacing" get-buffer-create "*Nb-Pages*" ps-get-page-dimensions ps-font-for-text line-height ps-setup 4 nil 14 floor ceiling float "\n" make-string 75 59 format "\nThere are %d lines.\n\n" "nb page / font size\n" "%7d   %s\n" display-buffer not-this-window buf ils ifs ps-print-height page-height font-sym ilh fs-min lh-min nb-lpp-max nb-page-min fs-max lh-max nb-lpp-min nb-page-max fs lh nb-lpp nb-page nb-lines] 5 (#$ . 87801)])
(defalias 'ps-lookup '(macro . #[(key) "\301\302\303BBD\207" [key cdr assq (font-entry)] 4]))
(defalias 'ps-size-scale '(macro . #[(key) "\301\302\303D\304BB\305BB\207" [key / * ps-lookup (font-size) (size)] 4]))
(defalias 'ps-select-font #[(font-family sym font-size title-font-size) "	\236A\211\204\306\307\310\311	\"#\210\303\n\236A\312\f\313\211\n\236A#\210\312\f\314\211\n\236A
_\245#\210\312\f\315\211\n\236A
_\245#\210\312\f\316\211\n\236A
_\245#\210\312\f\317\316\n\236A_\245#*\207" [font-family ps-font-info-database font-entry size sym font-size error "Don't have data to scale font %s.  Known fonts families are %s" mapcar car put fonts space-width avg-char-width line-height title-line-height title-font-size] 7])
(defalias 'ps-get-page-dimensions #[nil "	\236A\306\211\211\204\307\310\311\312	\"\"\210\202#
\313W\203#\307\314
\"\210\315\316\211$\210\315\317 $\210\315!\320\"\211$\210\f@\fA@#\203O\n\n$\321%&
S'_$
\245\211(\322X\203w\307\323%&'
(&\210\321\n)*#\211+\322X\203\220\307\324*)+$\210,\203\300-\317\211.\325N)_/\321+0/\317\211.\325N)\317\211.\326N)1S_/&++\322X\203\356\307\327*)0/\330/\317\211.\325N)\317\211.\326N)1S_/$+&\2102\2033\320\211.\325N)_4\321+54\320\211.\326N)6S_4%++\322X\203=\307\331*)54\3304\320\211.\326N)6S_4#+&\2107\205|\316\211.\326N)\2118\\9_:\332+:\":_Z\211+\322X\205{\307\333;9\316\211.\326N)8+&*+\207" [ps-paper-type ps-page-dimensions-database page-height page-width page-dimensions ps-number-of-columns nil error "`ps-paper-type' must be one of:\n%s" mapcar car 1 "The number of columns %d should be positive" ps-select-font ps-font-for-text ps-font-for-header ps-font-for-footer - 0 "Bad horizontal layout:\npage-width           == %s\nps-left-margin       == %s\nps-right-margin      == %s\nps-inter-column      == %s\nps-number-of-columns == %s\n| lm | text | ic | text | ic | text | rm |\npage-width == lm  +  n * print-width  +  (n - 1) * ic  +  rm\n=> print-width == %d !" "Bad vertical layout:\nps-top-margin    == %s\nps-bottom-margin == %s\npage-height == bm + print-height + tm\n=> print-height == %d !" title-line-height line-height "Bad vertical layout (header):\nps-top-margin    == %s\nps-bottom-margin == %s\nps-header-offset == %s\nps-header-pad    == %s\nheader-height    == %s\npage-height == bm + print-height + tm - ho - hh\n=> print-height == %d !" + "Bad vertical layout (footer):\nps-top-margin    == %s\nps-bottom-margin == %s\nps-footer-offset == %s\nps-footer-pad    == %s\nfooter-height    == %s\npage-height == bm + print-height + tm - fo - fh\n=> print-height == %d !" floor "Bad vertical layout (full zebra stripe follow):\nps-zebra-stripe-follow == %s\nps-zebra-stripe-height == %s\nfont-text-height       == %s\nline-spacing           == %s\npage-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th\n=> print-height == %d !" ps-font-family ps-font-size-internal ps-header-font-family ps-header-font-size-internal ps-header-title-font-size-internal ps-footer-font-family ps-footer-font-size-internal ps-landscape-mode ps-landscape-page-height ps-left-margin ps-right-margin ps-inter-column ps-print-width ps-bottom-margin ps-top-margin ps-print-height ps-print-header ps-header-line-pad font-sym ps-header-pad ps-header-offset ps-header-lines ps-print-footer ps-footer-line-pad ps-footer-pad ps-footer-offset ps-footer-lines ps-zebra-stripe-full-p ps-line-spacing-internal ps-zebra-stripe-height zebra ps-zebra-stripe-follow] 12])
(defalias 'ps-print-preprint-region #[(prefix) "\301 \204	\302\303!\210`\304 \305!E\207" [prefix ps-mark-active-p error "The mark is not set now" mark ps-print-preprint] 4])
(defalias 'ps-print-preprint #[(prefix) "\205}\247\204<\205}\305\306 \206\307 !\310P\311\312	\"\313\n	\314$\315\f!\2035\316 \210\317\211\202W\320\f!\204D\316 \210\321\211\202W\322\f!\203V\323\324\311\325\f\"!?\202W\314\203l\313\311\326\n\"\327\f!\314\211\305\f!%\202&\315\f!\203{\330	\331\f!\"\202|\f+\207" [prefix name prompt default-directory res file-name-nondirectory buffer-file-name buffer-name ".ps" format "Save PostScript to file (default %s): " read-file-name nil file-directory-p ding "It's a directory" file-writable-p "File is unwritable" file-exists-p "File exists" y-or-n-p "File `%s' exists; overwrite? " "%s; save PostScript to file: " file-name-directory expand-file-name file-name-as-directory] 7])
#@66 Vector used to map characters to PostScript string escape codes.
(defvar ps-string-escape-codes (byte-code "\302\303\304\"\305\306X\203	\307\310\"I\210T\211\202\311W\2031	\307\312\"I\210T\211\202\313X\203F	\307\314\"I\210T\211\2022	\315\316I\210	\317\320I\210	\321\322I\210	\323\324I\210	\325\326I\210	\327\330I\210	\331\332I\210	\333\334I\210	*\207" [char table make-vector 256 nil 0 31 format "\\%03o" 127 "%c" 255 "\\%o" 10 "\\n" 13 "\\r" 9 "\\t" 8 "\\b" 12 "\\f" 92 "\\\\" 40 "\\(" 41 "\\)"] 6) (#$ . 93724))
(defalias 'ps-output-string-prim #[(string) "\303c\210\212\304!c\210)\305\306w\210m\2044g\307\310!\210\311	X\203*	\312X\203*\n	H\202.\313\314	\"c\210)\202\ndb\210\315c\207" [string special ps-string-escape-codes "(" string-as-unibyte " -'*-[]-~" nil delete-char 1 0 255 format "\\%04X" ")"] 3])
(put 'ps-output-string-prim 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-init-output-queue #[nil "\302C\211\211\207" [ps-output-head ps-output-tail ""] 3])
(put 'ps-init-output-queue 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-selected-pages #[nil "@@@AA\211\205\nW\205\202\207" [ps-selected-pages ps-first-page ps-last-page ps-page-postscript] 3])
(defalias 'ps-print-page-p #[nil "\203'	\nX\203	X\202$\203#\303 \210	X\205F	\nX\202$\306\205F\f\307=\2036\310	\311\"\312U\202F\f\313=\203E\310	\311\"\311U\202F\314\211\207" [ps-first-page ps-page-postscript ps-last-page ps-selected-pages ps-even-or-odd-pages ps-print-page-p nil even-page logand 1 0 odd-page t] 3])
(put 'ps-print-page-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-print-sheet-p #[nil "\303=\203\304	\305\"\306U\202\307=\203\304	\305\"\305U\202\310\211\207" [ps-even-or-odd-pages ps-page-sheet ps-print-page-p even-sheet logand 1 0 odd-sheet t] 3])
(put 'ps-print-sheet-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-output #[(&rest args) "\205	\n\241\210	A\205	A\211\202	\207" [ps-print-page-p ps-output-tail args] 3])
(defalias 'ps-output-string #[(string) "\301\302\"\207" [string ps-output t] 3])
(defalias 'ps-output-prologue #[(args) "\301\302;\203\fC\202
\"\207" [args ps-output prologue] 3])
(defalias 'ps-flush-output #[nil "rq\210db\210	\203~	@\211\306=\203X	A\211@\307c\210\212\310!c\210)\311\312w\210m\204Ng\313\314!\210\315\fX\203D\f\316X\203D
\fH\202H\317\320\f\"c\210)\202$db\210\321c)\210\202v\n\322=\203s	A\212\323\324!\210\314u\210\325\326	@\"\210)\202v\nc\210)	A\211\204)\327C\211\211\207" [ps-spool-buffer ps-output-head it string special ps-string-escape-codes t "(" string-as-unibyte " -'*-[]-~" nil delete-char 1 0 255 format "\\%04X" ")" prologue search-backward "\nBeginDoc" apply insert "" ps-output-tail] 4])
(defalias 'ps-insert-file #[(fname) "\302 \210rq\210db\210\303	!)\207" [ps-spool-buffer fname ps-flush-output insert-file-contents] 2])
(defvar ps-encode-header-string-function nil)
(defalias 'ps-generate-header-line #[(fonttag &optional content) "\305\306\307#\210	;\203\305	!\210\202\310	!\203D\310\n!\203<\n	 \"\311\211\2038\f@\312!\210\fA\211\204**\202\312	 !\210\202	9\203{\313	!\203{\314\n!\203s\n	J\"\311\211\203o\f@\312!\210\fA\211\204a*\202\312	J!\210\202\312\315!\210\305\316!\207" [fonttag content ps-encode-header-string-function l --dolist-tail-- ps-output " [" " " functionp nil ps-output-string boundp fboundp "" "]\n"] 5])
(defalias 'ps-generate-header #[(name fonttag0 fonttag1 contents) "\306\307\310#\210	\2033\n\311V\2033\312\313\f	@\"\210\nW\2032	A\211\2032\313
	@\"\210T\211\202)\306\314!\207" [name contents ps-header-lines count fonttag0 fonttag1 ps-output "/" "[\n" 0 1 ps-generate-header-line "]def\n"] 5])
(defalias 'ps-output-boolean #[(name bool) "\302\303\304	\203\f\305\202
\306#!\207" [name bool ps-output format "/%s %s def\n" "true" "false"] 5])
(defalias 'ps-output-frame-properties #[(name alist) "\302\303\304\305\306	\236A\307\"\305\310	\236A\311\"\312\313	\236A\206\314!\305\315	\236A\316\"\305\317	\236A\320\"\321&	\207" [name alist ps-output "/" " [" ps-format-color fore-color 0.0 back-color 0.9 ps-float-format border-width 0.4 border-color 0.0 shadow-color 0.0 "]def\n"] 11])
(defalias 'ps-background-pages #[(page-list func) "\203	\303\304\"\207	\nB\211\207" [page-list func ps-background-all-pages mapcar #[(pages) ":\203\n@\202:\203A\202\211\250\2050	\250\2050\n	X\2050\304\305\306\n	#\"*\207" [pages end start func add-to-list ps-background-pages vector] 7]] 3])
(defconst ps-boundingbox-re "^%%BoundingBox:\\s-+\\([0-9.]+\\)\\s-+\\([0-9.]+\\)\\s-+\\([0-9.]+\\)\\s-+\\([0-9.]+\\)")
(defalias 'ps-get-boundingbox #[nil "rq\210\212\302	\303\304#\203.\305\306\307\224\307\225{!\306\310\224\310\225{!\306\311\224\311\225{!\306\312\224\312\225{!$\2024\305\313\211\211\211$*\207" [ps-spool-buffer ps-boundingbox-re re-search-forward nil t vector string-to-number 1 2 3 4 0] 7])
(defalias 'ps-float-format #[(value &optional default) "\206	\211\204\304\202 \n\247\203\305\n\306_\"\202 \305\307\n\")\207" [value default literal ps-float-format " " format 1.0 "%s "] 5])
(defalias 'ps-background-text #[nil "\301\302\"\207" [ps-print-background-text mapcar #[(text) "T\302\303\304\"!\210\305	@!\210\302\306\307\310	8\311\"\303\312\313	8\206 \314\"\307\315	8\316\"\307\317	8\320\"\307	A@\321\"\307\322	8\321\"\323&\210\324\325	\233\303\326\"\"\207" [ps-background-text-count text ps-output format "/ShowBackText-%d{\n" ps-output-string "\n" ps-float-format 4 200.0 "/%s " 3 "Times-Roman" 6 "PrintHeight PrintPageWidth atan" 5 0.85 "0" 2 "\nShowBackText}def\n" ps-background-pages 7 "ShowBackText-%d\n"] 10]] 3])
(defalias 'ps-background-image #[nil "\301\302\"\207" [ps-print-background-image mapcar #[(image) "\305@!\306	!\205~\nT\307\310\311\n\"\312\3138\314\"\312\3158\316\"\312\3178\320\"\312A@\321\"\312\3228\323\"\324&\210\325	!\210\326 r\fq\210\212\327\330\331\332#\203p\333\310\334\312\322H\335HZ\336\245\335H\\[!\312\315H\337HZ\340\245\337H\\[!#\332\"\210+\307\341!\210\342\343\233\310\344\n\"\")\207" [image image-file ps-background-image-count box ps-spool-buffer expand-file-name file-readable-p ps-output format "/ShowBackImage-%d{\n--back-- " ps-float-format 5 0.0 3 1.0 4 1.0 "PrintPageWidth 2 div" 2 "PrintHeight 2 div BottomMargin add" "\nBeginBackImage\n" ps-insert-file ps-get-boundingbox re-search-backward "^--back--" nil t replace-match "%s %s" 0 2.0 1 2.0 "\nEndBackImage}def\n" ps-background-pages 6 "ShowBackImage-%d\n"] 9]] 3])
(defalias 'ps-background #[(page-number) "\302\303\304	\"\210\205\305\306!)\207" [has-local-background ps-background-pages nil mapc #[(range) "\303H	X\205\"	\304HX\205\"\n\203\305\306H!\207\307\305\310\306H\"\207" [range page-number has-local-background 0 1 ps-output 2 t "/printLocalBackground{\n"] 4] ps-output "}def\n"] 3])
(defalias 'ps-remove-duplicates #[(list) "\303	\203	@\n\235\204	@\nB	A\211\204\n\237*\207" [list tail new nil] 3])
(defalias 'ps-alist-position #[(item list) "\305\306\211\203$@@\f=\211\203\306\211\202\nTA\211\204\n	\205)\n+\207" [list found index tail item 0 nil] 4])
#@675 Alist which is the page matrix database used for N-up printing.

Each element has the following form:

   (PAGE
    (MAX LANDSCAPE LINES COLUMNS COL-MISSING)
    ...)

Where:
PAGE is the page size used (see `ps-paper-type').
MAX is the maximum elements of this page matrix.
LANDSCAPE specifies if page matrix is landscaped, has the following valid
	  values:
	    nil   the sheet is in portrait mode.
	    t     the sheet is in landscape mode.
	    pag   the sheet is in portrait mode and page is in landscape mode.
LINES is the number of lines of page matrix.
COLUMNS is the number of columns of page matrix.
COL-MISSING is the number of columns missing to fill the sheet.
(defconst ps-n-up-database '((a4 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 t 3 4 2) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (a3 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (letter (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (40 t 5 8 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (legal (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 nil 3 2 1) (9 nil 3 3 0) (10 t 2 5 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (70 t 5 14 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (letter-small (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 0) (9 nil 3 3 0) (12 t 3 4 1) (15 t 3 5 0) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (28 t 4 7 0) (30 nil 6 5 1) (36 nil 6 6 0) (40 t 5 8 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (60 t 6 10 0) (64 nil 8 8 0) (72 ni 9 8 1) (81 nil 9 9 0) (84 t 7 12 0) (90 nil 10 9 1) (100 nil 10 10 0)) (tabloid (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (84 t 6 14 0) (90 nil 10 9 1) (100 nil 10 10 0)) (ledger (1 nil 1 1 0) (2 pag 1 2 0) (4 nil 2 2 0) (6 pag 2 3 1) (8 pag 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (84 pag 6 14 0) (90 nil 10 9 1) (100 nil 10 10 0)) (statement (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 nil 3 2 1) (9 nil 3 3 0) (10 t 2 5 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (21 t 3 7 0) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (40 t 4 10 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (60 t 5 12 0) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (executive (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (28 t 4 7 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (45 t 5 9 0) (49 nil 7 7 0) (56 nil 8 7 1) (60 t 6 10 0) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (84 t 7 12 0) (90 nil 10 9 1) (100 nil 10 10 0)) (a4small (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (78 t 6 13 0) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (b4 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (b5 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 0) (81 nil 9 9 0) (90 nil 10 9 1) (98 t 7 14 0) (100 nil 10 10 0))) (#$ . 100957))
(defalias 'ps-n-up-landscape '(macro . #[(mat) "\301\302E\207" [mat nth 1] 3]))
(defalias 'ps-n-up-lines '(macro . #[(mat) "\301\302E\207" [mat nth 2] 3]))
(defalias 'ps-n-up-columns '(macro . #[(mat) "\301\302E\207" [mat nth 3] 3]))
(defalias 'ps-n-up-missing '(macro . #[(mat) "\301\302E\207" [mat nth 4] 3]))
(defalias 'ps-n-up-printing #[nil "\305^\306]	\n\236A\211\203 \211@@)V\203 A\202@\206&\307)\207" [ps-n-up-printing ps-paper-type ps-n-up-database the-list x 100 1 (1 nil 1 1 0)] 3])
#@533 Alist for n-up printing initializations.

Each element has the following form:

   (KIND XCOL YCOL XLIN YLIN REPEAT END XSTART YSTART)

Where:
KIND is a valid value of `ps-n-up-filling'.
XCOL YCOL are the relative position for the next column.
XLIN YLIN are the relative position for the beginning of next line.
REPEAT is the number of repetitions for external loop.
END is the number of repetitions for internal loop and also the number
    of pages in a row.
XSTART YSTART are the relative position for the first page in a sheet.
(defconst ps-n-up-filling-database '((left-top "PageWidth" "0" "N-Up-End 1 sub PageWidth mul neg" "LandscapePageHeight neg" "N-Up-Lines" "N-Up-Columns" "0" "0") (left-bottom "PageWidth" "0" "N-Up-End 1 sub PageWidth mul neg" "LandscapePageHeight" "N-Up-Lines" "N-Up-Columns" "0" "N-Up-Repeat 1 sub LandscapePageHeight mul neg") (right-top "PageWidth neg" "0" "N-Up-End 1 sub PageWidth mul" "LandscapePageHeight neg" "N-Up-Lines" "N-Up-Columns" "N-Up-End 1 sub PageWidth mul" "0") (right-bottom "PageWidth neg" "0" "N-Up-End 1 sub PageWidth mul" "LandscapePageHeight" "N-Up-Lines" "N-Up-Columns" "N-Up-End 1 sub PageWidth mul" "N-Up-Repeat 1 sub LandscapePageHeight mul neg") (top-left "0" "LandscapePageHeight neg" "PageWidth" "N-Up-End 1 sub LandscapePageHeight mul" "N-Up-Columns" "N-Up-Lines" "0" "0") (bottom-left "0" "LandscapePageHeight" "PageWidth" "N-Up-End 1 sub LandscapePageHeight mul neg" "N-Up-Columns" "N-Up-Lines" "0" "N-Up-End 1 sub LandscapePageHeight mul neg") (top-right "0" "LandscapePageHeight neg" "PageWidth neg" "N-Up-End 1 sub LandscapePageHeight mul" "N-Up-Columns" "N-Up-Lines" "N-Up-Repeat 1 sub PageWidth mul" "0") (bottom-right "0" "LandscapePageHeight" "PageWidth neg" "N-Up-End 1 sub LandscapePageHeight mul neg" "N-Up-Columns" "N-Up-Lines" "N-Up-Repeat 1 sub PageWidth mul" "N-Up-End 1 sub LandscapePageHeight mul neg")) (#$ . 106222))
(defalias 'ps-n-up-filling #[nil "	\236\206	\302	\236A\207" [ps-n-up-filling ps-n-up-filling-database left-top] 2])
(defalias 'ps-n-up-xcolumn '(macro . #[(init) "\301\302E\207" [init nth 0] 3]))
(defalias 'ps-n-up-ycolumn '(macro . #[(init) "\301\302E\207" [init nth 1] 3]))
(defalias 'ps-n-up-xline '(macro . #[(init) "\301\302E\207" [init nth 2] 3]))
(defalias 'ps-n-up-yline '(macro . #[(init) "\301\302E\207" [init nth 3] 3]))
(defalias 'ps-n-up-repeat '(macro . #[(init) "\301\302E\207" [init nth 4] 3]))
(defalias 'ps-n-up-end '(macro . #[(init) "\301\302E\207" [init nth 5] 3]))
(defalias 'ps-n-up-xstart '(macro . #[(init) "\301\302E\207" [init nth 6] 3]))
(defalias 'ps-n-up-ystart '(macro . #[(init) "\301\302E\207" [init nth 7] 3]))
#@34 Alist for error handler message.
(defconst ps-error-handler-alist '((none . 0) (paper . 1) (system . 2) (paper-and-system . 3)) (#$ . 108884))
#@38 Alist for zebra stripe continuation.
(defconst ps-zebra-stripe-alist '((follow . 1) (full . 2) (full-follow . 3)) (#$ . 109033))
(defalias 'ps-begin-file #[nil "\306\211\306\211\307\211@A\236AB\203C?\202C\310 \311 DEFGH\2035F?F\312I\313\314 \315J\316\317 \320\321\322!\323B\203O\324\202P\325\326\327\330\331\332\333K\334\335K\211K\336N)\")\337\340\341\"\337\340\342\"\337\343\341\"\337\343\342\"F\"!\344#\345\346 \347\350\351G8\352\353\354G@!\"\352\353\354GA@!\"\355L\203\246F\203\242\356\202\247\357\202\247\360&\210\361M!\210\312\362\351G8\363\364\352\365\366NO\"A\206\304\367\"P\370\346 \371&	\210\361Q!\210\312\372!\210\373\374B\206\344EA@\375=\"\210\373\376R\"\210\312\352\377S\"\352\201\211T\"\352\201\212UV\\S_VZ\"\352\201\213U\"\352\201\214W\"\352\201\215X\"\352\201\216Y\"\352\201\217V\"\352\201\220Z\"\352\201\221[\"\352\201\222\\\"\352\201\223]\"\352\201\224^\"\352\201\225_\"\352\201\226`\"&\210\373\201\227a\"\210\373\201\230b\201\231=\203zL\202|b\"\210\373\201\232c\"\210\373\201\233d\"\210\373\201\234e\"\210\201\235\201\236f\"\210\373\201\237g\"\210\373\201\240h\"\210\201\235\201\241i\"\210\333\211K\201jN)j\312\352\201\242k\"\352\201\243l\"\352\201\244j\"\352\201\245jk\\m\354Wm\201\246_\\m\245!)\"$\210)\373\201\247n\"\210\373\201\250o\"\210\373\201\251p\"\210\373\201\252q\250?\"\210\312\352\201\253rs\236A\206*\306\"\352\201\254q\250\203:q\202<t\"\352\201\255u\"\201\256\201\257v\201\260\"\352\201\261t\"\201\262\201\257w\201\263\"\201\264&	\210\312\201\265\201\257x\201\266\"\201\264#\210\312\201\267y\201\270=\203\216\201\271\202\221\201\272\201\273\201\274\352\201\275\"%\210\373\201\276EA@\201\277=\"\210\373\201\300z\"\210\312\352\201\301\351E8\"\352\201\302\201\303E8\"\352\201\304\201\305E8\"\352\201\306{\"\201\307B\203\356\201\310D8\202\364\201\305D8\201\311B\203\201\305D8\202\201\310D8\201\312D@\201\313DA@\201\314\351D8\201\315\201\303D8\201\316\201\317D8\201\320\201\321D8\201\322&\210\201\323 \210\201\324 \210
\237\f\237\312\360|\201\325#\210\201\326\312
\"\210\312\201\327\201\330\201\331\201\332\201\333\327\330\331\332\333K\334\335K\211K\336N)\")\337\340\341\"\337\340\342\"\337\343\341\"\337\343\342\"F\"!\201\333#\352\201\334}\337\340\342\"#\352\201\335~\337\340\341\"#\352\201\336\201\337\201\340!#\352\201\341\200\337\343\341\"#\201\342&\210\333\211K\336N)\306\201\202\202\203\312\352\201\343\201\203\337\333\202@@\"$!\210\202A\202\201T\201\202\333*\204\205\236A\206\312\352\201\344\201\345\206\236A\201\346\206\236A\245\"!\210)y\201\347=\204g\312\201\350\201\351L!\201\352\201\351F!\201\353\201\354L!\201\355\201\354F!\201\356\201\354L!\201\357\201\354F!\201\360&
\210,\312\201\361\201\351\207!\201\362\201\354\207!\201\363%\210\210\205\212\312\201\364!\207" [ps-page-order ps-page-printed ps-background-text-count ps-background-image-count ps-background-pages ps-background-all-pages 0 nil ps-n-up-printing ps-n-up-filling ps-output "%%Title: " buffer-name "\n%%Creator: ps-print v" "\n%%For: " user-full-name "\n%%CreationDate: " format-time-string "%T %b %d %Y" "\n%%Orientation: " "Landscape" "Portrait" "\n%%DocumentNeededResources: font Times-Roman Times-Italic\n%%+ font " mapconcat identity ps-remove-duplicates append ps-font-for-text mapcar cdr fonts ps-font ps-font-for-header normal bold ps-font-for-footer "\n%%+ font " "\n%%DocumentSuppliedResources: procset PSPrintUserDefinedPrologue-" user-login-name " 0 0" "\n%%DocumentMedia: " 2 format " %d" round " 0 () ()\n%%PageOrder: Ascend\n%%Pages: (atend)\n%%Requirements:" " duplex(tumble)\n" " duplex\n" "\n" ps-insert-string "%%EndComments\n%%BeginDefaults\n%%PageMedia: " "\n%%EndDefaults\n\n%%BeginProlog\n\n" "/languagelevel where{pop}{/languagelevel 1 def}ifelse\n" "/ErrorMessage  %s def\n\n" assoc 1 "\n%%BeginResource: procset PSPrintUserDefinedPrologue-" " 0 0\n\n" "\n%%EndResource\n\n" ps-output-boolean "LandscapeMode      " pag "UpsideDown         " "/NumberOfColumns     %d def\n" ps-paper-type ps-page-dimensions-database ps-landscape-mode ps-spool-tumble n-up-filling n-up tumble dimensions ps-n-up-on ps-adobe-tag ps-print-version font-sym ps-spool-duplex ps-print-prologue-header ps-error-handler-message ps-error-handler-alist ps-print-prologue-0 ps-user-defined-prologue ps-print-upside-down ps-number-of-columns ps-landscape-page-height ps-print-width ps-inter-column ps-print-height ps-left-margin ps-right-margin ps-bottom-margin ps-top-margin ps-header-offset ps-header-pad ps-footer-offset ps-footer-pad ps-footer-lines ps-show-n-of-n ps-switch-header ps-print-only-one-header ps-print-header ps-print-header-frame ps-header-frame-alist ps-print-footer ps-print-footer-frame ps-footer-frame-alist line-height ps-line-spacing-internal ps-paragraph-spacing-internal height ps-warn-paper-type ps-zebra-stripes ps-line-number ps-line-number-step ps-zebra-stripe-follow ps-zebra-stripe-alist ps-zebra-stripe-height ps-line-number-start ps-line-number-color ps-zebra-color ps-default-background ps-spool-config ps-n-up-border-p ps-n-up-margin ps-print-prologue-1 ps-header-title-font-size-internal ps-header-font-size-internal ps-line-number-font ps-footer-font-size-internal i font ps-font-size-internal ps-font-family ps-font-info-database font-entry ps-manual-feed ps-banner-page-when-duplexing "/LandscapePageHeight %s def\n" "/PrintPageWidth      %s def\n" "/PrintWidth   %s def\n" "/PrintHeight  %s def\n" "/LeftMargin   %s def\n" "/RightMargin  %s def\n" "/InterColumn  %s def\n" "/BottomMargin %s def\n" "/TopMargin    %s def\n" "/HeaderOffset %s def\n" "/HeaderPad    %s def\n" "/FooterOffset %s def\n" "/FooterPad    %s def\n" "/FooterLines  %s def\n" "ShowNofN          " "SwitchHeader      " duplex "PrintOnlyOneHeader" "PrintHeader       " "PrintHeaderFrame  " ps-output-frame-properties "HeaderFrameProperties" "PrintFooter       " "PrintFooterFrame  " "FooterFrameProperties" "/LineSpacing      %s def\n" "/ParagraphSpacing %s def\n" "/LineHeight       %s def\n" "/LinesPerColumn   %d def\n" 0.45 "WarnPaperSize   " "Zebra           " "PrintLineNumber " "SyncLineZebra   " "/ZebraFollow      %d def\n" "/PrintLineStep    %d def\n" "/PrintLineStart   %d def\n" "/LineNumberColor  " ps-format-color 0.0 "def\n/ZebraHeight      %d def\n" "/ZebraColor       " 0.95 "def\n" "/BackgroundColor  " 1.0 "/UseSetpagedevice " setpagedevice "/setpagedevice where{pop languagelevel 2 eq}{false}ifelse" "false" " def\n\n/PageWidth " "PrintPageWidth LeftMargin add RightMargin add def\n\n" "/N-Up           %d def\n" "N-Up-Landscape" t "N-Up-Border   " "/N-Up-Lines     %d def\n" "/N-Up-Columns   %d def\n" 3 "/N-Up-Missing   %d def\n" 4 "/N-Up-Margin    %s def\n" "/N-Up-Repeat    " 5 " def\n/N-Up-End       " " def\n/N-Up-XColumn   " " def\n/N-Up-YColumn   " " def\n/N-Up-XLine     " " def\n/N-Up-YLine     " " def\n/N-Up-XStart    " 6 " def\n/N-Up-YStart    " 7 " def\n" ps-background-text ps-background-image "\n/printGlobalBackground{\n" mapc "}def\n/printLocalBackground{\n}def\n" "\n%%EndProlog\n\n%%BeginSetup\n" "\n%%IncludeResource: font Times-Roman" "\n%%IncludeResource: font Times-Italic" "\n%%IncludeResource: font " "\n/h0 %s(%s)cvn DefFont\n" "/h1 %s(%s)cvn DefFont\n" "/L0 %s(%s)cvn DefFont\n" ps-get-font-size ps-line-number-font-size "/H0 %s(%s)cvn DefFont\n" "\n\n% ---- These lines must be kept together because...\n\n/h0 F\n/HeaderTitleLineHeight FontHeight def\n\n/h1 F\n/HeaderLineHeight FontHeight def\n/HeaderDescent    Descent def\n\n/H0 F\n/FooterLineHeight FontHeight def\n/FooterDescent    Descent def\n\n% ---- ...because `F' has a side-effect on `FontHeight' and `Descent'\n\n" "/f%d %s(%s)cvn DefFont\n" "/SpaceWidthRatio %f def\n" space-width size lpr-switches "\n%%BeginFeature: *Duplex " ps-boolean-capitalized " *Tumble " "\nUseSetpagedevice\n{BMark/Duplex " ps-boolean-constant "/Tumble " " EMark setpagedevice}\n{statusdict begin " " setduplexmode " " settumble end}ifelse\n%%EndFeature\n" "\n%%BeginFeature: *ManualFeed " "\nBMark /ManualFeed " " EMark setpagedevice\n%%EndFeature\n\nBeginDoc\n%%EndSetup\n" "\n%%Page: banner 0\nsave showpage restore\n"] 25])
(defalias 'ps-format-color #[(color &optional default) ";\203\304!\202\f\211\203-	<\203-\305\306\n	@\307_	A@\310_\311	8\312_$\313Q\2029\314	\247\2037	\2028!)\207" [color the-color ps-color-format default ps-color-scale "[" format 1.0 1.0 2 1.0 "] " ps-float-format] 8])
(defalias 'ps-insert-string #[(prologue) "\302!\203 \202\f\211;\205\303	!)\207" [prologue str functionp ps-output] 3])
(defalias 'ps-boolean-capitalized #[(bool) "\203\301\207\302\207" [bool "True" "False"] 1])
(defalias 'ps-boolean-constant #[(bool) "\203\301\207\302\207" [bool "true" "false"] 1])
(defalias 'ps-header-dirpart #[nil "\301 \211\203\302 \303!\230\203\304\305!!\202\202\306)\207" [fname buffer-file-name buffer-name file-name-nondirectory abbreviate-file-name file-name-directory ""] 4])
(defalias 'ps-get-buffer-name #[nil "\301 \302\230\203	\303\207\301 \304\230\203\305\207\205\306\301 \307 \205\310Q\207" [ps-printing-region-p buffer-name "ps-print.el" "Hey, Cool!  It's ps-print.el!!!" "sokoban.el" "Super! C'est sokoban.el!" "Subset of: " buffer-modified-p " (unsaved)"] 3])
(defalias 'ps-get-size #[(size mess &optional arg) "\247\203	\202):\203(@\247\203(A\247\203(	\203#@\202)A\202)\305\211\306W\203B\307\310\f\203?\311\312\f\"\202@\313$\210\n)\207" [size ps-landscape-mode siz mess arg -1 0 error "Invalid %s `%S'%s" format " for `%S'" ""] 8])
(defalias 'ps-get-font-size #[(font-sym) "\301J\302#\207" [font-sym ps-get-size "font size"] 4])
(defalias 'ps-rgb-color #[(color unspecified default) "\203?<\203?G\306U\203?\307\310\n\2038\2038@A\311	!\2053\312	X\2053	\313X\211\204\n+\203?\207\311!\203V\314X\203V\315X\203V\211\211E\207;\203e\f\230\204e\316!\207
\211\211E\207" [color e ok cl unspecified default 3 t nil floatp 0.0 1.0 0.0 1.0 ps-color-scale] 4])
(defvar ps-basic-plot-string-function 'ps-basic-plot-string)
(defalias 'ps-begin-job #[(genfunc) "	\232\204\306\307!\306\310!	\311\211?\203]?@?A?\f\250\2036\f\307V\203\f\211B
B\202\f:\203\f@\250\203\fA\250\203\f@\307V\203\f@\fAX\203\f
B\202\312
\313\"\211?@\311\211AB*C<\204v\314CD\250\203\206D\307X\203\206\310DE\310VF\310GD\250\203\232D\202\234H^]GrIq\210db\210\315\316\311\314#\203\265\307\224d|\210)J\317>K\307\211LM\307\211NO\307P\314QR@S\320T\321\"U\320V\322\"W\323\324!X\323\325!Y\323\326!Z\323\327![\\\330=\203\331\332!\202\\\333=\203\331\334!\202\\\335=\203\336\202\337]^\205$\340 \211_\2033\341\342\343!@!\2024\344`\345^\346\235\204Ea\347=\203I\311\202fb\350=\203W\351\311\352\"\202fb\314=\203d\353\354!\202fb\355\356#c\345^\357\235\204za\347=\203~\311\202\233d\350=\203\214\351\311\360\"\202\233d\314=\203\231\361\354!\202\233d\362\363#e\364\365\366^\367\235?\205\255fe\370D\"\"g^\371\235?\205\277e\211hi\372j\311k\373 \210l<\204\327\374\375!\210_\205\347ce\232\205\347\374\376!\207" [ps-mark-code-directory ps-postscript-code-directory ps-print-prologue-0 ps-print-prologue-1 page new ps-prologue-file 0 1 nil sort #[(one other) "@	@W\207" [one other] 2] t re-search-backward "^%%Trailer$" (full full-follow) ps-get-size "line spacing" "paragraph spacing" ps-get-font-size ps-font-size ps-header-font-size ps-header-title-font-size ps-footer-font-size 8-bit string-as-unibyte "[--\377]" control-8-bit "[--\237]" control "[-]" "[	\n\f]" ps-color-device float ps-color-values "white" 1.0 ps-rgb-color (nil back-white) ps-generate-postscript frame-parameter ps-frame-parameter background-color ps-face-background-name default "unspecified-bg" 1.0 (nil back-white) foreground-color ps-face-foreground-name "unspecified-fg" 0.0 mapcar #[(arg) "\301\302\303#\207" [arg ps-rgb-color "unspecified-fg" 0.0] 4] append (nil back-white) "black" (nil back-white) ps-basic-plot-string ps-get-page-dimensions error "`ps-lpr-switches' value should be a list" "`ps-default-fg' and `ps-default-bg' have the same color.\nText won't appear on page.  Please, check these variables." ps-selected-pages ps-last-selected-pages ps-first-page ps-last-page ps-use-face-background ps-line-number-step ps-n-up-printing ps-n-up-on ps-line-number-start ps-zebra-stripe-height ps-spool-buffer ps-zebra-stripe-follow ps-zebra-stripe-full-p ps-page-postscript ps-page-sheet ps-page-n-up ps-page-column ps-lines-printed ps-print-page-p ps-printing-region ps-showline-count ps-line-spacing ps-line-spacing-internal ps-paragraph-spacing ps-paragraph-spacing-internal ps-font-size-internal ps-header-font-size-internal ps-header-title-font-size-internal ps-footer-font-size-internal ps-print-control-characters ps-control-or-escape-regexp ps-print-color-p ps-color-p ps-print-color-scale genfunc ps-default-bg ps-default-background ps-default-fg ps-default-foreground ps-fg-list ps-foreground-list ps-default-color ps-current-color ps-basic-plot-string-function ps-encode-header-string-function ps-lpr-switches] 7])
(defalias 'ps-page-number #[nil "\203\n	S\n\245T\207	\207" [ps-print-only-one-header ps-page-column ps-number-of-columns] 2])
(defalias 'ps-end-page #[nil "\300\301!\207" [ps-output "EndPage\nEndDSCPage\n"] 2])
(put 'ps-end-page 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-next-page #[nil "\300\301!\210\302 \210\303 \207" [ps-output "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page] 2])
(put 'ps-next-page 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-end-sheet #[nil "\205
	\302V\205
\303\304!\207" [ps-print-page-p ps-page-sheet 0 ps-output "EndSheet\n"] 2])
(defalias 'ps-header-sheet #[nil "\306 \210T	\307=\203\310\311\"\312U\202%	\313=\203$\310\311\"\311U\202%\314\211\205GT\315\f\203;\316\317
$\202@\316\320
#\321\316\322\"#\207" [ps-page-sheet ps-even-or-odd-pages ps-print-page-p ps-page-order ps-n-up-on ps-page-postscript ps-end-sheet even-sheet logand 1 0 odd-sheet t ps-output format "\n%%%%Page: (%d \\(%d\\)) %d\n" "\n%%%%Page: %d %d\n" "/Lines 0 def\n/PageCount 0 def\n" "%d BeginSheet\nBeginDSCPage\n" ps-n-up-printing] 6])
(defalias 'ps-header-page #[nil "\306\307	\"!\203\262\nT\2033\n\fX\203\nX\2020
\203/\305 \210\nX\205T\n\fX\2020\310\205T\311=\203C\312\n\313\"\314U\202T\315=\203S\312\n\313\"\313U\202T\316\211\203\272\317=\203k\312\313\"\314U\202}\320=\203|\312\313\"\313U\202}\316\306\307\"!\203\224\321 \210\322\323!\210\202\234\324\325!\210\322\326!\210\327\n!\210T\203\272T\202\272\324\325!\210\322\330!\210T\211\207" [ps-page-column ps-number-of-columns ps-page-postscript ps-first-page ps-last-page ps-selected-pages zerop mod nil even-page logand 1 0 odd-page t even-sheet odd-sheet ps-header-sheet run-hooks ps-print-begin-sheet-hook ps-output "BeginDSCPage\n" ps-print-begin-page-hook ps-background ps-print-begin-column-hook ps-even-or-odd-pages ps-print-page-p ps-page-sheet ps-page-n-up ps-n-up-printing ps-page-printed] 4])
(defalias 'ps-begin-page #[nil "\n\306 \210\307\310\311\f\"\310\312\313 \"\"\210
\203/\314\315\316\317$\210\314\320\316\317$\210\307\310\321\"!\210\203L\314\322\323\211$\210\314\324\323\211 $\210\307\310\325!\"!\210\307\326\"!\327\"\210\330#!\210\331$!\210\332%!\207" [ps-print-width ps-width-remaining ps-print-height ps-height-remaining ps-showline-count ps-print-header ps-header-page ps-output format "/LineNumber %d def\n" "/PageNumber %d def\n" ps-page-number ps-generate-header "HeaderLinesLeft" "/h0" "/h1" "HeaderLinesRight" "%d SetHeaderLines\n" "FooterLinesLeft" "/H0" "FooterLinesRight" "%d SetFooterLines\n" number-to-string " BeginPage\n" ps-set-font ps-set-bg ps-set-color ps-left-header ps-right-header ps-header-lines ps-print-footer ps-left-footer ps-right-footer ps-footer-lines ps-lines-printed ps-current-font ps-current-bg ps-current-color] 5])
(defalias 'ps-skip-newline #[(limit) "T	T`\nW\205\303u\207" [ps-showline-count ps-lines-printed limit 1] 2])
(put 'ps-skip-newline 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-next-line #[nil "T	T\n\205
\306\n!\307\211\310N)\203
\202\\W\2035\311\312!\210\313 \210\314 \202KZ\311\203I\315\202J\316!*\207" [ps-showline-count ps-lines-printed ps-paragraph-regexp paragraph-p font-sym ps-paragraph-spacing-internal looking-at ps-font-for-text line-height ps-output "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page "PHL\n" "LHL\n" ps-line-spacing-internal lh ps-height-remaining ps-print-width ps-width-remaining] 3])
(put 'ps-next-line 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-continue-line #[nil "T\306\211\307N)\n\\\fW\203\310\311!\210\312 \210\313 \202(

\fZ\310\314!)\207" [ps-lines-printed font-sym ps-line-spacing-internal lh ps-height-remaining ps-print-width ps-font-for-text line-height ps-output "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page "SL\n" ps-width-remaining] 3])
(defalias 'ps-find-wrappoint #[(from to char-width) "\306	\245!\nZ\f
W\203\n\f	_B\202
\\B*\207" [ps-width-remaining char-width to from todo avail truncate] 3])
(defalias 'ps-basic-plot-str #[(from to string) "\306	\307\211\310N)#\211@\f	O\311
!\210\312\313!\210+\207" [from to font-sym wrappoint string str ps-find-wrappoint ps-font-for-text avg-char-width ps-output-string ps-output " S\n"] 6])
(defalias 'ps-basic-plot-string #[(from to &optional _bg-color) "\305	\306\211\307N)#\211@\310	\"\311\f!\210\312\313!\210+\207" [from to font-sym wrappoint string ps-find-wrappoint ps-font-for-text avg-char-width buffer-substring-no-properties ps-output-string ps-output " S\n"] 6])
(defalias 'ps-basic-plot-whitespace #[(from to &optional _bg-color) "\304	\305\211\306N)#\211@\307\310\311	Z\"!\210*\207" [from to font-sym wrappoint ps-find-wrappoint ps-font-for-text space-width ps-output format "%d W\n"] 6])
(defalias 'ps-plot #[(plotfunc from to &optional bg-color) "	W\203)\n	#\211@\fA\f

\fZ
	W\203%\306 \210+\202\205ndeZ`eZ\307\245\211\310^ZV\205m\311\312\313W\203e\313_\245\202l\313\245\245\",\207" [from to plotfunc bg-color wrappoint plotted-to ps-continue-line 8 1000 message "Formatting...%3d%%" 100 plotted-width ps-width-remaining ps-razzle-dazzle q-todo q-done chunkfrac chunksize ps-razchunk] 6])
(defvar ps-last-font nil)
(defalias 'ps-set-font #[(font) "\303\304\211\"\305\303\306\n\"!\207" [font ps-current-font ps-last-font format "f%d" ps-output "/%s F\n"] 4])
(defalias 'ps-set-bg #[(color) "\211\203\303\304\n@A@\3058$\306\"\207\303\307!\207" [color ps-current-bg ps-color-format ps-output format 2 " true BG\n" "false BG\n"] 7])
(defalias 'ps-set-color #[(color) "\206	\304\305\n@\nA@\306\n8$\307\"\207" [color ps-default-foreground ps-current-color ps-color-format ps-output format 2 " FG\n"] 7])
(defalias 'ps-plot-string #[(string) "\301\302\303G$\207" [string ps-plot ps-basic-plot-str 0] 5])
(put 'ps-plot-string 'byte-optimizer 'byte-compile-inline-expand)
(defvar ps-current-effect 0)
#@156 Translation table for PostScript printing.
The default value is a table that translates non-Latin-1 Latin characters
to the equivalent Latin-1 characters.
(defvar ps-print-translation-table (byte-code "\302\303\304\"\305\301!\203\306	!\203\307\310	\"\210)\207" [tbl ucs-mule-8859-to-mule-unicode make-char-table translation-table nil boundp char-table-p map-char-table #[(k v) "\205\303!\304=\205	U?\205\n	I\207" [v k tbl char-charset latin-iso8859-1] 3]] 3) (#$ . 128430))
(defalias 'ps-plot-region #[(from to font &optional fg-color bg-color effects) "	\232\204\n\306!\210\n\206
\203;$\206%&'('\203:\f(\232\203:'@'A\211'\204&*\f)\232\204F\307\f!\210)$*\232\204T\310$!\210+\250\204d\311\312!\210\313,\202x+,U\204x\311\314+!\315\"\210+,\212-b\210-.W\205\363/\203\2600\203\260\316/!\203\260\313\225b\210\3170.\320#\203\255g\321U\203\255\322u\210`-\3171.\323#\203\340\313\224\2112f3-2W\203\325\3244-2$$\2103\325U\203\326 5\327u\2105i\\-\317\330.\323#\203\376\324\331-5i\\$$\210)\202\3313\321U\203\220\316\332!\2035.67T78T8`6W\205&\322u)\210\311\333!\210\334 \210\335 \210\202\3317T78T89\205H\3169!:\336\211;\337N):\203[<\202]=\\>?>W\203t\311\333!\210\334 \210\335 \202\213@A?>Z?\311:\203\211\340\202\212\341!*\210\202\3313\342U\203\3242Sf\321\232\203\250?BU\204\331g\321\232\203\307.67T78T8`6W\205\305\322u)\210\311\333!\210\334 \210\335 \210\202\331\3433!\210`-*\202}\3244-.$$\210.\211-\202)\207" [font ps-current-font fg-color ps-default-foreground fg ps-fg-validate-p ps-set-font ps-set-color ps-set-bg ps-output "0 EF\n" 0 number-to-string " EF\n" looking-at re-search-forward noerror 10 1 t ps-plot 9 line-beginning-position -1 "[ 	]+" ps-basic-plot-whitespace "\f[^\n]" "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page ps-font-for-text line-height "PHL\n" "LHL\n" 12 ps-control-character bg-color ps-default-background ps-foreground-list el bg ps-current-color ps-current-bg effects ps-current-effect from to ps-begin-cut-regexp ps-end-cut-regexp ps-control-or-escape-regexp match-point match ps-basic-plot-string-function linestart limit ps-showline-count ps-lines-printed ps-paragraph-regexp paragraph-p font-sym ps-paragraph-spacing-internal ps-line-spacing-internal lh ps-height-remaining ps-print-width ps-width-remaining ps-print-height] 6])
#@54 Vector used to map characters to a printable string.
(defvar ps-string-control-codes (byte-code "\302\303\304\"\305\306X\203	\307\310\311\\\"I\210T\211\202\312W\2033	\307\313\"I\210T\211\202	\314I\210T\211\315X\203L	\307\316\"I\210\2028	*\207" [char table make-vector 256 nil 0 31 format "^%c" 64 127 "%c" "^?" 255 "\\%o"] 7) (#$ . 130856))
(defalias 'ps-control-character #[(char) "	H`S\nG\f\\\306\211
\307N)\310
#\211@
W\203)\311 \210\f_Z\312\n!\210\313\314!.\207" [ps-string-control-codes char str from len to ps-font-for-text avg-char-width ps-find-wrappoint ps-continue-line ps-output-string ps-output " S\n" font-sym char-width wrappoint ps-width-remaining] 5])
(defalias 'ps-face-foreground-color-p #[(attr) "\301>\207" [attr (foreground-color :foreground)] 2])
(put 'ps-face-foreground-color-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-face-background-color-p #[(attr) "\301>\207" [attr (background-color :background)] 2])
(put 'ps-face-background-color-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-face-color-p #[(attr) "\301>\207" [attr (foreground-color :foreground background-color :background)] 2])
(put 'ps-face-color-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-face-extract-color #[(face-attrs) "A\211<\203
	@\202	)\207" [face-attrs color] 2])
#@232 Return face attribute vector.

If FACE is not in `ps-print-face-extension-alist' or in
`ps-print-face-alist', insert it on `ps-print-face-alist' and
return the attribute vector.

If FACE is not a valid face name, use default face.
(defalias 'ps-face-attributes #[(face) ";\203\306!\203\307!	\203%9\203	\236A\206\205\310\311\312\211#\2079\203Z\n\236\206X\236\206X\306!\203@\202A\313\314\f!\f\313=\203R\f\236\204V
B
*A\207@\211\315>)\203m\310\311\316!\312#\207@\211\317>)\203\200\310\311\312\316!#\207\310\311\312\211#\207" [face ps-black-white-faces-alist ps-print-face-extension-alist ps-print-face-alist the-face new-face facep intern vector 0 nil default ps-screen-to-bit-face (foreground-color :foreground) ps-face-extract-color (background-color :background) attr] 6 (#$ . 132228)])
(defalias 'ps-face-background #[(face background) "\305=\204T\204\f\306\207	9\203	>\202Q	<\203P	@\211\307>)\204T\306	\203K	@>\204=	@\211\307>)\203D\306\305\202(	A\211\204,)\202Q\306\205U\f\207" [ps-use-face-background face attr ok background t nil (foreground-color :foreground background-color :background)] 3])
(defalias 'ps-face-attribute-list #[(face-or-list) "<\204	\306!\207@\211\307>)\203\310\311\312!\313#\207@\211\314>)\203-\310\311\313\312!#\207\311\313\211\211\211\203e@A\306\n!\315\311H\"
\204W\316H\f\2048\317\n\320H\"\2028\310
\f#-\207" [face-or-list attr face face-attr background foreground ps-face-attributes (foreground-color :foreground) vector 0 ps-face-extract-color nil (background-color :background) logior 1 ps-face-background 2 effects] 6])
(defconst ps-font-type (vector nil 'bold 'italic 'bold-italic))
(defalias 'ps-plot-with-face #[(from to face) "\204
\306	\n\307#\210\202{\310=\204{\311!\211\307H\312H\313\314H\"\2036
\2036\315
!\2028\205H\205H\315!\306	\n\316\317\f\320\"H\206Y\321\211\322N)\"\206m\307*\323\f\324\"&\210.\nb\207" [face from to face-bit effect foreground ps-plot-region 0 emacs--invisible--face ps-face-attribute-list 1 ps-face-background 2 ps-color-scale ps-font-for-text logand 3 ps-alist-position fonts lsh -2 background ps-color-p ps-default-color fg-color bg-color ps-font-type font-type font-sym] 10])
(byte-code "\300\301!\204\302\301\303\"\210\300\207" [fboundp face-list defalias list-faces] 3)
(defalias 'ps-build-reference-face-lists #[nil "\306 \210\307	\203\310\311\312 \"\210\202!\310\313\n\"\210\310\314\"\210\310\315\f\"\210\307\211\207" [ps-print-face-alist ps-auto-font-detect ps-bold-faces ps-italic-faces ps-underlined-faces ps-build-face-reference ps-font-lock-face-attributes nil mapc ps-map-face face-list ps-set-face-bold ps-set-face-italic ps-set-face-underline] 3])
(defalias 'ps-set-face-bold #[(face) "\301\302\"\207" [face ps-set-face-attribute 1] 3])
(defalias 'ps-set-face-italic #[(face) "\301\302\"\207" [face ps-set-face-attribute 2] 3])
(defalias 'ps-set-face-underline #[(face) "\301\302\"\207" [face ps-set-face-attribute 4] 3])
(defalias 'ps-set-face-attribute #[(face effect) "\303!A\211\304\305	\304H\n\"I)\207" [face face-bit effect ps-map-face 0 logior] 6])
(defalias 'ps-map-face #[(face) "\305!\211@\n\236A\211\203;	A\306\307\306H\f\306H\"I\210\310H\204*\310\f\310HI\210\311H\2047\311\f\311HI\210)\202?	\nB	*\207" [face face-map ps-print-face-alist ps-face-bit face-bit ps-screen-to-bit-face 0 logior 1 2] 7])
(defalias 'ps-screen-to-bit-face #[(face) "\301\302\303!\203
\304\202\305\306!\203\307\202\305\310!\203#\311\202$\305\312!\203.\313\202/\305\314!\2039\315\202:\305\316!\203D\317\202E\305&\320!\321!#B\207" [face vector logior ps-face-bold-p 1 0 ps-face-italic-p 2 ps-face-underlined-p 4 ps-face-strikeout-p 8 ps-face-overline-p 16 ps-face-box-p 64 ps-face-foreground-name ps-face-background-name] 10])
(defalias 'ps-print-ensure-fontified #[(start end) "\302\303!\203\303J\203\304	\"\207\302\305!\205\305J\205\306	\"\207" [start end boundp jit-lock-mode jit-lock-fontify-now lazy-lock-mode lazy-lock-fontify-region] 3])
(defalias 'ps-generate-postscript-with-faces #[(from to) "\306	\204\n\n\203\307\310!\210\311 \210\312\f\313=\203\314
\312\303#\210\214}\210\315\"\210\316\")\207" [ps-current-effect ps-always-build-face-reference ps-build-face-reference ps-black-white-faces-alist ps-print-color-p ps-black-white-faces 0 message "Collecting face information..." ps-build-reference-face-lists nil black-white ps-extend-face-list ps-print-ensure-fontified ps-generate-postscript-with-faces1 from to] 4])
(defalias 'ps-generate-postscript #[(from to) "\302	\303#\207" [from to ps-plot-region 0] 4])
(defalias 'ps-generate #[(buffer from to genfunc) "\212	^	]\306\214	}\210\203\307\310\311\211\"\210
\312!\313C\211 !\314\211\211\"#$\315\216q\210\316\314!\210\317 \211$d\314\223\210eb\210\320\321%!!\204V\306\"q\210\212\306\314&'\322(!\210\"\203q\323 \210\324 \210\325	\"\210\326 \210+\327 \210(	\"\210\330\331!\210\332 \210\333\"!\210\306#,\205\232\307\334!-\207" [to from inhibit-read-only ps-razzle-dazzle ps-razchunk buffer t message "Formatting...%3d%%" 0 get-buffer-create "" nil ((byte-code "\303!\203	\204\nq\210\304!d|\210\303\207" [safe-marker completed-safely ps-spool-buffer markerp marker-position] 2)) set-buffer-multibyte make-marker looking-at regexp-quote ps-begin-job ps-begin-file ps-mule-initialize ps-mule-begin-job ps-selected-pages ps-begin-page ps-output "EndPage\nEndDSCPage\n" ps-mule-end-job ps-end-job "Formatting...done" ps-source-buffer ps-spool-buffer-name ps-spool-buffer ps-output-head ps-output-tail needs-begin-file completed-safely safe-marker ps-adobe-tag ps-even-or-odd-pages ps-print-page-p genfunc] 5])
(defalias 'ps-end-job #[(needs-begin-file) "\306\307 \210\212\310	\n\"A\311 !\"q\210\312#db\210!\313V\2034\314\315\312\306#\2034\316\317\320!\"\306\"\210eb\210\321\322\312\306#\203K\316\317\323
\f#\306\"\210\2027-$\203o\310%\324\"\325U\203o\313\326 \210\327\330\331\332&!\333$\210\327\334!\210)\335 \210\327\336\332'\203\205(\203\205%T\202\207%!\337#\210)\203\224\327\340!\210\307 \210)\312\211*\207" [ps-print-page-p ps-page-printed ps-n-up-printing ps-printing-region total-pages total-lines t ps-flush-output mod ps-page-number nil 0 re-search-backward "^[0-9]+ BeginSheet$" replace-match format "%d BeginSheet" re-search-forward "^/Lines 0 def\n/PageCount 0 def$" "/Lines %d def\n/PageCount %d def" 2 1 ps-header-sheet ps-output "/PrintHeader false def\n/ColumnIndex 0 def\n" "/PrintLineNumber false def\n" number-to-string " BeginPage\n" "EndPage\nEndDSCPage\n" ps-end-sheet "\n%%Trailer\n%%Pages: " "\n\nEndDoc\n\n%%EOF\n" "" pages-per-sheet ps-spool-buffer case-fold-search ps-spool-duplex ps-page-order ps-lines-printed needs-begin-file ps-banner-page-when-duplexing ps-end-with-control-d ps-selected-pages] 5])
(defalias 'ps-do-despool #[(filename) "\306\302!\203\302J\204\307\310!\207\2039\212	\203\307\311!\210\nq\210\312!\313\314ed#\210)	\2035\307\315\"\210)\202\235	\203A\307\316!\210r\nq\210\313\f\206S\306\317!\205S\317J\320
\f;\205l\321\f\231\205l;\205i\fPC\"\f;\204u\322\323\206|\324ed \322\325\326!\205\210\327\322\330\331\332\333
\"!!&\210,	\203\235\307\334!\210\335\n!\207" [filename ps-razzle-dazzle ps-spool-buffer coding-system-for-write ps-printer-name ps-lpr-switches boundp message "No spooled PostScript to print" "Saving..." expand-file-name raw-text-unix write-region "Wrote %s" "Printing..." printer-name append "" nil apply call-process-region fboundp start-process 0 ps-flatten-list ps-string-list mapcar ps-eval-switch "Printing...done" kill-buffer ps-printer-name-option ps-print-region-function ps-lpr-command] 13])
(defalias 'ps-string-list #[(arg) "\305	\305\211\2032@\211;\203\nB\202+\n<\203+\306\n!\211\203*\fB)A\211\204\n*\237)\207" [lstr arg elm --dolist-tail-- s nil ps-string-list] 3])
(defalias 'ps-eval-switch #[(arg) ";\203\207\301!\203 \2079\203J\207:\203$\302@A\"\207\303\207" [arg functionp apply nil] 3])
(defalias 'ps-flatten-list #[(&rest list) "\301!\207" [list ps-flatten-list-1] 2])
(defalias 'ps-flatten-list-1 #[(list) "\204\301\207:\203\302\303@!\303A!\"\207C\207" [list nil append ps-flatten-list-1] 4])
(defalias 'ps-kill-emacs-check #[nil "\302\303	!\211\203\304!\203\305!\203\306\307!\203\310 \210\303	!\211\205=\304!\205=\305!\205=\311\312!?\205=\313\314!)\207" [ps-buffer ps-spool-buffer-name nil get-buffer buffer-name buffer-modified-p y-or-n-p "Unprinted PostScript waiting; print now? " ps-despool yes-or-no-p "Unprinted PostScript waiting; exit anyway? " error "Unprinted PostScript"] 2])
(byte-code "\302\303!\203\204\303\301\304\"\210\202	\203\305\306!\210\202\304\302\207" [noninteractive kill-emacs-hook fboundp add-hook ps-kill-emacs-check message "Won't override existing `kill-emacs-hook'"] 3)
#@1768 Specifies the multi-byte buffer handling.

Valid values are:

  nil			  This is the value to use the default settings;
			  by default, this only works to print buffers with
			  only ASCII and Latin characters.   But this default
			  setting can be changed by setting the variable
			  `ps-mule-font-info-database-default' differently.
			  The initial value of this variable is
			  `ps-mule-font-info-database-latin' (see
			  documentation).

  `non-latin-printer'	  This is the value to use when you have a Japanese
			  or Korean PostScript printer and want to print
			  buffer with ASCII, Latin-1, Japanese (JISX0208 and
			  JISX0201-Kana) and Korean characters.  At present,
			  it was not tested with the Korean characters
			  printing.  If you have a korean PostScript printer,
			  please, test it.

  `bdf-font'		  This is the value to use when you want to print
			  buffer with BDF fonts.  BDF fonts include both latin
			  and non-latin fonts.  BDF (Bitmap Distribution
			  Format) is a format used for distributing X's font
			  source file.  BDF fonts are included in
			  `intlfonts-1.2' which is a collection of X11 fonts
			  for all characters supported by Emacs.  In order to
			  use this value, be sure to have installed
			  `intlfonts-1.2' and set the variable
			  `bdf-directory-list' appropriately (see ps-bdf.el for
			  documentation of this variable).

  `bdf-font-except-latin' This is like `bdf-font' except that it uses
			  PostScript default fonts to print ASCII and Latin-1
			  characters.  This is convenient when you want or
			  need to use both latin and non-latin characters on
			  the same buffer.  See `ps-font-family',
			  `ps-header-font-family' and `ps-font-info-database'.

Any other value is treated as nil.
(defvar ps-multibyte-buffer nil (#$ . 141268))
(custom-autoload 'ps-multibyte-buffer "ps-mule" t)
#@66 Initialize global data for printing multi-byte characters.

(fn)
(autoload 'ps-mule-initialize "ps-mule" '(#$ . 143139) nil nil)
#@151 Start printing job for multi-byte chars between FROM and TO.
It checks if all multi-byte characters in the region are printable or not.

(fn FROM TO)
(autoload 'ps-mule-begin-job "ps-mule" '(#$ . 143275) nil nil)
#@49 Finish printing job for multi-byte chars.

(fn)
(autoload 'ps-mule-end-job "ps-mule" '(#$ . 143494) nil nil)
(provide 'ps-print)

MMCT - 2023