<div dir="ltr">Hi Robin,<div><br></div><div>Thanks for the summary. Good luck with your professor. Try to pick his brain as much as possible. People passionate about a topic love having any chance to talk about it, so I'm sure he will share a lot of his knowledge.</div>
<div><br></div><div>It is true that documentation about text rendering isn't as good as it should be, but I don't think is secretly locked in a few selected minds. A lot of these people manage to find some time to write down papers and give talks that are really interesting.</div>
<div><br></div><div>Let me know if I can help you with your learning adventure,</div><div>Luis</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 10 February 2014 15:37, Robin Skahjem-Eriksen <span dir="ltr"><<a href="mailto:robinds@student.matnat.uio.no" target="_blank">robinds@student.matnat.uio.no</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you for the link. I shall look at the code once I get some time off from my semester workload. Hopefully the course I'm taking this semester will improve my C coding skills to better understand the text rendering stack.<br>

<br>
The only reading I've done so far is the article written by Behdad Esfahbod, "State of Text Rendering" along with the docs from the Microsoft font resources. I have a link to it in my first mail. I believe Adobe also have some documents, but I've been more focused on the specifics of multiple caret placements for ligatures formed from vertical glyph stacks, so I haven't been able to read everything yet. I recently discovered that one of the great teachers at my University is very learned in digital typefaces and typography, so I'm preparing myself with some questions I can ask him and see how he responds. If I'm lucky, he'll let me pick his brain for any deeper knowledge he might have on this subject. The IRC channels to watch are #harfbuzz, #fonts and perhaps #freetype on the freenode servers.<br>

<br>
The current status of documentation and knowledge about the deeper aspects of text rendering seems very sparsely documented and with only a few people who actually know every detail of it. I was thinking I should perhaps document my studies of this topic and hopefully manage to structure it in some way that might serve as a future reference.<br>

<br>
Are my assumptions mistaken: Does most of this knowledge only abide in the minds of a relatively small amount of people across the world?<br>
<br>
-Robin<br>
<br>
<br>
On Fri, Feb 07, 2014 at 12:00:18PM -0800, <a href="mailto:harfbuzz-request@lists.freedesktop.org">harfbuzz-request@lists.freedesktop.org</a> wrote:<br>
> Send HarfBuzz mailing list submissions to<br>
>       <a href="mailto:harfbuzz@lists.freedesktop.org">harfbuzz@lists.freedesktop.org</a><br>
><br>
> To subscribe or unsubscribe via the World Wide Web, visit<br>
>       <a href="http://lists.freedesktop.org/mailman/listinfo/harfbuzz" target="_blank">http://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
> or, via email, send a message with subject or body 'help' to<br>
>       <a href="mailto:harfbuzz-request@lists.freedesktop.org">harfbuzz-request@lists.freedesktop.org</a><br>
><br>
> You can reach the person managing the list at<br>
>       <a href="mailto:harfbuzz-owner@lists.freedesktop.org">harfbuzz-owner@lists.freedesktop.org</a><br>
><br>
> When replying, please edit your Subject line so it is more specific<br>
> than "Re: Contents of HarfBuzz digest..."<br>
><br>
><br>
> Today's Topics:<br>
><br>
>    1. Re: Eager CS undergrad thirsty for knowledge about the inner<br>
>       bowels of typeface rendering. Specifically for supporting<br>
>       vertical ligature caret definitions. (Luis de Bethencourt)<br>
><br>
><br>
> ----------------------------------------------------------------------<br>
><br>
> Message: 1<br>
> Date: Fri, 7 Feb 2014 11:42:12 -0500<br>
> From: Luis de Bethencourt <<a href="mailto:luis@debethencourt.com">luis@debethencourt.com</a>><br>
> To: Harfbuzz <<a href="mailto:harfbuzz@lists.freedesktop.org">harfbuzz@lists.freedesktop.org</a>><br>
> Subject: Re: [HarfBuzz] Eager CS undergrad thirsty for knowledge about<br>
>       the inner bowels of typeface rendering. Specifically for supporting<br>
>       vertical ligature caret definitions.<br>
> Message-ID:<br>
>       <<a href="mailto:CAPA4HGV0_39Ta2Zt0vcHmfegng4zM6iNDEhcpaBf9FeUdtkdGg@mail.gmail.com">CAPA4HGV0_39Ta2Zt0vcHmfegng4zM6iNDEhcpaBf9FeUdtkdGg@mail.gmail.com</a>><br>
> Content-Type: text/plain; charset="iso-8859-1"<br>
><br>
> Hello Robin,<br>
><br>
> I am in the opposite place you are. I come from the Computer Science world<br>
> and want to learn more about Typography and how computers handle it. We<br>
> should help each other!<br>
><br>
> Where did you learn all the typography/font concepts and terms you know?<br>
> Recommend any good resource to learn this?<br>
> Which is this IRC channel you mentioned?<br>
><br>
> If you want to play with Harfbuzz, I recommend this example code:<br>
> <a href="https://github.com/lxnt/ex-sdl-freetype-harfbuzz" target="_blank">https://github.com/lxnt/ex-sdl-freetype-harfbuzz</a><br>
><br>
> Your idea of having a dissection of font files similar to the famous<br>
> dissection of executable files is a really good one.<br>
> What do you people in the list thing is a good format to start such a<br>
> project?<br>
><br>
> Cheers,<br>
> Luis<br>
><br>
><br>
> On 29 January 2014 18:21, Robin Skahjem-Eriksen <<br>
> <a href="mailto:robinds@student.matnat.uio.no">robinds@student.matnat.uio.no</a>> wrote:<br>
><br>
> > Thanks for link. I shall make sure to read up on that.<br>
> > I am have slowly started the process of writing some software for Tibetan<br>
> > writing. I thought about how to handle the complex caret behaviour, when<br>
> > people on IRC stated that I should look into getting that done deeper in<br>
> > the text rendering stack.<br>
> ><br>
> > Do you know if Graphite currently support caret placements for ligatures<br>
> > which have been transmuted from a stack of glyphs?<br>
> ><br>
> > -Robin<br>
> ><br>
> ><br>
> > On Wed, Jan 29, 2014 at 02:37:18PM -0500, Ed Trager wrote:<br>
> > > Hi, Robin,<br>
> > ><br>
> > > You might also want to read up about Graphite:<br>
> > ><br>
> > ><br>
> > <a href="http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_home" target="_blank">http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_home</a><br>
> > ><br>
> > > I believe that Graphite has more sophisticated support (compared to<br>
> > > OpenType technology) for caret placement for complex scripts such as<br>
> > > Tibetan.  On the flip side, in comparision to OpenType, Graphite is not<br>
> > > widely used.<br>
> > ><br>
> > > - Ed<br>
> > ><br>
> > ><br>
> > > On Mon, Jan 27, 2014 at 7:32 PM, Robin Skahjem-Eriksen <<br>
> > > <a href="mailto:robinds@student.matnat.uio.no">robinds@student.matnat.uio.no</a>> wrote:<br>
> > ><br>
> > > > I have started to investigate into the matter and I find that there is<br>
> > > > very sparse information readily available. Microsoft had a very<br>
> > interesting<br>
> > > > document, which I have been trying to understand:<br>
> > > > <a href="http://www.microsoft.com/typography/OpenTypeDev/tibetan/intro.htm" target="_blank">http://www.microsoft.com/typography/OpenTypeDev/tibetan/intro.htm</a><br>
> > > > In the section "Examples of Tibetan" (bottom of document), the first<br>
> > > > example shows how a sequence of eight code points are strung together<br>
> > to<br>
> > > > form a Tibetan "syllable". It's not really a syllable. It's called a<br>
> > > > tsheg-bar in Tibetan and a Tibetan word can consist of multiple of<br>
> > these.<br>
> > > > Anyways, all the code points from the second one up to and including<br>
> > the<br>
> > > > fourth one are as far as I can tell formed into a ligature. I have<br>
> > opened<br>
> > > > the MS Himalaya font in Fontforge and seen that this ligature is<br>
> > defined as<br>
> > > > "tibSa_Ga_Rata_Shapkyu" in a location outside of the Unicode address<br>
> > space.<br>
> > > ><br>
> > > > Now, if a user is to work with Tibetan text like any other user of a<br>
> > roman<br>
> > > > script language, the user of Tibetan script would be very<br>
> > disappointed. The<br>
> > > > reason for this is that it is impossible to place the caret and select<br>
> > > > individual characters in this ligature. As of now, you can only select<br>
> > the<br>
> > > > entire stack as a whole selection. This is partly because the glyphs<br>
> > have<br>
> > > > been transmuted into a ligature, but perhaps also because there seems<br>
> > to be<br>
> > > > no definitions of vertical caret ligatures anywhere.<br>
> > > ><br>
> > > > How would one go about defining such an important feature? Should this<br>
> > be<br>
> > > > implemented in the font? Should it be implemented in the software that<br>
> > > > handles the type face? Or perhaps both? While digging through the MS<br>
> > > > Himalaya font, I found that there is a value for a Ligature Caret<br>
> > Count.<br>
> > > > What is this value supposed to be used for? For the ligatures that are<br>
> > > > supposed to represent stacks of multiple glyphs, the Ligature Caret<br>
> > Count<br>
> > > > had values up to 4, which I hope can mean that the font itself<br>
> > contains the<br>
> > > > information I am looking for. Is my assumption correct?<br>
> > > ><br>
> > > > Also. I am highly willing to learn more about the inner bowels of<br>
> > typeface<br>
> > > > rendering. I have taken a course on Computer design and understand how<br>
> > > > everything are bits and how Asssembly language and C handles this. I<br>
> > also<br>
> > > > understand the general idea about Unicode and how this is defined on a<br>
> > low<br>
> > > > level. I've also understood that fonts are basically B?zier curves<br>
> > which<br>
> > > > are rasterized to the screen buffer. There is still a lot of this<br>
> > process<br>
> > > > which I still find very murky, so if anybody knows any in depth reading<br>
> > > > material, I would be very happy to start reading those. I have read<br>
> > State<br>
> > > > of Text Rendering by Behdad Esfahbod, which was a great overview of the<br>
> > > > text rendering stack. But I would really like to get more in depth<br>
> > > > understanding of each layer in the stack.<br>
> > > ><br>
> > > > I would really like to also learn more about Harfbuzz and how to work<br>
> > on<br>
> > > > it. I would really love to spend some time working on it, if I am at a<br>
> > > > level where my code submission would be acceptable to the standards of<br>
> > this<br>
> > > > project. Is there any documentation for Harfbuzz? I've taken a quick<br>
> > glance<br>
> > > > at the source code and run some scripts and make commands, but I<br>
> > honestly<br>
> > > > don't know what's going on. Why are the C files named .cc and some of<br>
> > the<br>
> > > > header files named .hh? I can recognize some font lingo and have a<br>
> > slight<br>
> > > > understanding of what might be going on, but it would be really<br>
> > helpful to<br>
> > > > have something like this for an Openfont file:<br>
> > <a href="http://imgur.com/a/JEObT#0" target="_blank">http://imgur.com/a/JEObT#0</a>.<br>
> > > > I must also say that I have no idea of what harfbuzz is supposed to do<br>
> > and<br>
> > > > how I test or use it once it's compiled. I've tried running some shell<br>
> > > > scripts and bin files that were compiled, but I really have no clue.<br>
> > > ><br>
> > > > Is there somewhere I can learn how to get a handle on understanding the<br>
> > > > technicalities of the Harfbuzz project and learn what I need to start<br>
> > > > contributing?<br>
> > > ><br>
> > > > Sincerely,<br>
> > > > Robin Skahjem-Eriksen<br>
> > > > _______________________________________________<br>
> > > > HarfBuzz mailing list<br>
> > > > <a href="mailto:HarfBuzz@lists.freedesktop.org">HarfBuzz@lists.freedesktop.org</a><br>
> > > > <a href="http://lists.freedesktop.org/mailman/listinfo/harfbuzz" target="_blank">http://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
> > > ><br>
> > _______________________________________________<br>
> > HarfBuzz mailing list<br>
> > <a href="mailto:HarfBuzz@lists.freedesktop.org">HarfBuzz@lists.freedesktop.org</a><br>
> > <a href="http://lists.freedesktop.org/mailman/listinfo/harfbuzz" target="_blank">http://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
> ><br>
> -------------- next part --------------<br>
> An HTML attachment was scrubbed...<br>
> URL: <<a href="http://lists.freedesktop.org/archives/harfbuzz/attachments/20140207/9d39909e/attachment-0001.html" target="_blank">http://lists.freedesktop.org/archives/harfbuzz/attachments/20140207/9d39909e/attachment-0001.html</a>><br>

><br>
> ------------------------------<br>
><br>
> _______________________________________________<br>
> HarfBuzz mailing list<br>
> <a href="mailto:HarfBuzz@lists.freedesktop.org">HarfBuzz@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/harfbuzz" target="_blank">http://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
><br>
><br>
> End of HarfBuzz Digest, Vol 92, Issue 5<br>
> ***************************************<br>
_______________________________________________<br>
HarfBuzz mailing list<br>
<a href="mailto:HarfBuzz@lists.freedesktop.org">HarfBuzz@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/harfbuzz" target="_blank">http://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
</blockquote></div><br></div>