help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A `my-ps-print-setting' function (was: ps-print variables interactive se


From: Rodolfo Medina
Subject: A `my-ps-print-setting' function (was: ps-print variables interactive setting)
Date: Sun, 07 Sep 2008 17:44:26 +0100
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.0.50 (gnu/linux)

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

> [...] I wish to set some ps-print variables in an interactive way, i.e. be
> prompted for the value that I want to set.



With the help that came from this list, I defined a `my-ps-print-setting'
function, that I'm reporting below.  Improvements are welcome: in particular
I wish it said: "please answer `r' or `l'" when prompting for a right or left
footer and the answer is neither r nor l.  Besides, I wish to have
automatically odd page numbers in the right footer and even page numbers in
the left footer.  But I'm starting a new thread for that.

bye
Rodolfo



(defun my-ps-print-setting ()
  "Prompts for some ps print settings.
Other settings are inside the function definition
and can be changed at pleasure."
  (interactive)
  (if (equal (y-or-n-p "Do you want footer? ") t)
      (let (key val)
        (while (progn
                 (setq key
                       (let ((cursor-in-echo-area t))
                         (read-char
                          (format "right or left? "))))
                 (not (memq key '(?r ?l)))))
        (if (eq key ?r)
            (if (equal (y-or-n-p "So, you want right footer.  \
Do you want the default footer? ") nil)
                (let ((my-page-number (read-string 
                                       "Enter the footer you want: ")))
                  (setq ps-right-footer (list (concat "(" my-page-number ")"))
                        ps-print-footer t
                        ps-print-footer-frame nil
                        ps-top-margin 20
                        ps-bottom-margin 5
                        ps-left-margin 10
                        ps-right-margin 7
                        ps-print-header nil
                        ps-show-n-of-n nil
                        ps-print-footer-frame nil
                        ps-footer-lines 1
                        ps-left-footer (quote ( ))
                        ps-footer-offset -10))
              (setq ps-right-footer (quote ("/pagenumberstring load"))
                    ps-print-footer t
                    ps-print-footer-frame nil
                    ps-top-margin 20
                    ps-bottom-margin 5
                    ps-left-margin 10
                    ps-right-margin 7
                    ps-print-header nil
                    ps-show-n-of-n nil
                    ps-print-footer-frame nil
                    ps-footer-lines 1
                    ps-left-footer (quote ( ))
                    ps-footer-offset -10))
          (if (equal (y-or-n-p "So, you want left footer.  \
Do you want the default footer? ") nil)
              (let ((my-page-number (read-string 
                                     "Enter the footer you want: ")))
                (setq ps-left-footer (list (concat "(" my-page-number ")"))
                      ps-print-footer t
                      ps-print-footer-frame nil
                      ps-top-margin 20
                      ps-bottom-margin 5
                      ps-left-margin 10
                      ps-right-margin 7
                      ps-print-header nil
                      ps-show-n-of-n nil
                      ps-print-footer-frame nil
                      ps-footer-lines 1
                      ps-right-footer (quote ( ))
                      ps-footer-offset -10))
            (setq ps-left-footer (quote ("/pagenumberstring load"))
                  ps-print-footer t
                  ps-print-footer-frame nil
                  ps-top-margin 20
                  ps-bottom-margin 5
                  ps-left-margin 10
                  ps-right-margin 7
                  ps-print-header nil
                  ps-show-n-of-n nil
                  ps-print-footer-frame nil
                  ps-footer-lines 1
                  ps-right-footer (quote ( ))
                  ps-footer-offset -10))
          ))
    (setq ps-print-footer nil
                                        ;         ps-top-margin 10
          ps-top-margin 5
          ps-bottom-margin 0
          ps-left-margin 10
          ps-right-margin 0
          ps-print-header nil
          ps-print-footer nil))    
  (let ((font-size (read-number "What font size do you want? ")))
    (setq ps-font-size (cons 7 font-size)))
  (if (equal ps-font-size '(7 . 9.5))
      (setq-default fill-column 101))
  (if (equal ps-font-size '(7 . 12))
      (setq-default fill-column 78))
  )


reply via email to

[Prev in Thread] Current Thread [Next in Thread]