Gnus development mailing list
 help / color / mirror / Atom feed
From: Katsumi Yamaoka <yamaoka@jpl.org>
To: ding@gnus.org
Subject: Re: shr.el: folding Japanese text
Date: Tue, 12 Oct 2010 17:19:06 +0900	[thread overview]
Message-ID: <b4maamjdds5.fsf@jpl.org> (raw)
In-Reply-To: <m34ocseh7o.fsf@quimbies.gnus.org>

Lars Magne Ingebrigtsen wrote:
> You'd have to count pixels in the frame you're using to display it...

I'm not pretty sure but at least Japanese people seem to use
16-dot width font for Kanji if 8-dot width font is used for ASCII
(or 14-dot for Kanji and 7-dot for ASCII, etc.).  And the fill
functions seem to have been designed assuming such a habit (i.e.,
Kanji font is twice the width of ASCII font).  Though there seems
to be no help for text appearing uglily when using proportional
fonts.

> Anyway, it seems the best we can do is to use `char-width' and break
> between these characters in the same way that fill.el does it.

Is there a reason not to use the fill functions?  How about the
following?

--8<---------------cut here---------------start------------->8---
(defun shr-insert (text)
  (when (and (eq shr-state 'image)
	     (not (string-match "\\`[ \t\n]+\\'" text)))
    (insert "\n")
    (setq shr-state nil))
  (cond
   ((eq shr-folding-mode 'none)
    (insert text))
   (t
    (if (string-match "\\`[\t\n ]+" text)
	(setq text (substring text (match-end 0))))
    (if (string-match "[\t\n ]+\\'" text)
	(setq text (substring text 0 (match-beginning 0))))
    (unless (string-equal text "")
      (let ((start (line-beginning-position))
	    (fill-column shr-width)
	    (fill-prefix (make-string shr-indentation ? )))
	(cond ((bolp)
	       (insert fill-prefix))
	      ((eq (char-before) ? ))
	      ((not (and (>= (char-width (or (char-before) ? )) 2)
			 (>= (char-width (aref text 0)) 2)))
	       (insert " ")))
	(insert text)
	(fill-region-as-paragraph start (point)))))))
--8<---------------cut here---------------end--------------->8---

It looks good enough to me for any language.



  reply	other threads:[~2010-10-12  8:19 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-08  8:10 Katsumi Yamaoka
2010-10-08 17:05 ` Lars Magne Ingebrigtsen
2010-10-08 17:23   ` Ted Zlatanov
2010-10-09 16:09     ` Lars Magne Ingebrigtsen
2010-10-09 21:35       ` Lars Magne Ingebrigtsen
2010-10-09 21:48         ` Lars Magne Ingebrigtsen
2010-10-10  4:57         ` CHENG Gao
2010-10-10 13:42         ` Andreas Schwab
2010-10-10 13:47           ` Lars Magne Ingebrigtsen
2010-10-10 16:22             ` Andreas Schwab
2010-10-11  4:03             ` James Cloos
2010-10-11  7:23         ` Kan-Ru Chen
2010-10-11 18:07           ` Lars Magne Ingebrigtsen
2010-10-12  8:19             ` Katsumi Yamaoka [this message]
2010-10-12 12:48               ` Lars Magne Ingebrigtsen
2010-10-12 14:13                 ` Katsumi Yamaoka
2010-10-13  8:13                   ` Katsumi Yamaoka
2010-10-13 16:53                     ` Lars Magne Ingebrigtsen
2010-10-13 19:01                       ` Lars Magne Ingebrigtsen
2010-10-14  8:16                         ` Katsumi Yamaoka
2010-10-14 10:12                           ` Katsumi Yamaoka
2010-10-14 14:13                           ` Katsumi Yamaoka
2010-10-14 18:34                           ` Lars Magne Ingebrigtsen
2010-10-14 19:10                             ` Lars Magne Ingebrigtsen
2010-10-15  0:40                               ` Katsumi Yamaoka
2010-10-15  7:35                                 ` Lars Magne Ingebrigtsen
2010-10-15 10:28                                   ` Lars Magne Ingebrigtsen
2010-10-15 10:48                                     ` Lars Magne Ingebrigtsen
2010-10-15  1:28                               ` Kan-Ru Chen
2010-10-15  6:29                               ` Reiner Steib
2010-10-15 18:05                                 ` Andreas Schwab
2010-10-15 20:16                                   ` Reiner Steib
2010-10-15  1:18                             ` Katsumi Yamaoka
2010-10-14 19:05                           ` Lars Magne Ingebrigtsen
2010-10-15  8:08                             ` Katsumi Yamaoka
2010-10-15 14:02                               ` Lars Magne Ingebrigtsen
2010-10-17  1:04                                 ` Lars Magne Ingebrigtsen
2010-10-18  5:19                                   ` Katsumi Yamaoka
2010-10-18 19:01                                     ` Lars Magne Ingebrigtsen
2010-10-18  5:19                                 ` Katsumi Yamaoka
2010-10-19  7:52                                   ` Katsumi Yamaoka
2010-10-19 18:12                                     ` Lars Magne Ingebrigtsen
2010-10-20  7:29                                       ` Katsumi Yamaoka
2010-10-20 17:22                                         ` Lars Magne Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b4maamjdds5.fsf@jpl.org \
    --to=yamaoka@jpl.org \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).