auto
     �Ä¿Â      File not found.
  :   	ˆl–ß=¿J	õ4Å ¼ Eq–®µ1hßÁ„¡qŸa–Ým_J*j"Tâ€~à¸)‹FÿÄ ?÷     	=encoding utf-8

=head1 NAME

Unicode::LineBreak - UAX #14 Unicode Line Breaking Algorithm

=head1 SYNOPSIS

    use Unicode::LineBreak;
    $lb = Unicode::LineBreak->new();
    $broken = $lb->break($string);

=head1 DESCRIPTION

Unicode::LineBreak performs Line Breaking Algorithm described in Unicode
Standard Annex #14 [UAX #14]. East_Asian_Width informative property
defined by Annex #11 [UAX #11] will be concerned to determine breaking
positions.

=head2 Terminology

Following terms are used for convenience.

B<Mandatory break> is obligatory line breaking behavior defined by core
rules and performed regardless of surrounding characters.
B<Arbitrary break> is line breaking behavior allowed by core rules
and chosen by user to perform it.
Arbitrary break includes B<direct break> and B<indirect break>
defined by [UAX #14].

B<Alphabetic characters> are characters usually no line breaks are allowed
between pairs of them, except that other characters provide break
oppotunities.
B<Ideographic characters> are characters that usually allow line breaks
both before and after themselves.
[UAX #14] classifies most of alphabetic to AL and most of ideographic to ID
(These terms are inaccurate from the point of view by grammatology).
On several scripts, breaking positions are not obvious by each characters
therefore heuristic based on dictionary is used.

B<Number of columns> of a string is not always equal to the number of characters it contains:
Each of characters is either B<wide>, B<narrow> or nonspacing;
they occupy 2, 1 or 0 columns, respectively.
Several characters may be both wide and narrow by the contexts they are used.
Characters may have more various widths by customization.

=head1 PUBLIC INTERFACE

=head2 Line Breaking

=over 4

=item new ([KEY => VALUE, ...])

I<Constructor>.
About KEY => VALUE pairs see L</Options>.

=item break (STRING)

I<Instance method>.
Break Unicode string STRING and returns it.
In array context, returns array of lines contained in the result.

=item break_partial (STRING)

I<Instance method>.
Same as break() but accepts incremental inputs.
Give C<undef> as STRING argument to specify that input was completed.

=item config (KEY)

=item config (KEY => VALUE, ...)

I<Instance method>.
Get or update configuration.  About KEY => VALUE pairs see L</Options>.

=item copy

I<Copy constructor>.
Create a copy of object instance.

=begin comment

=item reset

I<Undocumented>.

=end comment

=back

=head2 Getting Informations

=over 4

=item breakingRule (BEFORESTR, AFTERSTR)

I<Instance method>.
Get possible line breaking behavior between strings BEFORESTR and AFTERSTR.
See L</Constants> for returned value.

B<Note>:
This method gives just approximate description of line breaking behavior.
Use break() and so on to wrap actual texts.

=item context ([Charset => CHARSET], [Language => LANGUAGE])

I<Function>.
Get language/region context used by character set CHARSET or
language LANGUAGE.

=back

=begin comment

=head3 Methods Planned to be Deprecated

=over 4

=item lbrule (BEFORE, AFTER)

I<Instance method>.
Get possible line breaking behavior between class BEFORE and class AFTER.
See L</Constants> for returned value.

B<Note>:
This method gives just approximate description of line breaking behavior.
Use break() and so on to wrap actual texts.

B<Note>:
Use breakingRule().

=item strsize (LEN, PRE, SPC, STR)

I<Instance method>.
Calculate I<number of columns> of Unicode string
PRE.SPC.STR based on character widths defined by [UAX #11].

B<Note>:
Use L<Unicode::GCString/columns>.

=back

=end comment

=head2 Options

L</new> and L</config> methods accept following pairs.
Some of them affect number of columns ([B<E>]),
grapheme cluster segmentation ([B<G>])
(see also L<Unicode::GCString>) or
line breaking behavior ([B<L>]).

=over 4

=item BreakIndent => C<"YES"> | C<"NO">

[B<L>]
Always allows break after SPACEs at beginning of line, a.k.a. indent.
[UAX #14] does not take account of such usa