[Cuis] Fixed-Width Font

H. Hirzel hannes.hirzel at gmail.com
Sat Jul 25 13:57:43 CDT 2015


Then I would try to export the Squeak BitstreamVeraSansMono in
StrikeFont format and import into Cuis. That should work ...

On 7/25/15, Dan Norton <dnorton at mindspring.com> wrote:
> Form class>>fromBinaryStream: has firstByte = 66, this is not an error but
> part of "BM" in the header of the .bmp file.
>
> The "Unsupported format..." error is caused by Cuis wanting biSize = 40 and
> ImageMagick
> putting a different value.
>
> Squeak has BitstreamVeraSansMono, a fixed-width font. Why couldn't  that be
> used to
> produce .bmp files instead of ImageMagick? The BM header would be compatible
> with Cuis
> AFAIKT and it might get us a fixed-width font on Cuis.
>
> On 25 Jul 2015 at 13:14, H. Hirzel wrote:
>
>> I did the StrikeFont exercises in Squeak. So it could be that
>> Squeak
>> has a BMP file reader which is no longer included in Cuis. A thing
>> to
>> check....
>>
>> --HH
>>
>> On 7/25/15, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>> > I would try to save the *.bmp file as a *.gif file in Microsoft
>> Paint
>> > and then try to load it with
>> >
>> > ImageReadWriter class>>formFromStream:
>> >
>> > HTH
>> >
>> > --HH
>> >
>> > On 7/24/15, Dan Norton <dnorton at mindspring.com> wrote:
>> >> On 20 Jul 2015 at 19:33, Juan Vuletich wrote:
>> >>
>> >>>
>> >>> Hi Dan,
>> >>>
>> >>> On 7/19/2015 10:13 PM, Dan Norton wrote:
>> >>>     On 19 Jul 2015 at 10:31, Juan Vuletich wrote:
>> >>>
>> >>>     > On 7/18/2015 3:37 PM, Dan Norton wrote:
>> >>>     > > On 11 Jul 2015 at 13:40, Juan Vuletich wrote:
>> >>>     > >
>> >>>     > >> Hi Folks,
>> >>>     > >>
>> >>>     > >> It is not too hard to build new StrikeFonts. You need
>> to
>> >>> build,
>> >>>     > by
>> >>>     > >> hand,
>> >>>     > >> files like the ones in here:
>> >>>     > >>
>> >>>     >
>> >>>
>> https://dl.dropboxusercontent.com/u/13285702/BitmapDejaVuAllSizes.zi
>> >>>     > >> p
>> >>>     > >> and learn a bit about stuff like #installDejaVu2 .
>> Maybe it
>> >>> was
>> >>>     > with
>> >>>     > >> this method and the files in this zip that built the
>> >>> existing
>> >>>     > >> instances
>> >>>     > >> of StrikeFont. Not sure.
>> >>>     > >>
>> >>>     > > That's intrigueing but I can't reproduce it. Maybe the
>> .bmp
>> >>> but
>> >>>     > where did you get the .txt?
>> >>>     > >
>> >>>     > >   - Dan
>> >>>     >
>> >>>     > I wrote them with a text editor. Check #installDejaVu2
>> and
>> >>> really
>> >>>     > try to
>> >>>     > understand how StrikeFonts work and how they are built
>> with
>> >>> this
>> >>>     > method.
>> >>>     > Maybe you'll become enlightened.
>> >>>     >
>> >>>
>> >>>     A StrikeFont consists of a characterToGlyphMap, xTable,
>> glyphs,
>> >>> name, and several
>> >>>     scalars. StrikeFont class methods create fonts by
>> processing
>> >>> file pairs assumed to be in the
>> >>>     "AAFonts" subdirectory. For example:
>> >>>
>> >>>     DejaVu Sans Oblique 14.bmp
>> >>>     DejaVu Sans Oblique 14.txt
>> >>>
>> >>>     Is one such pair providing the italic (oblique) style for
>> >>> 14-point size. There is a pair for every
>> >>>     font size and style: base, bold, italic, and bold italic.
>> >>> Therefore a font such as "DejaVu Sans"
>> >>>     which is available in the size interval 5 to 24 requires
>> 160
>> >>> files. The file names are stylized
>> >>>     and encoded in the StrikeFont class methods.
>> >>>
>> >>>     Glyphs come from the .bmp file. The .txt file is a string
>> of
>> >>> numbers; the first three specify
>> >>>     pointSize, ascent, and descent. The rest of the numbers in
>> the
>> >>> .txt file are used to form the
>> >>>     xTable, which is the index into the glyphs for a character.
>> The
>> >>> characterToGlyphMap is an
>> >>>     array of 256 entries which map a character's ascii value to
>> the
>> >>> xTable and thence to the
>> >>>     glyphs.
>> >>>
>> >>>     The bold, italic, and bold italic styles are stashed as
>> >>> derivatives of the base and not
>> >>>     selectable from the current menus.
>> >>>
>> >>>     StrikeFont is a subclass of AbstractFont, which has class
>> >>> variables AvailableFonts and
>> >>>     DefaultFont.
>> >>>
>> >>>     If it can't find a file, StrikeFont will loop.
>> >>>
>> >>> Great! You got it all.
>> >>>
>> >>>     In regard to creating the .bmp and .txt files, you say, "
>> I
>> >>> wrote them with a text editor."
>> >>>     Please tell me which text editor you used. None of mine do
>> >>> that.
>> >>>
>> >>> The bmp files can be created with screen capture program,
>> after
>> >>> entering suitable text in it. Maybe
>> >>> you need to stitch several pieces together, etc. WRT the txt
>> files,
>> >>> well, the editor didn't do it for
>> >>> me. I wrote them. I _typed_ them. Maybe I used some (long lost)
>> code
>> >>> to look for white columns
>> >>> separating glyphs, but I'm not really sure.
>> #xTallyPixelValue:orNot:
>> >>> and friends are great for this
>> >>> kind of stuff.
>> >>>
>> >>> In any case, it will be easier for you, as you want a
>> monospaced
>> >>> font. Printing something like (32
>> >>> to: 255) collect: [ :ascii | ascii-32 * 9 ] into the file might
>> be
>> >>> enough.
>> >>>
>> >>> You have all the pieces at hand. it just requires a bit of
>> >>> patience.
>> >>>
>> >>
>> >> Encouraged by this, I have tried cobbling a fixed-width
>> StrikeFont from
>> >> Courier New which
>> >> comes with Windows7. At this point, if some kind of fixed-width
>> smudges
>> >> would appear then
>> >> it would be progress. Here's where I am:
>> >>
>> >> The immediate problem is an error: 'Unsupported format. Try
>> >> "Graphics-Files-Additional.pck.st".' which arises when
>> ImageReadWriter
>> >> class>>formFromStream: examines the .bmp file.
>> >>
>> >> Higher in the context, Form class>>fromBinaryStream: has
>> firstByte = 66
>> >> which I mention
>> >> because of the way the .bmp file was made. Here is the process I
>> used,
>> >> from
>> >> the bottom up:
>> >>
>> >> ImageMagick freeware	 produces the glyphs but with something
>> stubbornly
>> >> prepended. The
>> >> command line is:
>> >> 	convert -font \windows\fonts\cour.ttf -pointsize 12
>> >> label:@characters.txt
>> >> courier12.bmp
>> >>
>> >> Using NotePad, save characters.txt with encoding: UTF-8.
>> >>
>> >> Paste the character string onto a NotePad
>> >>
>> >> Copy the character string.
>> >>
>> >> In a Cuis workspace print:
>> >> 	str := String new writeStream.
>> >> 	(32 to: 255) do: [ :n | str nextPut: n asCharacter]
>> >> 	str contents.
>> >>
>> >> Code package and files allegedly for courier strike fonts are
>> attached if
>> >> you're
>> >> interested.
>> >>
>> >>  - Dan
>> >>
>> >>
>> >
>>
>> _______________________________________________
>> Cuis mailing list
>> Cuis at jvuletich.org
>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>
>
>
> _______________________________________________
> Cuis mailing list
> Cuis at jvuletich.org
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>




More information about the Cuis mailing list