emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: ps-print-buffer-with-faces doesn't use selected frame's background


From: Vinicius Jose Latorre
Subject: Re: ps-print-buffer-with-faces doesn't use selected frame's background
Date: Thu, 11 Jan 2007 11:07:52 -0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.9) Gecko/20061211 SeaMonkey/1.0.7

Hi Leo,


I made some tests and it is not possible to use frame-parameter in the ps-default-fg and ps-default-bg initialization, because, during Emacs initilization, ps-print is loaded before the frame parameters are set.

The settings:

  (setq ps-zebra-stripes nil
        ps-use-face-background t
        ps-default-bg t)

seem to do what you want.

The above settings could not work if frame parameters are changed dynamically or if you use face remapping.


Regards,


Vinicius


Vinicius Jose Latorre wrote:
Hi Leo,


Thanks for the Emacs image.


Leo wrote:
Hi Vinicius,

* Vinicius Jose Latorre (2007-01-08 23:21 -0200) said:
  ^^^^^^^^^^^^^^^^^^^^^
Hi Eli,
Hi Leo,


Eli Zaretskii wrote:
From: Leo <address@hidden>
Date: Sat, 06 Jan 2007 17:29:34 +0000

* Eli Zaretskii (2007-01-06 12:59 +0200) said:
  ^^^^^^^^^^^^^
`ps-print-buffer-with-faces' will print a dark background buffer
into a .ps file with white background. This makes the text
difficult to read.
This is a feature.  See the variable ps-use-face-background for how
to override it.
I play with it. I put the buffer I want to print in another frame and
swap its foreground and background by modifying frame parameters so
that the change only happens in that frame.

But then printing still uses the global frame parameter's foreground
and background colors instead of the selected frame's. Is this a bug?
I don't know.  Vinicius, could you please look into this?  Thanks.

ps-print does not get color frame parameters; it only deals with faces.

The variables ps-default-fg, ps-default-bg and ps-use-face-background
are only relative to faces.

So, to get the frame parameters to print you could use some function like:

(defun my-ps-print-buffer-with-faces (&optional filename)
 (interactive (list (ps-print-preprint current-prefix-arg)))
 (let ((ps-default-bg (frame-parameter nil 'background-color))
       (ps-default-fg (frame-parameter nil 'foreground-color))
       (ps-use-face-background t))
   (ps-print-buffer-with-faces filename)))


Regards,

Thank you for the answer.

However output from ps-print does not look good generally in a dark
background? Is this a known problem?

Ok, using the ps-default-bg default value (white) is not good when using a dark background.

This is neither a problem nor a bug.

You could set ps-default-bg and ps-default-fg to a suitable color.

One possible way to improve ps-default-bg initialization could be set it in ps-print with

  (frame-parameter nil 'background-color)

The value of ps-default-fg and ps-default-bg variables are not changed when frame parameters change.

Note that even the initialization above will not be good if the frame parameters (background-color and foreground-color) are changed dynamically.

ps-print also allows face remapping, so, the initialization above could not be good depending on the colors used.


Regards,


Vinicius




reply via email to

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