Thanks Drew. Jidanni, try the following two advices if interest. Probably this would be what you want `text-scale-adjust' to do. The first one tweaks the `window-width' function so to return a value based on the text scaling, and the second one makes the `text-scale-adjust' function redisplay an emacs-w3m page. It's only a quick hack, so I don't want to imprement it in emacs-w3m.
(defadvice w3m-redisplay-this-page (around adjust-window-width activate) "Adjust window-width value according to `face-remapping-alist'." (current-buffer) (let ((height (ignore-errors (cadr (assq :height (assq 'default face-remapping-alist)))))) (if height (let ((ofn (symbol-function 'window-width))) (fset 'window-width (lambda (&rest args) (floor (/ (funcall ofn) height)))) (unwind-protect ad-do-it (fset 'window-width ofn))) ad-do-it))) (defadvice text-scale-adjust (after redisplay-w3m-page activate) "Redisplay w3m page after scaling text." (when (eq major-mode 'w3m-mode) (let ((w3m-message-silent t)) (w3m-redisplay-this-page))))