[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