Usermanual; minor wording changes.

This commit is contained in:
Nathan Willis 2018-10-20 17:21:49 +01:00 committed by Khaled Hosny
parent e89f43dc08
commit 01400f7425
3 changed files with 26 additions and 29 deletions

View File

@ -18,9 +18,7 @@
properties that affect shaping. The most important are the properties that affect shaping. The most important are the
text-flow direction (e.g., left-to-right, right-to-left, text-flow direction (e.g., left-to-right, right-to-left,
top-to-bottom, or bottom-to-top), the script tag, and the top-to-bottom, or bottom-to-top), the script tag, and the
language tag. HarfBuzz can attempt to guess the correct values language tag.
for the buffer based on its contents if you do not set them
explicitly.
</para> </para>
<para> <para>
@ -29,7 +27,8 @@
indicate whether or not to visibly render Unicode <literal>Default indicate whether or not to visibly render Unicode <literal>Default
Ignorable</literal> codepoints, and to modify the cluster-merging Ignorable</literal> codepoints, and to modify the cluster-merging
behavior for the buffer. For shaped output buffers, the behavior for the buffer. For shaped output buffers, the
individual X and Y offsets and widths of each glyph are individual X and Y offsets and <literal>advances</literal>
(the logical dimensions) of each glyph are
accessible. HarfBuzz also flags glyphs as accessible. HarfBuzz also flags glyphs as
<literal>UNSAFE_TO_BREAK</literal> if breaking the string at <literal>UNSAFE_TO_BREAK</literal> if breaking the string at
that glyph (e.g., in a line-breaking or hyphenation process) that glyph (e.g., in a line-breaking or hyphenation process)
@ -61,9 +60,10 @@
</para> </para>
<para> <para>
HarfBuzz provides glue code to integrate with FreeType, GObject, HarfBuzz provides glue code to integrate with various other
Uniscribe, and CoreText. Support for integrating with libraries, including FreeType, GObject, and CoreText. Support
DirectWrite is experimental at present. for integrating with Uniscribe and DirectWrite is experimental
at present.
</para> </para>
</section> </section>

View File

@ -280,6 +280,10 @@
check for the presence of Cairo and, if it is found, check for the presence of Cairo and, if it is found,
build with Cairo support. build with Cairo support.
</para> </para>
<para>
Note: Cairo is used only by the HarfBuzz
command-line utilities, and not by the HarfBuzz library.
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -296,6 +300,10 @@
is to check for the presence of Fontconfig and, if it is is to check for the presence of Fontconfig and, if it is
found, build with Fontconfig support. found, build with Fontconfig support.
</para> </para>
<para>
Note: Fontconfig is used only by the HarfBuzz
command-line utilities, and not by the HarfBuzz library.
</para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -296,10 +296,7 @@
<para> <para>
In addition to OpenType shaping, HarfBuzz supports the latest In addition to OpenType shaping, HarfBuzz supports the latest
version of Graphite shaping. HarfBuzz currently supports AAT version of Graphite shaping. HarfBuzz currently supports AAT
shaping only on macOS and iOS systems, and in a pass-through shaping only on macOS and iOS systems.
fashion: HarfBuzz hands off AAT support to the system CoreText
library. However, full, built-in AAT support within HarfBuzz is
under development.
</para> </para>
<para> <para>
@ -321,13 +318,9 @@
all color-font formats (<literal>CBDT</literal>, all color-font formats (<literal>CBDT</literal>,
<literal>sbix</literal>, <literal>COLR/CPAL</literal>, and <literal>sbix</literal>, <literal>COLR/CPAL</literal>, and
<literal>SVG-OT</literal>) and OpenType variable fonts. HarfBuzz <literal>SVG-OT</literal>) and OpenType variable fonts. HarfBuzz
also includes a font-subsetting feature. also includes a font-subsetting feature. HarfBuzz can perform
</para> some low-level math-shaping operations, although it does not
currently perform full shaping for mathematical typesetting.
<para>
HarfBuzz can perform some low-level math-shaping operations,
although it does not currently perform full shaping for
mathematical typesetting.
</para> </para>
<para> <para>
@ -355,9 +348,10 @@
<para> <para>
HarfBuzz won't help you with bidirectionality. If you want to HarfBuzz won't help you with bidirectionality. If you want to
lay out text that includes a mix of Hebrew and English, you lay out text that includes a mix of Hebrew and English, you
will need to ensure that each buffer provided to HarfBuzz has its will need to ensure that each buffer provided to HarfBuzz
characters in the correct layout order. This will be different has all of its characters in the same order and that the
from the logical order in which the Unicode text is stored. In directionality of the buffer is set correctly. This may mean
segmenting the text before it is placed into HarfBuzz buffers. In
other words, the user will hit the keys in the following other words, the user will hit the keys in the following
sequence: sequence:
</para> </para>
@ -374,7 +368,7 @@
This reordering is called <emphasis>bidi processing</emphasis> This reordering is called <emphasis>bidi processing</emphasis>
(&quot;bidi&quot; is short for bidirectional), and there's an (&quot;bidi&quot; is short for bidirectional), and there's an
algorithm as an annex to the Unicode Standard which tells you how algorithm as an annex to the Unicode Standard which tells you how
to reorder a string from logical order into presentation order. to process a string of mixed directionality.
Before sending your string to HarfBuzz, you may need to apply the Before sending your string to HarfBuzz, you may need to apply the
bidi algorithm to it. Libraries such as <ulink bidi algorithm to it. Libraries such as <ulink
url="http://icu-project.org/">ICU</ulink> and <ulink url="http://icu-project.org/">ICU</ulink> and <ulink
@ -412,12 +406,7 @@
HarfBuzz can tell you how wide a shaped piece of text is, which is HarfBuzz can tell you how wide a shaped piece of text is, which is
useful input to a justification algorithm, but it knows nothing useful input to a justification algorithm, but it knows nothing
about paragraphs, lines or line lengths. Nor will it adjust the about paragraphs, lines or line lengths. Nor will it adjust the
space between words to fit them proportionally into a line. If you space between words to fit them proportionally into a line.
want to layout text in paragraphs, you will probably want to send
each word of your text to HarfBuzz to determine its shaped width
after glyph substitutions, then work out how many words will fit
on a line, and then finally output each word of the line separated
by a space of the correct size to fully justify the paragraph.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>