Variable: pr-ps-utility-alist

pr-ps-utility-alist is a customizable variable defined in printing.el.gz.

Value

((mpage "mpage" nil "-b%s" "-%d" "-l" "-t" "-T" ">" nil)
 (psnup "psnup"
	("-q")
	"-P%s" "-%d" "-l" nil nil " " nil
	(inherits-from: . no-duplex)))

Documentation

Specify an alist for PostScript utility processing (PS utility database).

The alist element has the form:

   (SYMBOL UTILITY MUST-SWITCHES PAPERSIZE N-UP LANDSCAPE DUPLEX TUMBLE OUTPUT
SWITCHES DEFAULT...)

Where:

SYMBOL It's a symbol to identify a PostScript utility. It's for
pr-ps-utility(var)/pr-ps-utility(fun) variable setting and for menu selection.
Examples:
mpage
psnup

UTILITY Name of utility for processing a PostScript file.
See also pr-path-alist.
Examples:
. for GNU or Unix system:
"mpage"
"psnup -q"

. for Windows system:
"c:/psutils/psnup -q"

MUST-SWITCHES List of sexp's to pass as options to the PostScript utility
program. These options are necessary to process the utility
program and must be placed before any other switches.
Example:
. for psnup:
("-q")

PAPERSIZE It's a format string to specify paper size switch.
Example:
. for mpage
"-b%s"

N-UP It's a format string to specify n-up switch.
Example:
. for psnup
"-%d"

LANDSCAPE It's a string to specify landscape switch. If the utility
doesn't have landscape switch, set to nil.
Example:
. for psnup
"-l"

DUPLEX It's a string to specify duplex switch. If the utility doesn't
have duplex switch, set to nil.
Example:
. for psnup
nil

TUMBLE It's a string to specify tumble switch. If the utility doesn't
have tumble switch, set to nil.
Example:
. for psnup
nil

OUTPUT It's a string to specify how to generate an output file. Some
utilities accept an output file option, but some others need
output redirection or some other way to specify an output file.
Example:
. for psnup
" " ; psnup ... input output

. for mpage
">" ; mpage ... input > output

SWITCHES List of sexp's to pass as extra options to the PostScript utility
program.
Example:
. for psnup
("-q")
nil

DEFAULT It's a way to set default values when this entry is selected.
It's a cons like:

(VARIABLE . VALUE)

Which associates VARIABLE with VALUE. When this entry is
selected, it's executed the following command:

(set VARIABLE (eval VALUE))

Note that VALUE can be any valid lisp expression. So, don't
forget to quote symbols and constant lists.
If VARIABLE is the special keyword inherits-from:, VALUE must
be a symbol name setting defined in pr-setting-database from
which the current setting inherits the context. Take care with
circular inheritance.
Examples:
(pr-file-landscape . nil)
(pr-file-duplex . t)
(pr-gs-device . (my-gs-device t))

This variable should be modified by customization engine. If this variable is modified by other means (for example, a lisp function), use pr-update-menus function (see it for documentation) to update PostScript utility menu.

NOTE: Don't forget to download and install the utilities declared on
      pr-ps-utility-alist.

Examples:

* On GNU or Unix system:

    ((mpage "mpage" nil "-b%s" "-%d" "-l" "-t" "-T" ">" nil)
     (psnup "psnup" ("-q") "-P%s" "-%d" "-l" nil nil " " nil
(pr-file-duplex . nil) (pr-file-tumble . nil))
     )

* On Windows system:

    ((psnup "c:/psutils/psnup" ("-q") "-P%s" "-%d" "-l" nil nil " "
nil (pr-file-duplex . nil) (pr-file-tumble . nil))
     )

Useful links:

* mpage download (GNU or Unix)
  https://www.mesa.nl/pub/mpage/

* mpage documentation (GNU or Unix - or type man mpage)
  https://linux.die.net/man/1/mpage

* psnup (Windows, GNU or Unix)
  http://www.knackered.org/angus/psutils/
  http://gershwin.ens.fr/vdaniel/Doc-Locale/Outils-Gnu-Linux/PsUtils/

* psnup (PsUtils for Windows)
  https://gnuwin32.sourceforge.net/packages/psutils.htm

* psnup documentation (GNU or Unix - or type man psnup)
  https://linux.die.net/man/1/psnup

* GNU Enscript (Windows, GNU or Unix)
  https://people.ssh.com/mtr/genscript/

* GNU Enscript documentation (Windows, GNU or Unix)
  https://people.ssh.com/mtr/genscript/enscript.man.html
  (on GNU or Unix, type man enscript)

Source Code

;; Defined in /usr/src/emacs/lisp/printing.el.gz
(defcustom pr-ps-utility-alist
  '((mpage "mpage" nil    "-b%s" "-%d" "-l" "-t" "-T" ">" nil)
    (psnup "psnup" ("-q") "-P%s" "-%d" "-l" nil  nil  " " nil
	   (inherits-from: . no-duplex))
    )
  ;; Examples:
  ;; * On GNU or Unix system:
  ;;    '((mpage "mpage" nil    "-b%s" "-%d" "-l" "-t" "-T" ">" nil)
  ;;      (psnup "psnup" ("-q") "-P%s" "-%d" "-l" nil  nil  " " nil
  ;;             (pr-file-duplex . nil) (pr-file-tumble . nil))
  ;;      )
  ;; * On Windows system:
  ;;    '((psnup "c:/psutils/psnup" ("-q") "-P%s" "-%d" "-l" nil  nil " " nil
  ;;             (pr-file-duplex . nil) (pr-file-tumble . nil))
  ;;      )
  "Specify an alist for PostScript utility processing (PS utility database).

The alist element has the form:

   (SYMBOL UTILITY MUST-SWITCHES PAPERSIZE N-UP LANDSCAPE DUPLEX TUMBLE OUTPUT
	   SWITCHES DEFAULT...)

Where:

SYMBOL		It's a symbol to identify a PostScript utility.  It's for
		`pr-ps-utility' variable setting and for menu selection.
		Examples:
			mpage
			psnup

UTILITY		Name of utility for processing a PostScript file.
		See also `pr-path-alist'.
		Examples:
		    . for GNU or Unix system:
			\"mpage\"
			\"psnup -q\"

		    . for Windows system:
			\"c:/psutils/psnup -q\"

MUST-SWITCHES	List of sexp's to pass as options to the PostScript utility
		program.  These options are necessary to process the utility
		program and must be placed before any other switches.
		Example:
		    . for psnup:
			(\"-q\")

PAPERSIZE	It's a format string to specify paper size switch.
		Example:
		    . for mpage
			\"-b%s\"

N-UP		It's a format string to specify n-up switch.
		Example:
		    . for psnup
			\"-%d\"

LANDSCAPE	It's a string to specify landscape switch.  If the utility
		doesn't have landscape switch, set to nil.
		Example:
		    . for psnup
			\"-l\"

DUPLEX		It's a string to specify duplex switch.  If the utility doesn't
		have duplex switch, set to nil.
		Example:
		    . for psnup
			nil

TUMBLE		It's a string to specify tumble switch.  If the utility doesn't
		have tumble switch, set to nil.
		Example:
		    . for psnup
			nil

OUTPUT		It's a string to specify how to generate an output file.  Some
		utilities accept an output file option, but some others need
		output redirection or some other way to specify an output file.
		Example:
		    . for psnup
			\" \" ; psnup ... input output

		    . for mpage
			\">\" ; mpage ... input > output

SWITCHES	List of sexp's to pass as extra options to the PostScript utility
		program.
		Example:
		    . for psnup
			(\"-q\")
			nil

DEFAULT		It's a way to set default values when this entry is selected.
		It's a cons like:

		   (VARIABLE . VALUE)

		Which associates VARIABLE with VALUE.  When this entry is
		selected, it's executed the following command:

		   (set VARIABLE (eval VALUE))

		Note that VALUE can be any valid lisp expression.  So, don't
		forget to quote symbols and constant lists.
		If VARIABLE is the special keyword `inherits-from:', VALUE must
		be a symbol name setting defined in `pr-setting-database' from
		which the current setting inherits the context.  Take care with
		circular inheritance.
		Examples:
			(pr-file-landscape . nil)
			(pr-file-duplex . t)
			(pr-gs-device . (my-gs-device t))

This variable should be modified by customization engine.  If this variable is
modified by other means (for example, a lisp function), use `pr-update-menus'
function (see it for documentation) to update PostScript utility menu.

NOTE: Don't forget to download and install the utilities declared on
      `pr-ps-utility-alist'.

Examples:

* On GNU or Unix system:

    ((mpage \"mpage\" nil    \"-b%s\" \"-%d\" \"-l\" \"-t\" \"-T\" \">\" nil)
     (psnup \"psnup\" (\"-q\") \"-P%s\" \"-%d\" \"-l\" nil  nil  \" \" nil
	    (pr-file-duplex . nil) (pr-file-tumble . nil))
     )

* On Windows system:

    ((psnup \"c:/psutils/psnup\" (\"-q\") \"-P%s\" \"-%d\" \"-l\" nil nil \" \"
	    nil (pr-file-duplex . nil) (pr-file-tumble . nil))
     )

Useful links:

* mpage download (GNU or Unix)
  `https://www.mesa.nl/pub/mpage/'

* mpage documentation (GNU or Unix - or type `man mpage')
  `https://linux.die.net/man/1/mpage'

* psnup (Windows, GNU or Unix)
  `http://www.knackered.org/angus/psutils/'
  `http://gershwin.ens.fr/vdaniel/Doc-Locale/Outils-Gnu-Linux/PsUtils/'

* psnup (PsUtils for Windows)
  `https://gnuwin32.sourceforge.net/packages/psutils.htm'

* psnup documentation (GNU or Unix - or type `man psnup')
  `https://linux.die.net/man/1/psnup'

* GNU Enscript (Windows, GNU or Unix)
  `https://people.ssh.com/mtr/genscript/'

* GNU Enscript documentation (Windows, GNU or Unix)
  `https://people.ssh.com/mtr/genscript/enscript.man.html'
  (on GNU or Unix, type `man enscript')"
  :type '(repeat
	  (list :tag "PS File Utility"
		(symbol :tag "Utility Symbol")
		(string :tag "Utility Name")
		(repeat :tag "Must Utility Switches"
			(sexp :tag "Switch" :value ""))
		(choice :menu-tag "Paper Size"
			:tag "Paper Size"
			(const :tag "No Paper Size" nil)
			(string :tag "Paper Size Format"))
		(choice :menu-tag "N-Up"
			:tag "N-Up"
			(const :tag "No N-Up" nil)
			(string :tag "N-Up Format"))
		(choice :menu-tag "Landscape"
			:tag "Landscape"
			(const :tag "No Landscape" nil)
			(string :tag "Landscape Switch"))
		(choice :menu-tag "Duplex"
			:tag "Duplex"
			(const :tag "No Duplex" nil)
			(string :tag "Duplex Switch"))
		(choice :menu-tag "Tumble"
			:tag "Tumble"
			(const :tag "No Tumble" nil)
			(string :tag "Tumble Switch"))
		(string :tag "Output Separator")
		(repeat :tag "Utility Switches"
			(sexp :tag "Switch" :value ""))
		(repeat
		 :tag "Default Value List"
		 :inline t
		 (cons
		  :tag ""
		  (choice
		   :menu-tag "Variable"
		   :tag "Variable"
		   (const :tag "PS File Landscape"      pr-file-landscape)
		   (const :tag "PS File Duplex"         pr-file-duplex)
		   (const :tag "PS File Tumble"         pr-file-tumble)
		   (const :tag "Ghostscript Device"     pr-gs-device)
		   (const :tag "Ghostscript Resolution" pr-gs-resolution)
		   (const :tag "inherits-from:"         inherits-from:)
		   (variable :tag "Other"))
		  (sexp :tag "Value")))
		))
  :set 'pr-alist-custom-set)