From divanov at aha.ru Tue Sep 4 13:06:35 2007
From: divanov at aha.ru (Dmitriy Ivanov)
Date: Tue, 4 Sep 2007 17:06:35 +0400
Subject: [cl-typesetting-devel] Table row height constained in layout-time
Message-ID: <000001c7eef4$9c19b5b0$8100a8c0@digo>
Hello,
The tables.lisp was slightly augmented by the following feature. If the
value of the :height argument of a table row is a list, it must be a flat
list :
(symbol-name arg1 ...)
The function bound to the symbol-name is applied to the arguments in
layout-time. The keyword :text-height is substituted by natural row height
computed from the row cells. For example:
(let ((min-row-height 20))
(tt:row (:height `(max ,min-row-height :text-height)) ...))
I hope this facility can be useful for printing partially filled forms.
--
Sincerely,
Dmitriy Ivanov
lisp.ystok.ru
From peter at gigamonkeys.com Thu Sep 6 21:19:52 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Thu, 06 Sep 2007 14:19:52 -0700
Subject: [cl-typesetting-devel] Unicode?
Message-ID: <46E06EF8.8030309@gigamonkeys.com>
I've got this simple test program which, as you can see, attempts to use
one of the LatinModern unicode fonts and tries to render some text
that contains a unicode emdash (code-point #x2014).
(defpackage :foo (:use :cl :cl-pdf))
(in-package :foo)
(defun test-unicode (&optional (file #P"foo.pdf"))
(pdf:with-document ()
(pdf:with-page ()
(pdf:with-outline-level ("Example" (pdf:register-page-reference))
(let ((font (pdf:get-font "LMRoman12-Regular")))
(pdf:in-text-mode
(pdf:set-font font 14.0)
(pdf:move-text 100 800)
(pdf:draw-text
(format nil "This ~c is a test." (code-char #x2014)))))))
(pdf:write-document file)
file))
When I run this function in generates a file without error but the
emdash is nowhere to be seen. Is this a problem with the font (which was
loaded from an .afm file not a .ufm) or with cl-pdf or with something
I'm doing wrong?
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
From peter at gigamonkeys.com Fri Sep 7 00:22:12 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Thu, 06 Sep 2007 17:22:12 -0700
Subject: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E06EF8.8030309@gigamonkeys.com>
References: <46E06EF8.8030309@gigamonkeys.com>
Message-ID: <46E099B4.7080706@gigamonkeys.com>
So looking at the .ufm file for LMRoman12-Regular, it seemed that there
was no metric for #x2014 (a.k.a. 8212). So I used fontforge and ttf2pt1
to generate a .ttf and .ufm pair from one of the .dfont files on my mac.
That font had a metric for 8212 but when I use it instead of
LMRoman12-Regular I get boxes for all the characters. I do get a box for
the emdash character, so that's progress in some sense. What am I doing
wrong?
-Peter
Peter Seibel wrote:
> I've got this simple test program which, as you can see, attempts to use
> one of the LatinModern unicode fonts and tries to render some text that
> contains a unicode emdash (code-point #x2014).
>
> (defpackage :foo (:use :cl :cl-pdf))
>
> (in-package :foo)
>
> (defun test-unicode (&optional (file #P"foo.pdf"))
> (pdf:with-document ()
> (pdf:with-page ()
> (pdf:with-outline-level ("Example" (pdf:register-page-reference))
> (let ((font (pdf:get-font "LMRoman12-Regular")))
> (pdf:in-text-mode
> (pdf:set-font font 14.0)
> (pdf:move-text 100 800)
> (pdf:draw-text
> (format nil "This ~c is a test." (code-char #x2014)))))))
> (pdf:write-document file)
> file))
>
>
> When I run this function in generates a file without error but the
> emdash is nowhere to be seen. Is this a problem with the font (which was
> loaded from an .afm file not a .ufm) or with cl-pdf or with something
> I'm doing wrong?
>
> -Peter
>
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
From divanov at aha.ru Fri Sep 7 05:25:21 2007
From: divanov at aha.ru (Dmitriy Ivanov)
Date: Fri, 7 Sep 2007 09:25:21 +0400
Subject: [cl-typesetting-devel] Unicode?
References: <46E06EF8.8030309@gigamonkeys.com>
Message-ID: <000001c7f10f$894bacf0$8100a8c0@digo>
Hello Peter,
| I've got this simple test program which, as you can see, attempts to
| use one of the LatinModern unicode fonts and tries to render some text
| that contains a unicode emdash (code-point #x2014).
|
| (defpackage :foo (:use :cl :cl-pdf))
|
| (in-package :foo)
|
| (defun test-unicode (&optional (file #P"foo.pdf"))
| (pdf:with-document ()
| (pdf:with-page ()
| (pdf:with-outline-level ("Example"
| (pdf:register-page-reference)) (let ((font (pdf:get-font
| "LMRoman12-Regular"))) (pdf:in-text-mode
| (pdf:set-font font 14.0)
| (pdf:move-text 100 800)
| (pdf:draw-text
| (format nil "This ~c is a test." (code-char #x2014)))))))
| (pdf:write-document file)
| file))
|
|
| When I run this function in generates a file without error but the
| emdash is nowhere to be seen. Is this a problem with the font (which
| was loaded from an .afm file not a .ufm) or with cl-pdf or with
| something I'm doing wrong?
First, I believe that is a cl-pdf-devel question, not cl-typesetting-devel
:-)
Second, if LatinModern were a custom single-byte encoding font, I would
suggest to
map the Unicode char code to the code belonging [0-255] range as follows:
(defmethod get-char-metrics ((code (eql #x2014))
font (encoding custom-encoding))
(aref (characters font) #x96))
(defmethod get-char-metrics ((char (eql #.(code-char #x2014)))
font (encoding custom-encoding))
(aref (characters font) #x96))
I cannot say for Unicode fonts as I do not use ufm-files in production :-(
--
Sincerely,
Dmitriy Ivanov
lisp.ystok.ru
From peter at gigamonkeys.com Sat Sep 8 02:47:08 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Fri, 07 Sep 2007 19:47:08 -0700
Subject: [cl-typesetting-devel] Unicode?
In-Reply-To: <000001c7f10f$894bacf0$8100a8c0@digo>
References: <46E06EF8.8030309@gigamonkeys.com>
<000001c7f10f$894bacf0$8100a8c0@digo>
Message-ID: <46E20D2C.4040606@gigamonkeys.com>
Dmitriy Ivanov wrote:
> Hello Peter,
>
> | I've got this simple test program which, as you can see, attempts to
> | use one of the LatinModern unicode fonts and tries to render some text
> | that contains a unicode emdash (code-point #x2014).
> |
> | (defpackage :foo (:use :cl :cl-pdf))
> |
> | (in-package :foo)
> |
> | (defun test-unicode (&optional (file #P"foo.pdf"))
> | (pdf:with-document ()
> | (pdf:with-page ()
> | (pdf:with-outline-level ("Example"
> | (pdf:register-page-reference)) (let ((font (pdf:get-font
> | "LMRoman12-Regular"))) (pdf:in-text-mode
> | (pdf:set-font font 14.0)
> | (pdf:move-text 100 800)
> | (pdf:draw-text
> | (format nil "This ~c is a test." (code-char #x2014)))))))
> | (pdf:write-document file)
> | file))
> |
> |
> | When I run this function in generates a file without error but the
> | emdash is nowhere to be seen. Is this a problem with the font (which
> | was loaded from an .afm file not a .ufm) or with cl-pdf or with
> | something I'm doing wrong?
>
> First, I believe that is a cl-pdf-devel question, not cl-typesetting-devel
> :-)
Hmmmm, I thought the lists had been collapsed into a single list. Guess
I misremembered.
Anyway, after some more investigation, I think the problem goes much
deeper than just a font metric issue. I looked at the PDF file generated
when I made the text was (format nil "A~cB" (code-char #x2014). In the
PDF there's a:
(A?B) Tj
where the ? is actually the character #x14, i.e. the bottom byte of the
#x2014 character. It conceivable that through some proper manipulation
of external-formats somewhere I could fix that but it wouldn't help
because, as far as I understand the PDF spec, (...) strings can only
contain ASCII characters. There is obviously some way to include Unicode
text (uncoded in UTF-16BE, I believe) in PDFs but it's much more
involved than just throwing some text between ()'s. I think the relevant
sections of the PDF spec may be 5.6 Composite Fonts and following.
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
From marc.battyani at fractalconcept.com Sat Sep 8 10:57:51 2007
From: marc.battyani at fractalconcept.com (Marc Battyani)
Date: Sat, 08 Sep 2007 12:57:51 +0200
Subject: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E20D2C.4040606@gigamonkeys.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo>
<46E20D2C.4040606@gigamonkeys.com>
Message-ID: <46E2802F.5050507@fractalconcept.com>
Peter Seibel wrote:
[...]
> Anyway, after some more investigation, I think the problem goes much
> deeper than just a font metric issue. I looked at the PDF file
> generated when I made the text was (format nil "A~cB" (code-char
> #x2014). In the PDF there's a:
>
> (A?B) Tj
>
> where the ? is actually the character #x14, i.e. the bottom byte of
> the #x2014 character. It conceivable that through some proper
> manipulation of external-formats somewhere I could fix that but it
> wouldn't help because, as far as I understand the PDF spec, (...)
> strings can only contain ASCII characters. There is obviously some way
> to include Unicode text (uncoded in UTF-16BE, I believe) in PDFs but
> it's much more involved than just throwing some text between ()'s. I
> think the relevant sections of the PDF spec may be 5.6 Composite Fonts
> and following.
I'm just catching up. So do you still have the problem? If that's the
case, I will have a look at it this WE.
Marc
From peter at gigamonkeys.com Sat Sep 8 15:16:22 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Sat, 08 Sep 2007 08:16:22 -0700
Subject: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E2802F.5050507@fractalconcept.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo>
<46E20D2C.4040606@gigamonkeys.com>
<46E2802F.5050507@fractalconcept.com>
Message-ID: <46E2BCC6.1010803@gigamonkeys.com>
Marc Battyani wrote:
>
> Peter Seibel wrote:
>
> [...]
>> Anyway, after some more investigation, I think the problem goes much
>> deeper than just a font metric issue. I looked at the PDF file
>> generated when I made the text was (format nil "A~cB" (code-char
>> #x2014). In the PDF there's a:
>>
>> (A?B) Tj
>>
>> where the ? is actually the character #x14, i.e. the bottom byte of
>> the #x2014 character. It conceivable that through some proper
>> manipulation of external-formats somewhere I could fix that but it
>> wouldn't help because, as far as I understand the PDF spec, (...)
>> strings can only contain ASCII characters. There is obviously some way
>> to include Unicode text (uncoded in UTF-16BE, I believe) in PDFs but
>> it's much more involved than just throwing some text between ()'s. I
>> think the relevant sections of the PDF spec may be 5.6 Composite Fonts
>> and following.
> I'm just catching up. So do you still have the problem? If that's the
> case, I will have a look at it this WE.
Yes, as far as I can tell some moderately significant surgery needs to
be done to really support arbitrary Unicode characters. For another test
case, you can use:
(pdf:draw-text (format nil "~c~c" (code-char #x6e05) (code-char #x6167)))
Which are the two Chinese characters you can see on this web page:
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
From marc.battyani at fractalconcept.com Sun Sep 9 19:39:54 2007
From: marc.battyani at fractalconcept.com (Marc Battyani)
Date: Sun, 09 Sep 2007 21:39:54 +0200
Subject: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E44985.2080205@fractalconcept.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo> <46E20D2C.4040606@gigamonkeys.com> <46E2802F.5050507@fractalconcept.com>
<46E2BCC6.1010803@gigamonkeys.com>
<46E44985.2080205@fractalconcept.com>
Message-ID: <46E44C0A.4010208@fractalconcept.com>
Peter Seibel wrote:
> > Yes, as far as I can tell some moderately significant surgery needs to
> > be done to really support arbitrary Unicode characters. For another
> > test case, you can use:
> >
> > (pdf:draw-text (format nil "~c~c" (code-char #x6e05) (code-char
> > #x6167)))
> >
> > Which are the two Chinese characters you can see on this web page:
> >
> >
>
I just tried the unicode-hello in test.lisp and it seems to work well on
LWW5.02:
> > (pdf:load-ttu-font #P"d:/tmp/times.ufm" #P"C:/WINDOWS/Fonts/times.ttf")
>
#
> >(defparameter *unicode-test-string* (map unicode-string-type 'code-char
>
'(8252 8319 8359 8592 8593 8594 8595 8596 8597 8616 915 920 934 945
948 949 963 964 966 32
9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566
9567 32 65
9568 9650 9658 9660 9668 9675 9688 9689 8364 1027 8218 402 8222
8230 8224 8225 32 66
372 373 374 375 383 506 507 508 509 510 511 903 913 914 916 917
918 919 921 922 923 32
946 947 950 951 952 953 954 955 956 957 958 1101 1102 1103 1105
1106 1107 1108 32
1475 1488 1489 1490 1491 1492 1493 64304 64305 64306 64307 64308
64309 32
7911 7912 7913 7914 7915 7916 7917 7918 1179 1180 1181 1186 1187
1198 1199 1200 32 #x6e05 #x6167)))
*unicode-test-string*
> > (defun unicode-hello (&optional (file #P"/tmp/hello-u.pdf"))
>
(pdf:with-document ()
(pdf:with-page ()
(pdf:with-outline-level ("Unicode Example"
(pdf:register-page-reference))
(pdf:set-line-width 0.1)
(let ((content
(compile-text ()
(vspace 100)
(paragraph (:h-align :center :font "Helvetica-Bold" :font-size
50 :color '(0.0 0 0.8))
"cl-typesetting" :eol
(vspace 2)
(hrule :dy 1)
(with-style (:font "Times-Italic" :font-size 26)
"The cool Common Lisp typesetting system")
(vspace 50)
(with-style (:font "TimesNewRomanPSMT" :font-size 36)
(put-string *unicode-test-string*))))))
(draw-block content 20 800 545 700))))
(pdf:write-document file)))
unicode-hello
> > (unicode-hello)
>
nil
The generated pdf looks ok for me in acrobat. I can send it to you if you want. (too big for the list, it just bounced)
Have you tried this example?
Marc
From peter at gigamonkeys.com Mon Sep 10 19:31:34 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Mon, 10 Sep 2007 12:31:34 -0700
Subject: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E44C0A.4010208@fractalconcept.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo> <46E20D2C.4040606@gigamonkeys.com> <46E2802F.5050507@fractalconcept.com>
<46E2BCC6.1010803@gigamonkeys.com>
<46E44985.2080205@fractalconcept.com>
<46E44C0A.4010208@fractalconcept.com>
Message-ID: <46E59B96.1030807@gigamonkeys.com>
Marc Battyani wrote:
> The generated pdf looks ok for me in acrobat. I can send it to you if you want. (too big for the list, it just bounced)
I think I got a copy though since you sent it to me and the list.
> Have you tried this example?
I haven't. I'll play around some more.
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
From peter at gigamonkeys.com Mon Sep 10 20:20:36 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Mon, 10 Sep 2007 13:20:36 -0700
Subject: [cl-pdf-devel] Re: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E59B96.1030807@gigamonkeys.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo> <46E20D2C.4040606@gigamonkeys.com> <46E2802F.5050507@fractalconcept.com> <46E2BCC6.1010803@gigamonkeys.com> <46E44985.2080205@fractalconcept.com> <46E44C0A.4010208@fractalconcept.com>
<46E59B96.1030807@gigamonkeys.com>
Message-ID: <46E5A714.2040200@gigamonkeys.com>
Peter Seibel wrote:
> Marc Battyani wrote:
>
>> The generated pdf looks ok for me in acrobat. I can send it to you if
>> you want. (too big for the list, it just bounced)
>
> I think I got a copy though since you sent it to me and the list.
>
>> Have you tried this example?
>
> I haven't. I'll play around some more.
Okay, I can't get unicode-hello to work on Allegro 8.1 on GNU/Linux with
any Unicode fonts I have. Perhaps I'm generating bad .ufm files? (I
tried to build your special ttf2ufm program Marc but couldn't figure out
how so used another one I found on the web.) Maybe to remove at least
one variable we can use the same font. I just tried with Gentium, a free
Unicode font which you can get here:
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=Gentium_download
Whenever I use Gentium in the place of TimesNewRomanPSMT I get this
error, even when I set the *unicode-test-string* to something as simple
as "abc".
Index(s) to array function is/are out of the range of the array.
[Condition of type TYPE-ERROR]
Restarts:
0: [ABORT] Return to SLIME's top level.
1: [ABORT] Abort entirely from this (lisp) process.
Backtrace:
0: (SWANK:SWANK-DEBUGGER-HOOK #
#)
1: (ERROR TYPE-ERROR :DATUM NIL :EXPECTED-TYPE FIXNUM :FORMAT-CONTROL
"Index(s) to array function is/are out of the range of the
array."
:FORMAT-ARGUMENTS (NIL))
2: ((METHOD PDF::GET-CHAR-METRICS (T T T)) #\I
#
#)
3: (PDF:GET-KERNING #\I #\a # 36)
4: (PUT-STRING "abc")
5: (UNICODE-HELLO)
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
From peter at gigamonkeys.com Mon Sep 10 21:01:08 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Mon, 10 Sep 2007 14:01:08 -0700
Subject: [cl-pdf-devel] Re: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E5A714.2040200@gigamonkeys.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo> <46E20D2C.4040606@gigamonkeys.com> <46E2802F.5050507@fractalconcept.com> <46E2BCC6.1010803@gigamonkeys.com> <46E44985.2080205@fractalconcept.com> <46E44C0A.4010208@fractalconcept.com> <46E59B96.1030807@gigamonkeys.com>
<46E5A714.2040200@gigamonkeys.com>
Message-ID: <46E5B094.9020707@gigamonkeys.com>
Peter Seibel wrote:
> I tried to build your special ttf2ufm program Marc but couldn't
> figure out how so used another one I found on the web.
Here's the one I used:
http://wxcode.sourceforge.net/docs/wxpdfdoc/makefont.html
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
From marc.battyani at fractalconcept.com Mon Sep 10 22:15:50 2007
From: marc.battyani at fractalconcept.com (Marc Battyani)
Date: Tue, 11 Sep 2007 00:15:50 +0200
Subject: [cl-pdf-devel] Re: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E5A714.2040200@gigamonkeys.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo> <46E20D2C.4040606@gigamonkeys.com> <46E2802F.5050507@fractalconcept.com> <46E2BCC6.1010803@gigamonkeys.com> <46E44985.2080205@fractalconcept.com> <46E44C0A.4010208@fractalconcept.com>
<46E59B96.1030807@gigamonkeys.com>
<46E5A714.2040200@gigamonkeys.com>
Message-ID: <46E5C216.9010905@fractalconcept.com>
Peter Seibel wrote:
> Okay, I can't get unicode-hello to work on Allegro 8.1 on GNU/Linux
> with any Unicode fonts I have. Perhaps I'm generating bad .ufm files?
> (I tried to build your special ttf2ufm program Marc but couldn't
> figure out how so used another one I found on the web.) Maybe to
> remove at least one variable we can use the same font. I just tried
> with Gentium, a free Unicode font which you can get here:
>
> http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=Gentium_download
>
>
> Whenever I use Gentium in the place of TimesNewRomanPSMT I get this
> error, even when I set the *unicode-test-string* to something as
> simple as "abc".
OK I downloaded it and it works for me with LWW5. (Windows)
I will send you the pdf and the ufm off-list.
TYPESET 27 > (pdf:load-ttu-font #P"d:/tmp/gentium102/GenAI102.ufm"
#P"d:/tmp/gentium102/GenAI102.ttf")
#
TYPESET 28 > (defparameter *unicode-test-string* (map
unicode-string-type 'code-char
'(382 65 124 250 251 252 253)))
*unicode-test-string*
TYPESET 29 >
(defun unicode-hello (&optional (file #P"d:/tmp/hello-u.pdf"))
(pdf:with-document ()
(pdf:with-page ()
(pdf:with-outline-level ("Unicode Example"
(pdf:register-page-reference))
(pdf:set-line-width 0.1)
(let ((content
(compile-text ()
(vspace 100)
(paragraph (:h-align :center :font "Helvetica-Bold" :font-size
50 :color '(0.0 0 0.8))
"cl-typesetting" :eol
(vspace 2)
(hrule :dy 1)
(with-style (:font "Times-Italic" :font-size 26)
"The cool Common Lisp typesetting system")
(vspace 50)
(with-style (:font "GentiumAlt-Italic" :font-size 72)
(put-string *unicode-test-string*))))))
(draw-block content 20 800 545 700))))
(pdf:write-document file)))
unicode-hello
TYPESET 30 > (unicode-hello)
nil
Marc
From peter at gigamonkeys.com Tue Sep 11 19:52:42 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Tue, 11 Sep 2007 12:52:42 -0700
Subject: [cl-pdf-devel] Re: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E5C216.9010905@fractalconcept.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo> <46E20D2C.4040606@gigamonkeys.com> <46E2802F.5050507@fractalconcept.com> <46E2BCC6.1010803@gigamonkeys.com> <46E44985.2080205@fractalconcept.com> <46E44C0A.4010208@fractalconcept.com>
<46E59B96.1030807@gigamonkeys.com>
<46E5A714.2040200@gigamonkeys.com>
<46E5C216.9010905@fractalconcept.com>
Message-ID: <46E6F20A.2020107@gigamonkeys.com>
Marc Battyani wrote:
> Peter Seibel wrote:
>> Okay, I can't get unicode-hello to work on Allegro 8.1 on GNU/Linux
>> with any Unicode fonts I have. Perhaps I'm generating bad .ufm files?
>> (I tried to build your special ttf2ufm program Marc but couldn't
>> figure out how so used another one I found on the web.) Maybe to
>> remove at least one variable we can use the same font. I just tried
>> with Gentium, a free Unicode font which you can get here:
>>
>> http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=Gentium_download
>>
>>
>> Whenever I use Gentium in the place of TimesNewRomanPSMT I get this
>> error, even when I set the *unicode-test-string* to something as
>> simple as "abc".
>
> OK I downloaded it and it works for me with LWW5. (Windows)
> I will send you the pdf and the ufm off-list.
>
> TYPESET 27 > (pdf:load-ttu-font #P"d:/tmp/gentium102/GenAI102.ufm"
> #P"d:/tmp/gentium102/GenAI102.ttf")
> #
Okay, so I figured out how to compile your version of ttf2pt1 (I just
needed to chmod +x the unhtml script to get the make to complete) and
now have things more or less working. One mystery still remaining is
that when I generate PDFs using Cochin, the font I got from my Mac and
converted from .dfont to .ttf using fontforge, it works except when I
render the string "hello, world!" it comes out as "helloworld". Strange.
But it works fine using Gentium with .ufm files produced with your
ttf2pt1. So I'm going to assume something went awry with fontforge.
Using Gentium I still have two problems. One is when I try to include
the characters U+6e05 and U+6167 (Chinese characters) it succeeds in
rendering but the characters are not displayed. Is that becauseGentium
doesn't support those characters?
And finally, when I try to run unicode-hello using Gentium on the full
*unicode-test-string* I get this error.
Index(s) to array function is/are out of the range of the array.
[Condition of type TYPE-ERROR]
Restarts:
0: [ABORT] Return to SLIME's top level.
1: [ABORT] Abort entirely from this (lisp) process.
Backtrace:
0: (SWANK:SWANK-DEBUGGER-HOOK #
#)
1: (ERROR TYPE-ERROR :DATUM NIL :EXPECTED-TYPE FIXNUM :FORMAT-CONTROL
"Index(s) to array function is/are out of the range of the
array."
:FORMAT-ARGUMENTS (NIL))
2: ((METHOD PDF::GET-CHAR-METRICS (T T T)) #\?
#
#)
3: (PDF:GET-KERNING #\? #\? # 36)
4: (PUT-STRING "??????????????????? ?????????????? A????????????????
B????????????????????? ?????????????????? ????????????? ???????????????? ")
5: (UNICODE-HELLO "Gentium")
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: GenAI102.ufm.MINE
URL:
From peter at gigamonkeys.com Tue Sep 11 20:10:28 2007
From: peter at gigamonkeys.com (Peter Seibel)
Date: Tue, 11 Sep 2007 13:10:28 -0700
Subject: [cl-pdf-devel] Re: [cl-typesetting-devel] Unicode?
In-Reply-To: <46E6F20A.2020107@gigamonkeys.com>
References: <46E06EF8.8030309@gigamonkeys.com> <000001c7f10f$894bacf0$8100a8c0@digo> <46E20D2C.4040606@gigamonkeys.com> <46E2802F.5050507@fractalconcept.com> <46E2BCC6.1010803@gigamonkeys.com> <46E44985.2080205@fractalconcept.com> <46E44C0A.4010208@fractalconcept.com> <46E59B96.1030807@gigamonkeys.com> <46E5A714.2040200@gigamonkeys.com> <46E5C216.9010905@fractalconcept.com>
<46E6F20A.2020107@gigamonkeys.com>
Message-ID: <46E6F634.20704@gigamonkeys.com>
Peter Seibel wrote:
> Using Gentium I still have two problems. One is when I try to include
> the characters U+6e05 and U+6167 (Chinese characters) it succeeds in
> rendering but the characters are not displayed. Is that becauseGentium
> doesn't support those characters?
So that must be it because I got these characters properly rendered
using a Chinese font I got off the web. Now the only thing I don't know
is how non-Chinese characters get rendered when using a Chinese font. Do
Chinese fonts typically provide glyphs for latin characters as well? If
so, it might be nice to have a way (maybe in cl-typesetting rather than
cl-pdf) to define a list of fonts that will be tried in order so I can
have a block of text that is set primarily in, say, Gentium, but which
will fall back to HanWangMingMedium for any Chinese characters for which
Gentium doesn't provide a glyph. Would that be possible--i.e. can
cl-pdf/cl-typesetting tell when there's no glyph for a codepoint?
-Peter
--
Peter Seibel : peter at gigamonkeys.com
A Billion Monkeys Can't be Wrong : http://www.gigamonkeys.com/blog/
Practical Common Lisp : http://www.gigamonkeys.com/book/
Coders at Work : http://www.codersatwork.com/