SYNOPSIS
use Unicode::LineBreak;
$lb = Unicode::LineBreak->new();
$broken = $lb->break($string);
DESCRIPTION
Unicode::LineBreak XXUnicode XXXXXX14 [UAX #14] XXXX Unicode XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX11 [UAX #11] XXXXXX East_Asian_Width XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXmandatory breakXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [UAX #14] XXXXXXXXXXXXXXXXXdirect breakXXXXXXXindirect breakXXXXXX
XXXXXXXXXalphabetic charactersXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXideographic charactersXXXXXXXXXXXXXXXXXXXX [UAX #14] XXXXXXXXXXXXXXXX AL XXXXXXXXXXXXXXXX ID XXXXXXX (XXXXXXXXXXXXXXXXXXXXXXXX)X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXwideXXXXXXnarrowXXXXXXXXXXXnonspacingXXXXXXXXXXXXX 2 XX1 XX0 XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
PUBLIC INTERFACE
XXXX
- new ([KEY => VALUE, ...])
- XXXXXXXX KEY => VALUE XXXXXXX ``XXXXX'' XXXX
- $self->break (STRING)
- XXXXXXXXXXX Unicode XXX STRING XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX
- $self->break_partial (STRING)
- XXXXXXXXXXX break() XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXSTRING XXX "undef" XXXXX
- $self->config (KEY)
- $self->config (KEY => VALUE, ...)
- XXXXXXXXXXX XXXXXXXXXXXXX KEY => VALUE XXXXXXX ``XXXXX'' XXXX
- $self->copy
- XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX
XXXXX
- $self->breakingRule (BEFORESTR, AFTERSTR)
-
XXXXXXXXXXX
XXX BEFORESTR X AFTERSTR XXXXXXXXXXXXX
XXXXXXX ``XX'' XXXX
X: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXbreak() XXXXXXXXXXXXXX
- context ([Charset => CHARSET], [Language => LANGUAGE])
- XXX XXXXXXXX CHARSET XXXXXXXX LANGUAGE XXXXXXXXXX/XXXXXXXXX
XXXXXXXXX
- $self->eawidth (STRING)
-
XXXXXXXXXXX
Unicode XXX STRING XXXXXXX East_Asian_Width XXXXXX
XXXXXXX ``XX'' XXXX
EA_Z XXXXXXXX (XXXX) XXXXXXXX
XXX A (XX) XXXXXXXXXXX
X: XXXX ``columns'' in Unicode::GCString XXXXX
- $self->lbclass (STRING)
-
XXXXXXXXXXX
Unicode XXX STRING XXXXXXXXXXXX (XX) XXXX
XXXXXXX ``XX'' XXXX
AIXCJXSAXSGXXX XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (XXXXXXXXX) XXXXXXX SA XXXXXXXXX
X: ``lbc'' in Unicode::GCString X ``lbcext'' in Unicode::GCString XXXXXXXX
- $self->lbrule (BEFORE, AFTER)
-
XXXXXXXXXXX
XX BEFORE XXX AFTER XXXXXXXXXXXXX
XXXXXXX ``XX'' XXXX
X: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X: breakingRule() XXXXXXXX
- $self->strsize (LEN, PRE, SPC, STR)
-
XXXXXXXXXXX
[UAX #11] XXXXXXXXXXXXXXXUnicode XXX PRE.SPC.STR XXXXXXXXX
X: ``columns'' in Unicode::GCString XXXXXXXX
XXXXX
``new''X``config'' XXXXXXXXXXXXXXXXXXX- BreakIndent => "YES" | "NO"
-
XXX SPACE XXX (XXXXX) XXXXXXXXXXXX
[UAX #14] X SPACE XXXXXXXXXXXXXXXXX
XXXX "YES"X
X: XXXXXXXXXXXX 1.011 XXXXXXX
- CharMax => NUMBER
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX XXXX 998X 0 XXXXXXX
- ColMin => NUMBER
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX 0X
- ColMax => NUMBER
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX 76X
``Urgent'' XXXXXXXX ``XXXXXXXXXXX'' XXXX
- ComplexBreaking => "YES" | "NO"
- XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX "YES"X
- Context => CONTEXT
- XX/XXXXXXXXXXX XXXXXXXX "EASTASIAN" X "NONEASTASIAN"X XXXXXX "NONEASTASIAN"X
- EAWidth => "[" ORD "=>" PROPERTY "]"
- EAWidth => "undef"
-
XXXXXX East_Asian_Width XXXXXXXXX
ORD XXXX UCS XXXXXXXXXXXXXXXXXXX
PROPERTY X East_Asian_Width XXXXXXX (``XX'' XXX)X
XXXXXXXXXXXXXXXXX
"undef" XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXEast_Asian_width XXXXXXXXXXX ``XXXXXXXXX'' XXXX
- Format => METHOD
-
XXXXXXXXXXXXXXXXXX
-
- "SIMPLE"
- XXXXXX XXXXXXXXXXXXXXXXXX
- "NEWLINE"
- ``Newline'' XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX
- "TRIM"
- XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX
- "undef"
- XXXXXX (XXXXXX)X
- XXXXXXXXXX
- ``XXXX'' XXXX
-
- HangulAsAL => "YES" | "NO"
- XXXXXXXXXXXXXXXXXconjoining jamoXXXXXXXXXX (AL) XXXX XXXX "NO"X
- LBClass => "[" ORD "=>" CLASS "]"
- LBClass => "undef"
-
XXXXXXXXXXX (XX) XXXXXXX
ORD XXXX UCS XXXXXXXXXXXXXXXXXXX
CLASS XXXXXXXXXXX (``XX'' XXX)X
XXXXXXXXXXXXXXXXX
"undef" XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX ``XXXXXXXXX'' XXXX
- LegacyCM => "YES" | "NO"
- XXXXXXXXXXXXXXXXXXXXXX (ID) XXXX Unicode 5.0 XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX "YES"X
- Newline => STRING
- XXXXXXXXX Unicode XXXX XXXX "\n"X
- Prep => METHOD
-
XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXX
METHOD XXXXXXXXXXXXXX
-
- "NONBREAKURI"
- URI XXXXXXX
- "BREAKURI"
- URI XXXXXXXXXXXXXXXXX XXXX [CMOS] X 6.17 XX 17.11 XXXXX
- "[" REGEX, SUBREF "]"
- XXXX REGEX XXXXXXXXXXXSUBREF XXXXXXXXXXXXXXXXXX XXX ``XXXXXXXXXXX'' XXXX
- "undef"
- XXXXXXXXXXXXXXXXXXXX
-
- Sizing => METHOD
-
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX
-
- "UAX11"
- XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX
- "undef"
- XXXXXXXXXXXXXXX (Unicode::GCString XX) XXXXXX
- XXXXXXXXXX
- ``XXXXXXX'' XXXX
-
``EAWidth'' XXXXXXXXX
-
- Urgent => METHOD
-
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXX
-
- "CROAK"
- XXXXXXXXXXXXXXXX
- "FORCE"
- XXXXXXXXXXXXXXXXX
- "undef"
- XXXXXX XXXXXXXXXXXXXX
- XXXXXXXXXX
- ``XXXXXXXXXXX'' XXXX
-
- ViramaAsJoiner => "YES" | "NO"
- XXXXXXX (XXXXXXXXXXXXXXXXXXXXXXXXX) XXXXXXXXXXXXXXX XXXX "YES"X X: XXXXXXXXXXXX 2011.001_29 XXXXXXX XXXXXXXXX "NO" XXXXXXXX XXXX[UAX #29] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXX
- TailorEA => "[" ORD "=>" PROPERTY, ... "]"
- ``EAWidth'' XXXXXXX
- TailorLB => "[" ORD "=>" CLASS, ... "]"
- ``LBClass'' XXXXXXX
- UserBreaking => "["METHOD, ..."]"
- ``Prep'' XXXXXXX
XX
- "EA_Na", "EA_N", "EA_A", "EA_W", "EA_H", "EA_F", "EA_Z"
- [UAX #11] XXXXXX 6 XX East_Asian_Width XXXXXXXXXXXXXXXXXXXX EA_ZX
- "LB_BK", "LB_CR", "LB_LF", "LB_NL", "LB_SP", "LB_OP", "LB_CL", "LB_CP", "LB_QU", "LB_GL", "LB_NS", "LB_EX", "LB_SY", "LB_IS", "LB_PR", "LB_PO", "LB_NU", "LB_AL", "LB_HL", "LB_ID", "LB_IN", "LB_HY", "LB_BA", "LB_BB", "LB_B2", "LB_CB", "LB_ZW", "LB_CM", "LB_WJ", "LB_H2", "LB_H3", "LB_JL", "LB_JV", "LB_JT", "LB_SG", "LB_AI", "LB_CJ", "LB_SA", "LB_XX"
-
[UAX #14] XXXXXX 39 XXXXXX (XX) XXXXX
X: XXX CP XUnicode 5.2.0XXXXXXXX XXX HL X CJ XUnicode 6.1.0XXXXXXXX
- "MANDATORY", "DIRECT", "INDIRECT", "PROHIBITED"
-
XXXXXXXX 4 XXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- "Unicode::LineBreak::SouthEastAsian::supported"
-
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXX "undef"X
X: XXXXXXXXXXXXXXXXXXXXXXXXXXX
- "UNICODE_VERSION"
- XXXXXXXXXXXX Unicode XXXXXXXXXXX
CUSTOMIZATION
XXXX
``Format'' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 3 XXXXXXXXXXXXXXXX
$XXX = &XXXXXX(SELF, EVENT, STR);
SELF X Unicode::LineBreak XXXXXXXEVENT XXXXXXXXXXXXXXXXXXXXXSTR XXXXXXXXXXXX Unicode XXXXXXX
EVENT |XXXXX |STR ----------------------------------------------------------------- "sot" |XXXXXX |XXXXXXX "sop" |XXXXXX |XXXXXX "sol" |XXXXXX |XXXXXXX "" |XXXXX |XXX (XXXXXXXXXX) "eol" |XXXX |XXXXXXXXXXX "eop" |XXXX |XXXXXXXXXXX "eot" |XXXXXX |XXXXXXXXXXX (XXX) -----------------------------------------------------------------
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"undef" XXXXXXX XXX"sot"X"sop"X"sol" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX: XXXXXXXXXXXXXXXXXXXXXXX Unicode::GCString::JA_JP XXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
sub fmt { if ($_[1] =~ /^eo/) { return "\n"; } return undef; } my $lb = Unicode::LineBreak->new(Format => \&fmt); $output = $lb->break($text);
XXXXXXXXXXX
XXXXXXXXXXXXX CharMaxXColMaxXColMin XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ``Urgent'' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2 XXXXXXXXXXXXXXXX
@XXX = &XXXXXX(SELF, STR);
SELF X Unicode::LineBreak XXXXXXXSTR XXXXXX Unicode XXXX
XXXXXXXXXXX STR XXXXXXXXXXXXXXXXXXXXXX
XX: XXXXXXXXXXXXXXXXXXXXXXX Unicode::GCString::JA_JP XXX
XXXXXXXXXXXXXXXXXX (XXXXXXX) XXXXXXXXXXXXXXXXXXXXXXXXX
sub hyphenize { return map {$_ =~ s/yl$/yl-/; $_} split /(\w+?yl(?=\w))/, $_[1]; } my $lb = Unicode::LineBreak->new(Urgent => \&hyphenize); $output = $lb->break("Methionylthreonylthreonylglutaminylarginyl...");
``Prep'' XXXXXX [REGEX, SUBREF] XXXXXXXXXXXXXXXXXXXX 2 XXXXXXXXXXXXXXXX
@XXX = &XXXXXX(SELF, STR);
SELF X Unicode::LineBreak XXXXXXXSTR X REGEX XXXXXXXXXXX Unicode XXXX
XXXXXXXXXXX STR XXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXHTTP URL X [CMOS] XXXXXXXXXXXX
my $url = qr{http://[\x21-\x7E]+}i; sub breakurl { my $self = shift; my $str = shift; return split m{(?<=[/]) (?=[^/]) | (?<=[^-.]) (?=[-~.,_?\#%=&]) | (?<=[=&]) (?=.)}x, $str; } my $lb = Unicode::LineBreak->new(Prep => [$url, \&breakurl]); $output = $lb->break($string);
XXXXX
Unicode::LineBreak XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
sub paraformat { my $self = shift; my $action = shift; my $str = shift; if ($action eq 'sot' or $action eq 'sop') { $self->{'line'} = ''; } elsif ($action eq '') { $self->{'line'} = $str; } elsif ($action eq 'eol') { return "\n"; } elsif ($action eq 'eop') { if (length $self->{'line'}) { return "\n\n"; } else { return "\n"; } } elsif ($action eq 'eot') { return "\n"; } return undef; } my $lb = Unicode::LineBreak->new(Format => \¶format); $output = $lb->break($string);
XXXXXXX
``Sizing'' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 5 XXXXXXXXXXXXXXXX
$XX = &XXXXXX(SELF, LEN, PRE, SPC, STR);
SELF X Unicode::LineBreak XXXXXXXLEN XXXXXXXXXXXXPRE XXXXX Unicode XXXXSPC XXXXXXXXXXXSTR XXXXX Unicode XXXX
XXXXXXX "PRE.SPC.STR" XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX``ColMin'' XXXXXXXX ``ColMax'' XXXXXXXXXXXXXXXXXXXXXX
XX: XXXXXXXXXXXXXXXXXXXXXXX Unicode::GCString::JA_JP XXX
XXXXXXXXXXXXX 8 XXXXXXXXXXXXXXXXXXXXXXX
sub tabbedsizing { my ($self, $cols, $pre, $spc, $str) = @_; my $spcstr = $spc.$str; while ($spcstr->lbc == LB_SP) { my $c = $spcstr->item(0); if ($c eq "\t") { $cols += 8 - $cols % 8; } else { $cols += $c->columns; } $spcstr = $spcstr->substr(1); } $cols += $spcstr->columns; return $cols; }; my $lb = Unicode::LineBreak->new(LBClass => [ord("\t") => LB_SP], Sizing => \&tabbedsizing); $output = $lb->break($string);
XXXXXXXXX
``LBClass'' XXXXXXXX ``EAWidth'' XXXXXXXXXXXXXXXXX (XX) X East_Asian_Width XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX (NS XXX CJ) XXXX XXXXX LBClass XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (ID) XXXXX
- "KANA_NONSTARTERS() => LB_ID"
- XXXXXXXXX
- "IDEOGRAPHIC_ITERATION MARKS() => LB_ID"
-
XXXXXXXXXXXXX
U+3005 XXXXXXU+303B XXXXXU+309D XXXXXXXXXU+309E XXXXXXXX (XX)XU+30FD XXXXXXXXXU+30FE XXXXXXXX (XX)X
XXXXXXXXXXXXXX
- "KANA_SMALL_LETTERS() => LB_ID"
- "KANA_PROLONGED_SOUND_MARKS() => LB_ID"
-
XXXXXX
XXXXXX U+3041 X, U+3043 X, U+3045 X, U+3047 X, U+3049 X, U+3063 X, U+3083 X, U+3085 X, U+3087 X, U+308E X, U+3095 X, U+3096 XX
XXXXXX U+30A1 X, U+30A3 X, U+30A5 X, U+30A7 X, U+30A9 X, U+30C3 X, U+30E3 X, U+30E5 X, U+30E7 X, U+30EE X, U+30F5 X, U+30F6 XX
XXXXXXX U+31F0 X - U+31FF XX
XXXXXX (XXXX) U+FF67 X - U+FF6F XX
XXXXX U+30FC XXXXXU+FF70 XXXX (XXXX)X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[JIS X 4051] 6.1.1X[JLREQ] 3.1.7 X [UAX14] XXXXXXXXX
XXU+3095 X, U+3096 X, U+30F5 X, U+30F6 X XXXXXXXXXXXX
- "MASU_MARK() => LB_ID"
-
U+303C XXXXX
XXXXXXXXXXXXXXXXX "XX" X "XX" XXXXXXXXXXXX
XXXXXXX [UAX #14] XXXXXXXX (NS) XXXXXXXX[JIS X 4051] X [JLREQ] XXXXXXX (13) X cl-19 (ID XXX) XXXXXXX
XXXXXX
XXXXXXXXXXXXXXXXXX (QU) XXXX
- "BACKWARD_QUOTES() => LB_OP, FORWARD_QUOTES() => LB_CL"
- XXXX (XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX) XXXXXXXX 9 XXXXXXXXXXX (X X) XXXXXXX 9 XXXXXXX (X X) XXXXX
- "FORWARD_QUOTES() => LB_OP, BACKWARD_QUOTES() => LB_CL"
- XXXXX (XXXXXXXXXXXXXXXX) XXX9 XXXXXXX (X X) XXXXXXX9 XXXXXXXXXXX (X X) XXXXXXXXXX
- "BACKWARD_GUILLEMETS() => LB_OP, FORWARD_GUILLEMETS() => LB_CL"
- XXXXXXXXXXXXXXXXXXXXXXXXXXXX (X X) XXXXXXXXXXXXXX (X X) XXXXXXXXXX
- "FORWARD_GUILLEMETS() => LB_OP, BACKWARD_GUILLEMETS() => LB_CL"
- XXXXXXXXXXXXXXXXXXXXX (X X) XXXXXXXXXXXXXX (X X) XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX9 XXXXXXXX XXXXXXX (X X X X) XXXXXXXXXXXXXXXXX
East_Asian_Width XX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX (A) X East_Asian_Width XXXXXXXXXXXXXXXXXXXXXX "EASTASIAN" XXXXXXXXXXXXX "EAWidth => [ AMBIGUOUS_"*"() => EA_N ]" XXXXXXXXXXXXXXXXXXXXXXXXXXX
- "AMBIGUOUS_ALPHABETICS() => EA_N"
- XXXXXXXXX East_Asian_Width XX N (XX) XXXXXXX
- "AMBIGUOUS_CYRILLIC() => EA_N"
- "AMBIGUOUS_GREEK() => EA_N"
- "AMBIGUOUS_LATIN() => EA_N"
- XX (A) XXXXXXXXXXXXXXXXXXXXXXXXXX (N) XXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXUnicode XXXXXX (F) XXXXXXXXXXXXXX (Na) XXXXXXXXXXXXXXXXEAWidth XXXXXXXXXXXXXXXXXXXXXXXXXXX "EASTASIAN" XXXXXXXXXXXX
- "QUESTIONABLE_NARROW_SIGNS() => EA_A"
- U+00A2 XXXXXXU+00A3 XXXXXXU+00A5 XXX (XXXXXX)XU+00A6 XXXXU+00AC XXXU+00AF XXXXX
XXXXXX
``new'' XXXXXXX ``config'' XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX Unicode/LineBreak/Defaults.pmX XXX Unicode/LineBreak/Defaults.pm.sample XXXXXXXXBUGS
XXXXXXXXXXXXXXXXXXXXXXXXXCPAN Request Tracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Unicode-LineBreak <http://rt.cpan.org/Public/Dist/Display.html?Name=Unicode-LineBreak>.
VERSION
$VERSION XXXXXXXXXXXXXXXXXXXXXXX http://hatuka.nezumi.nu/repos/Unicode-LineBreak/ <http://hatuka.nezumi.nu/repos/Unicode-LineBreak/> XXXX
XXXXXXX
XXXXXXXXXXXXXXXXXXXXXUnicode XX 6.1.0XXXXXXXXXXXXXXXXXXX UAX14-C2 XXXXXXXXXXX
- XXXXXXXXXXXX NS XXXXXX ID XXXXXXXXXXX
- XXXXXXXXXXXXXXXXXXX ID XXXXXX AL XXXXXXXXXXX
- AI XXXXXXXXX AL X ID XXXXXXXXXXXXXXX
- CB XXXXXXXXXXXXXXX
- CJ XXXXXXXXXXX NS XXXXXXXXXXXXXXXXXXXXXXXX
- XXXXXXXXXXXXXXXXXXXXXXXXX SA XXXXXXXXX AL XXXXXX XXXXGrapheme_Cluster_Break XXXXX Extend X SpacingMark XXXXXX CM XXXXXX
- SG X XX XXXXXXXXX AL XXXXXX
-
XXX UCS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX | UAX #14 | UAX #11 | XX ------------------------------------------------------------- U+3400..U+4DBF | ID | W | CJKXX U+4E00..U+9FFF | ID | W | CJKXX U+D800..U+DFFF | AL (SG) | N | XXXXX U+E000..U+F8FF | AL (XX) | F X N (A) | XXXX U+F900..U+FAFF | ID | W | CJKXX U+20000..U+2FFFD | ID | W | CJKXX U+30000..U+3FFFD | ID | W | XXX U+F0000..U+FFFFD | AL (XX) | F X N (A) | XXXX U+100000..U+10FFFD | AL (XX) | F X N (A) | XXXX XXXXXXXX | AL (XX) | N | XXXXXX | | | XXXXXX -------------------------------------------------------------
- XXXXXXXXX MnXMeXCcXCfXZlXZp XXXXXXXXXXXX[UAX #11] XXXXXXXX East_Asian_Width XXXXXXXXXXXXXXXXXXXXXXXX Z (XXXXXXX) XXXX
REFERENCES
- [CMOS]
- The Chicago Manual of Style, 15th edition. University of Chicago Press, 2003.
- [JIS X 4051]
- JIS X 4051:2004 XXXXXXXXXX. XXXXXX, 2004.
- [JLREQ]
- XXXXX. XXXXXXXXXX, W3C XXXXXXXXX 2011X11X29X. http://www.w3.org/TR/2011/WD-jlreq-20111129/ja/ <http://www.w3.org/TR/2011/WD-jlreq-20111129/ja/>.
- [UAX #11]
- A. Freytag (2008-2009). Unicode Standard Annex #11: East Asian Width, Revision 17-19. <http://unicode.org/reports/tr11/>.
- [UAX #14]
- A. Freytag and A. Heninger (2008-2012). Unicode Standard Annex #14: Unicode Line Breaking Algorithm, Revision 22-27. <http://unicode.org/reports/tr14/>.
AUTHOR
Copyright (C) 2009-2012 Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.