---
name: "Unicode::LineBreak::JA_JP"
section: "3pm"
platform: "linux"
package: "libunicode-linebreak-perl"
version: "0.0.20120401-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Unicode::LineBreak::JA_JP"
---

# Unicode::LineBreak::JA\_JP(3pm)

UAX #14 Unicode XXXXXXXXX

## NAME

Unicode::LineBreak::JA\_JP - UAX #14 Unicode XXXXXXXXX

## 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 XXXXXXXXXX

### XX

XXXXXXXXXXXXX

**XXXX**Xmandatory breakXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX **XXXX**XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \[UAX #14\] XXXXXXXXXXXX**XXXX**Xdirect breakXX**XXXX**Xindirect breakXXXXXX

**XXXXXXXX**Xalphabetic charactersXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX **XXXXXXXX**Xideographic charactersXXXXXXXXXXXXXXXXXXXX \[UAX #14\] XXXXXXXXXXXXXXXX AL XXXXXXXXXXXXXXXX ID XXXXXXX (XXXXXXXXXXXXXXXXXXXXXXXX)X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXX**XX**XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX**XX**XwideXXX**XX**XnarrowXXXXXXXXXXXnonspacingXXXXXXXXXXXXX 2 XX1 XX0 XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX

## PUBLIC INTERFACE

### XXXX

- new (\[KEY =\> VALUE, ...\])

  *XXXXXXX*X KEY =\> VALUE XXXXXXX "XXXXX" XXXX

- $self-\>break (STRING)

  *XXXXXXXXXX*X Unicode XXX STRING XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX

- $self-\>break\_partial (STRING)

  *XXXXXXXXXX*X *break()* XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXSTRING XXX `"undef"` XXXXX

- $self-\>config (KEY)

  - $self-\>config (KEY =\> VALUE, ...)

  *XXXXXXXXXX*X XXXXXXXXXXXXX KEY =\> VALUE XXXXXXX "XXXXX" XXXX

- $self-\>copy

  *XXXXXXXXXX*X XXXXXXXXXXXXXXXXXXXX

### XXXXX

- $self-\>breakingRule (BEFORESTR, AFTERSTR)

  *XXXXXXXXXX*X XXX BEFORESTR X AFTERSTR XXXXXXXXXXXXX XXXXXXX "XX" XXXX

  **X**: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *XXXXXXXXXXXXXXXXbreak()* XXXXXXXXXXXXXX

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

  *XX*X XXXXXXXX CHARSET XXXXXXXX LANGUAGE XXXXXXXXXX/XXXXXXXXX

*XXXXXXXXX*

- $self-\>eawidth (STRING)

  *XXXXXXXXXX*X 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)

  *XXXXXXXXXX*X 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)

  *XXXXXXXXXX*X XX BEFORE XXX AFTER XXXXXXXXXXXXX XXXXXXX "XX" XXXX

  **X**: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  **X**: *breakingRule()* XXXXXXXX

- $self-\>strsize (LEN, PRE, SPC, STR)

  *XXXXXXXXXX*X \[UAX #11\] XXXXXXXXXXXXXXXUnicode XXX PRE.SPC.STR X*XX*XXXXXX

  **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 `998`X `0` XXXXXXX

- ColMin =\> NUMBER

  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX `0`X

- ColMax =\> NUMBER

  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX `76`X

"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 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX**XXXX**XXXXXXX "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 => \&paraformat);
    $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 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

*XXXXX*

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.pm*X XXX *Unicode/LineBreak/Defaults.pm.sample* XXXXXXXX

## BUGS

XXXXXXXXXXXXXXXXXXXXXXXXX

CPAN 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` XXXXXXXXXXX

XXXXXXXXXXXX http://hatuka.nezumi.nu/repos/Unicode-LineBreak/ \<http://hatuka.nezumi.nu/repos/Unicode-LineBreak/\> XXXX

### XXXXXXX

XXXXXXXXXXXXXXXXXXXXXUnicode XX 6.1.0XXXXX

XXXXXXXXXXXXXX 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/\>.

## SEE ALSO

Text::LineFold::JA\_JP, Text::Wrap.

## 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.
