Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
POD2::JA::Unicode::LinUseraContributed Perl DocPOD2::JA::Unicode::LineBreak(3)

NAME
       Unicode::LineBreak~[ja] - UAX #14 Unicode e!aa^2aca<<a'aaaoa

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

DESCRIPTION		   _
       Unicode::LineBreak a aUnicode ae"aeoa(R)ea+-ae,14 [UAX #14]
       a<section>e?<degree>a^1a	Unicode	e!aa^2aca<<a'aaaoa aa(R)e!aaa
       aa^2a1/2c1/2(R)aae+-oa(R)aaea<<aea+-ae,11 [UAX #11]
       a<section>a(R)c3/4(C)aaa	East_Asian_Width aec^1ae<section>aeae(R)aaa

   ,c"`e<I>a
       a3/4?a(R)ca<<a>>Ya,a(R)c"eaaa1/2?aa

       oa1/4.oa<paragraph>oaoa^2amandatory
       breakaa aaoae~e|aa<section>a(R)aaaa|aaaa"a^2a(R)aea-
       a<<eca?aaac3_4(C)aca<<a(R)e!aaae!aa^2aa1/2a
       "a>>>>aeoaoa^2a aaoae~e|aa<section>eaaaaa|aaaa|a1/4a<_paragraph>aa(R)e!aaa"ae+-oaaa 'aa<<e!aaae!aa^2aa1/2a
       [UAX #14] a<section>a(R)c3/4(C)aaaa>>>>aeaa^2a<<a ,c'ae=Yoaoa^2adirect
       breakaa"'eae=Yoaoa^2aindirect breakaa"aaaa
					      _
       'e^3,c' aeoa,c~a<I>aaeoaaalphabetic charactersaa aea,,aa>>a(R)aea-
       aaa^2a(R)ae(C)a1/4aa,aaaaaaaaaea-
       aaL<<a(R)ea<_ection>e!aa^2a<section>aaaaaeaa `e!"`e<I>aaeoa,c~a<I>aaeoaaideographic
       charactersaaaea,,aaa(R)aa3/4a<section>e!aa^2a<section>aaaeaa [UAX #14]
       a<section>a e^3c' aeacaaaeaa(R)a>>a"aa(C)a A_ a<<ae!"eaaeacaaaea-
       a(R)a>>a"aa(C)a ID a<<ae!aa|aa (aaaa(R)c"eaa aeaa-
       |a(R)e|^3c^1aaaaaa,aeLccoa<section>aa)a eYa^1^2a(R)c"a-
       c^3>_>a<section>a	aaaa(R)aea-
       aaa aa^2a1/2c1/2(R)aaeccoa<<aaaaaaaaae3/4ae,a<<aacoe|cae^1ae^3ac"aaa
			     _
       aeaaa_R)ae!ae<degree>a a_eaaa<<a<<a3/4aaaeaa(R)ae<degree>a"c-
       aaa"a aaaaaaa aaa(R)aeaa	oa<I>o~aawideaaa,c-
       ~aanarrowaaaae^2aa1/4'aaaaanonsp_cingaaa(R)aaaaa<section>aaaaa 2 ae!a1
       ae!a0 ae!aa aaa eYa^1^2a(R_aeaa aa1/2?aaaaeea<<aaLa|aoaacaaaaaa3/4aa
       a<<a^1a?aaxaoa<<aaLa|aaeaa aaaxae<section>aaa^1aaea!aaa

PUBLIC INTERFACE
   `e!~a(R)oaoa^2
       new ([KEY => VALUE,_...])		 _	      _
	   _a^3_a^3_a^1_a_a(C)_a _a?a KEY => VALUE a(R)a 3/4a<<axaa|a
	   "aaaa.a<section>a^3"	aac<section>a

       break (STRING)
	   _a_x_a^3_a^1_a?_a^3_a^1_a!_a1/2_a_aa _nicode aeaa STRING aaa^2aaaaae?aa
	   eaa^3a^3aa a^1aa<section>a ac<micro>aea(R)ae!a(R)eaae?aa

       break_partial (STRING)
	   _a_x_a^3_a^1_a?_a^3_a^1_a!_a1/2_a_aa break() a"aaa aaaea-
	   aaa<degree>aaaxe?1/2a aa_aYaaaa 'aa
	   aYaaa(R)aoaaaa"acxoaa<<a aSTRING a1/4ae<degree>a<< "undef" aa,aaa

       config (KEY)
       config (KEY => VALUE, ...)		       _
	   _a_x_a^3_a^1_a?_a^3_a^1_a!_a1/2_a_aa e"a(R)aaa3/4a3/4aa	axae'aaa KEY =>	VALUE
	   a(R)a 3/4a<<axaa|a  "aaaa.a<section>a^3" aac<section>a

       copy			  _
	   _a^3_a_a1/4_a^3_a^3_a^__a_a(C)_a _a?a
	   aaaa,a<section>a aaxa^3a^1a?a^3a^1a(R)exeL1/2aaxaaa

   aeoa +-~a(R)oaoa3/4
       breakingRule (BEFORESTR,	AFTERSTR)
	   _a_x_a^3_a^1_a?_a^3_a^1_a!_a1/2_a_aa aeaa BEFORESTR a" AFTERST_
	   a(R)ea<section>a(R)e!aa^2aa1/2aa3/4aa e?axa<<axaa|a
	   "a(R)ae<degree>" aac<section>a
				_
	   ae^3": aa(R)a!a1/2aaa ae!aa_2a(R)aaa3/4aaaaa1/2ae!"aaxae?aa<<aaaaaa
	   a(R)ea(R)aaa^1aae!aeaaaa<<a abreak()	ca(R)a!a1/2aaaa1/2?aLa|a>>aaa

       context ([Charset => CHARS_T], [Language	=> LANGUAGE])
	   _e_cae_degree_a aaLa(C)a a?a>>aa CHARSET aaa^3e"eaa^3a1/4a LANGUAGE
	   aaaaaaa1/2?ae"ea/a<degree>aa(R)aeeaa3/4aa

   ~a<I>a~a~a.~a<section>~a^3			 _	     _
       "new"a"config" a(R)a,!a!a1/2aaa<<a a>>Yaa(R)a 3/4a_ea(R)a<section>aaa
       ae!ae<degree>a(R)c(R)ao ([E])aae,e"c' a a(C)a^1a?ac  ([G])
       (Unicode::GCString~[ja] aac<section>)ae!aa^2aa1/2 ([L])
       a<<a1/2+-e?aaaa(R)aaaa

       BreakIndent => "YES" | "NO"
	   [L] e!e a(R)	SPACE aa,|a^3 (axa^3aa^3a)	    _
	   a(R)a3/4a<section>a a,,a<<aa^2ae"+-aa [UA_ #14] a  SPACE
	   a(R)aa(R)aaaac"ae^3aeae(R)aa|aaaaa aaeaxa  "YES"a
					  _
	   ae^3": aa(R)aaaa.a<section>a^3a aaaaa1/4a^1 1.011
	   a<section>a<degree>aYaaaa

       CharMax => NUMBER
	   [L] e!a<<a<<a?aaaeax<section>a(R)aea-
	   ae<degree>aea(R)c(C)oc1/2aeaa"ae^1e!a(R)aeaaaexaa aea_gree>a a,e~a<<e!a(R)e.aae!"aaaaaa"a<<ae^3"aea aaeaxa  998a 0
	   a<<a	a<section>aaaaa

       ColMin => NUMBER
	   [L] a>>>>aeaa^2aaae!a(R)aae^1e!a(R)aeaaa_e!ae<<a(R)c(C)oc1/2aea-
	   aa<<aaaaaea<degree>ae!ae<degree>a aaeaxa  0a

       ColMax => NUMBER
	   [L] e!a(R)aae^1e!a(R)aeaaa"e!ae<<a(R)c(C)oc1/2aea-
	   aa<<aa_aaeax<section>ae!ae<degree>aaxa3/4aae!a(R)aeax<section>e.a
	   aaeaxa  76a

       "Urgent"	aaaa.a<section>a^3aaa^3
       "a|a1/4a<paragraph>a(R)c3/4(C)a(R)e!aa^2aa1/2" aac<section>a

       ComplexBreaking => "YES"	| "NO"
	   [L] ae_-aaca,aca(R)exeaaaeea<section>acoe|caae!aeaae!aa _
	   aaeaxa aae+-aaca,aca(R)e!"e"a1/2c^3>>a<section>a(R)aeaac aaea^1aaa
	   "YES"a

       Context => CONTEXT					    _
	   [E][L] e"ea/a<degree>aa(R)aeeaaea(R)aaa c_/4a"a1/2?aaaeea
	   "EASTASIAN" a "NONEASTASIAN"a aaea(R)aeea  "NONEASTASIAN"a
				     _
	   "EASTASIAN" aeea<section>a aEast_Asian_Width
	   c^1ae<section>aaeae<section>	(A) a<section>aaa<degree>aaoaaaea-
	   a"a?aaaae!aa^2c^1ae<section>a AI a<section>aaa<degree>e!"eaaeac
	   (ID)	a"a?aaaa
					_
	   "NONEASTASIAN" aeea<section>a aEast_Asian_Width
	   c^1ae<section>aaeae<section>	(A) a<section>aaa<degree>acaaaea-
	   a"a?aaaae!aa^2c^1ae<section>a AI a<section>aaa<degree>e^3c' aeac
	   (AL)	a"a?aaaa

       EAWidth => "[" ORD "=>" PROPERTY	"]"
       EAWidth => "undef"
	   [Eaaa(R)aeaa(R) Eas__Asian_Width c^1ae<section>aaec'aaaa ORD
	   a aeaa(R) UCS axa^3aa a^1axaaaaaa(R)eaa,a(R)ac<section>a PROPERTY
	   a  East_Asian_Width c^1ae<section>axaae!a1/4<micro>axa(R)aaaa
	   ("a(R)ae<degree>" aac<se_tion>)a
	   aa(R)aaaa.a<section>a^3a exae<degree>aaea(R)a<section>aaa "undef"
	   aaea(R)aaa"aaaa3/4a<section>a(R)aec'aaaa^1a|aaae<paragraph>aa
			   _					      _
	   aaeaxa<section>a aEast_Asian_width c^1ae<section>a(R)aec'aa aaaaa
	   "aeaa(R)c^1ae<section>a(R)aec'a" aac<section>a

       Format => METHOD
	   [L] aa^2aae!aae'a1/2caaae^1ae^3aaea(R)aaa

	   "SIMPLE"
	       aaea(R)ae^1ae^3a
	       a>>>>aeaa^2a(R)a1/2c1/2(R)a<<ae^1e!aae?aYaaa aa

	   "NEWLINE"
	       "Newline"
	       aaaa.a<section>a^3a<section>aeaaaaa(R)a<section>ae^1e!ac1/2(R)aaeaaa
	       ae^1e!a(R)aa"aaaac<micro>c<< a(R)c(C)oc1/2aeaaexa>>aaa	aa-
	       a^1ac<micro>c<< a<<ae^1e!aaaaaa<degree>e?1/2a aaa

	   "TRIM"
	       a>>>>aeaa^2a(R)a1/2c1/2(R)a<<ae^1e!aae?aYaaa
	       ae^1e!a(R)aa(R)c(C)oc1/2aeaaexa>>aaa

	   "undef"
	       aaa<<aaaaa (ae^1e!a(R)ae?aYa)a

	   a<micro>aa<<a1/4aa^3a,a(R)ac<section>
	       "e!a(R)ae'a1/2c"	aac<section>a

       HangulAsAL => "YES" | "NO"
	   [L]		       _
	   aa^3a<degree>a<<e^3c	a"aa^3a<degree>a<<eLc<_micro>aaLacaconjoining
	   jamoaae^3c' aeacaaaea (AL) a"ae+-aa aaeaxa  "NO"a

       LBClass => "[" ORD "=>" CLASS "]"
       LBClass => "undef"						 _
	   [G][L] aaa(R)aeaae!aa^2c^1ae<section> (ae!) aaec'aaaa ORD	a aea-
	   a_R)	UCS axa^3aa a^1axaaaaaa(R)eaa,a(R)ac<section>a CLASS
	   a e!aa^2c^1ae<section>axaaaaa ("a(R)ae<degree>" aac<section>)a
	   aa(R)aaaa.a<section>a^3a exae<degree>aaea(R)a<section>aaa "undef"
	   aaea(R)aaa"aaaa3/4a<section>a(R)aec'aaaa^1a|aaae<paragraph>aa
			   _				   _
	   aaeaxa<section>a ae!aa^2c^1ae<section>a(R)aec'aa aaaaa "aea-
	   a(R)c^1ae<section>a(R)aec'a"	aac<section>a

       LegacyCM	=> "YES" | "NO"
	   [G][L] aa<<c(C)oc1/2aeaaaxaac<micro>aaeaaac~a(R)c<micro>aaea	(ID)
	   a"ae+-aa Unicode 5.0	caaa ac(C)oc1/2aea-  _
	   a(R)aa(R)aaaaa1/2?aaaa ae"aY"aaaaaa aaeaxa  "YES"a

       Newline => STRING			      _
	   [L] ae^1e!a(R)aeaaa"aa Unicode aeaaa	aaeaxa	"\n"a

       Prep => METHOD
	   [L] a|a1/4a<paragraph>a(_)c3/4(C)a(R)e!aa^2aa1/2ae?1/2a aaa
	   aa(R_aaaa.a<section>a^3a exae<degree>aaea(R)a<section>aaa METHOD
	   a<<a	a>>Ya,a(R)aa(R)aaea(R)a<section>aaa

	   "NONBREAKURI"
	       URI aaa^2aaaaa

	   "BREAKURI"							   _
	       URI aaa<degree>a.c_C)a<<e(C)aae|aa<section>aa^2aaa e(C)^3aaa
	       [CMOS] a(R) 6.17	c a" 17.11 c aac<section>a

	   "[" REGEX, SUBREF "]"
	       aeLe|e!"c3/4 REGEX a<<aaaaaaeaaaaSUBREF
	       a<section>ac<section>aaaa<micro>aa<<a1/4aa^3a<section>aa^2aaa
	       e(C)^3c'<degree>a
	       "a|a1/4a<paragraph>a(R)c3/4(C)a(R)e!aa^2aa1/2" aac<section>a

	   "undef"
	       aaa3/4a<section>a<<e?1/2a aaaa1/2aaa^1a|aaae<paragraph>aa

       Sizing => METHOD
	   [L] aeaaa(R)e.aac(R)aoaaae^1ae^3aaea(R)aaa
	   a>>Ya,a(R)aaaa.a<section>a^3aa1/2?aaa

	   "UAX11"
	       aaea(R)ae^1ae^3a	c<micro>a?e3/41/4a?a(R)aea-
	       aa1/4a?aa1/4a^1a<<aaLa|aeaa(R)ae!ae<degree>ac(R)aoaaa

	   "undef"			_
	       aeaaa<<a<<a3/4aaae,e"c' a a(C)a^1a? (Unicode::GCString
	       ac<section>) a(R)ae<degree>ae?aa

	   a<micro>aa<<a1/4aa^3a,a(R)ac<section>
	       "aeaae.a(R)c(R)ao" aac<section>a

	   "ColMax"a"ColMin"a"EAWidth" aaaa.a<section>a^3aac<section>a

       Urgent => METHOD
	   [L] e.aaae!a(R)ae+-aaaaaea(R)aaa
	   a>>Ya,a(R)aaaa.a<section>a^3aa1/2?aaa

	   "CROAK"
	       a"a(C)a1/4a!aa>>a1/4a,aaoaaa|ae>>a~a

	   "FORCE"
	       e.aaaaeaaac!caaaa^2aaa

	   "undef"
	       aaea(R)ae^1ae^3a	e.aaaaeaaaaa^2aaaaa

	   a<micro>aa<<a1/4aa^3a,a(R)ac<section>
	       "a|a1/4a<paragraph>a(R)c3/4(C)a(R)e!aa^2aa1/2" aac<section>a

       ViramaAsJoiner => "YES" | "NO"
	   [G] a'aLa(C)a1/4ae"a._	      _
	   (aa^3aaLeaa<section>a aaa(C)a^3aaaa a!a_/4a<<aeaa<section>a(R)aea)
	   a"aaa<<c<paragraph>aaa"aaecaaaaa aaeaxa  "YES"a ae^3":
	   aa(R)aaaa.a<section>a^3a aaaaa1/4a^1	2011.001_29	    _
	   a<section>a<degree>aYaaaa a>>_Yaa(R)aaaaa1/4a^1a<section>a  "NO"
	   a<<aoa(R)a<section>aaLaa aaa	a[UAX #29]  _		  _
	   a<section>a(R)c3/4(C)aaaaaea(R)aae,e"c' a a(C)a^1a?a<<a a<<a3/4aaaaa>>ae<section>a<section>aaa

   oa(R)ae<degree>
       "EA_Na",	"EA_N",	"EA_A",	"EA_W",	"EA_H",	"EA_F"
	   [UAX	#11] a<section>a(R)c3/4(C)aaa 6	axa(R) East_Asian_Width
	   c^1ae<section>axa c (Na)aa,c<< (N)aaeae<section> (A)aao
	   (W)aae<section> (H)aa"e<section> (F)a

       "EA_Z"
	   ae^2aa1/4'aaaaaeaa(R) East_Asian_Width c^1ae<section>a(R)axa

	   ae^3":		   _
	   aa(R)aae^2aa1/4'aaaaaaxa a1/2aca,aYa1/4a<<a<<aaae!a1/4<micro>a<section>aaa
	   [UAX	#11] a(R)a,e"a<section>a aaaa

       "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", "LB_RI"
	   [UAX	#14] a<section>a(R)c3/4(C)aaa 40 a(R)e!aa^2c^1ae<section>ax
	   (ae!)a
				       _
	   ae^3": c^1ae<section>ax CP a	Unicode
	   5.2.0ca<section>a<degree>aYaaaa c^1ae<section>ax HL a_ CJ a Unicode
	   6.1.0ca<section>a<degree>aYaaaa c^1ae<section>ax RI a  Unicode
	   6.2.0ca<section>a<degree>aYaaaa

       "MANDATORY", "DIRECT", "INDIRECT", "PROHIBITED"
	   e!aa^2aa1/2ae!"a 4 axa(R)axa						 _
	   a1/4.a<paragraph>aa^2ac'aeYaa^2aeaeYaa^2aeaaaaeaeYaa^2aeaaaac'aeYaa^2a c|aaaaa^2ac|aaa

       "Unicode::LineBreak::SouthEastAsian::supported" _
	   ae+-aaca,aca(R)e!"e"a1/2c^3>>a(R)aaa(R)aeaac	ae(C)e1/2aaea^1aa(C)aaacxoaaa(C)a<degree>a
	   aa(R)ae(C)e1/2aaea^1a<<aaaLa|aaa<degree>ac(C)oa<section>aaaaeaaa
	   aaa<section>aaaaa<degree> "undef"a
					    _
	   ae^3": c3/_aaaaa1/4a^1a<section>a c3/4a>>La?axeaa(R)a?axaea-
	   a<<a(R)a?a 3/4a?aa|aaa

       "UNICODE_VERSION"
	   aa(R)aca,aYa1/4a<<aac<section>aa Unicode ae"aeoa(R)cacxoaaeaaa

CUSTOMIZATION
   `e!~a(R)ae'oa1/2/c
       "Format"												 _
       aaaa.a<section>a^3a<<a<micro>aa<<a1/4aa^3a,a(R)ac<section>aaea(R)aaa 'aaaa(R)a<micro>aa<<a1/4aa^3a
       3 axa(R)a1/4ae<degree>aaaaaaaa<degree>aaaaaaa

	   $a?(R)aeLa3/4 = &a<micro>aa<<a1/4aa^3(SELF, EVENT, STR);
	     _					  _
       S_LF a  Unicode::LineBreak aaaa,a<section>a aaEVENT
       a_a<micro>aa<<a1/4aa^3aa1/4a<_degree>aaaeeae!"aaeaaaSTR
       a aa^2a1/2c1/2(R)a(R)aa3/4aa a3/4a(R) Unicode aeaaa(R)aeca

	   EVENT |e<section>aa(R)aYae(C)	   |STR
	   -----------------------------------------------------------------
	   "sot" |aaa^1aae	    |aeaa(R)e!a(R)aec
	   "sop" |a1/4.a<paragraph>aa^2a(R)a3/4		|ae~!a(R)e!a(R)aec
	   "sol" |a>>>>aeaa^2a(R)a3/4	      |c<paragraph>aa(_)e!a(R)aec
	   ""	 |aa^2a(R)c'a		|e!a"a1/2 (c<micro>c<< a(R)c(C)oc1/2aeaaexa)
	   "eol" |a>>>>aeaa^2		  |aa^2a1/2c1/2(R)a(R)aa(R)c(C)oc1/2aea
	   "eop" |a1/4.a<paragraph>aa^2		    |ae^1e!a"aa_R)aa(R)c(C)oc1/2aea
	   "eot" |aaa^1ac<micro>c<<	     |aaa^1ac<micro>c<<	a(R)c(C)oc1/2aea (a"ae^1e!)
	   -----------------------------------------------------------------
			    _
       a<micro>aa<<a1/4aa^3a aaaa^1aa(R)aecaa?(R)ae-		   _
       Laa|e?aaaaaa<degree>aaaaaaaaaa<<aa?(R)aeLaaaaaLaaa"acxoaa<<a a"undef"
       ae_aa<degree>aaa	aaaa"sot"a"sop"a"sol" a(R)aeea<section>a(R)a?(R)ae-
       La_aa(R)a3/4a(R)aa^2a1/2c1/2(R)a(R)ae+-oa(R)a<<a1/2+-e?aaaaa>>aa(R)aeea<section>a(R)a?(R)ae-
       La a1/2+-e?aaaaa

       ae^3"ae:	aea-	   _	     _	       _
       aa(R)a1/4ae<degree>a a(R)ea<<a ae,e"c' a	a(C)a^1a?aa<section>aaa
       Unicode::GCString~[ja] ac<section>a
				     _
       aa"aa<degree>ae~!a(R)a^3a1/4aa ae!ae<<a(R)c(C)oc1/2aaaexaa|e!aeaaaaa

	   sub fmt {
	       if ($_[1] =~ /^eo/) {
		   return "\n";
	       }
	       return undef;
	   }
	   my $lb = Unicode::LineBreak->new(Format => \&fmt);
	   $output = $lb->break($text);

   ~a|~a1/4~a<paragraph>oa(R),c3/4(C)~a(R)`e!oaoa^2oa"a1/2
       a>>>>aeaa^2a<<aaLa|caae!a CharMaxaColMaxaColMin		    _
       a(R)aaaaa(R)a<paragraph>eae<paragraph>aaa"e|e3/41/4a3/4aaa"aa aa1/4ac<paragraph>aaea-
       aa<<a 3/4aa|,c.ae=Yoaoa^2aa(R)e!a<section>aaa "Urgent"						 _
       aaaa.a<section>a^3a<<a<micro>aa<<a1/4aa^3a,a(R)ac<section>aaea(R)aaa 'aaaa(R)a<micro>aa<<a1/4aa^3a
       2 axa(R)a1/4ae<degree>aaaaaaaa<degree>aaaaaaa

	   @aa^2a3/4 = &a<micro>aa<<a1/4aa^3(SELF, STR);
	     _					  _	  _
       SELF a  Unicode::LineBreak aaaa,a<section>a aaSTR a aa^2aa^1a Unicode
       aeaaa
			    _
       a<micro>aa<<a1/4aa^3a aaeaa STR
       aaa^2aac<micro>aea(R)eaae?aaaaaa<degree>aaaaaaa

       ae^3"ae:	aea-	   _	     _	       _
       aa(R)a1/4ae<degree>a a(R)ea<<a ae,e"c' a	a(C)a^1a?aa<section>aaa
       Unicode::GCString~[ja] ac<section>a
				     _
       aa"aa<degree>ae~!a(R)a^3a1/4aa aeYa^1^2a(R)aa|c(C)e^3a (aaa^3a(R)aaaa)
       a(R)ac<section><degree>a<<aaxaa^3aae?aYaae!aeaa<section>aaaaa<<aaa

	   sub hyphenize {
	       return map {$_ =~ s/yl$/yl-/; $_} split /(\w+?yl(?=\w))/, $_[1];
	   }
	   my $lb = Unicode::LineBreak->new(Urgent => \&hyphenize);
	   $output = $lb->break("Methionylthreonylthreonylglutaminylarginyl...");

       "Prep" aaaa.a<section>a^3a<< [REGEX, SUBREF]	   _
       a(R)eaac<section>aaea(R)aaa 'aaa<micro>aa<<a1/4aa^3a  2
       axa(R)a1/4ae<degree>aaaaaaaa<degree>aaaaaaa

	   @aa^2a3/4 = &a<micro>aa<<a1/4aa^3(SELF, STR);
	     _					  _	  _
       SELF a  Unicode::LineBreak aaaa,a<section>a aaSTR a  REGEX
       a<<aaaaaaa^2aa^1a Unicode aeaaa
			    _
       a<micro>aa<<a1/4aa^3a aaeaa STR
       aaa^2aac<micro>aea(R)eaae?aaaaaa<degree>aaaaaaa
				     _
       aa"aa<degree>ae~!a(R)a^3a1/4aa aHTTP URL	a [CMOS] a(R)e|aac"aa|aa^2aaa

	   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);

       _c_paragraph_ae_a(R)_a?_a

       Unicode::LineBre_k _
       aaaa,a<section>a	aa aaa.aYac<secti_n>a"aa|a<micro>aa3/4aa
       a>>>>aea(R)e|c' aaaaaa,a<section>a aa(R)aa"aeea,a?aa<section>aaa
				     _
       aa"aa<degree>ae~!a(R)a^3a1/4aa aae(R)<micro>e1/2ac(C)oe!a<section>aaaa

	   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);

   aeoaoa'e.~a(R),c(R)oa<I>o
       "Sizing"												 _
       aaaa.a<section>a^3a<<a<micro>aa<<a1/4aa^3a,a(R)ac<section>aaea(R)aaa 'aaaa(R)a<micro>aa<<a1/4aa^3a
       5 axa(R)a1/4ae<degree>aaaaaaaa<degree>aaaaaaa

	   $ae!ae<degree> = &a<micro>aa<<a1/4aa^3(SELF,	LEN, PRE, SPC, STR);
	     _					  _	  _
       SELF a  Unicod_::LineBreak aaaa,a<secti_n>a aaLEN a ae!aaaea-
       aae.aaPRE a ae!aa Unicode aeaaaSPC a e?1/2a aaac(C)oc1/2aeaaSTR
       a a|caa Unicode aeaaa
			    _
       a<micro>aa<<a1/4aa^3a  "PRE.SPC.STR"
       a(R)ae!ae<degr_e>ac(R)aoaa|e?aaaaaa<degree>aaaaaaa		     _
       ae!ae<degree>a ae'ae<degree>a<section>aaaa|aaaaae!ae<degree>a(R)aa1/2a eaea<<e,a^1aaa"ColMin"
       aaaa.a<section>a^3aaa^3 "ColMax"
       aaaa.a<section>a^3a(R)aaa"a,e'aaaaaaa<degree>aaaaaaa

       ae^3"ae:	aea-	   _	     _	       _
       aa(R)a1/4ae<degree>a a(R)ea<<a ae,e"c' a	a(C)a^1a?aa<section>aaa
       Unicode::GCString~[ja] ac<section>a
				     _
       aa"aa<degree>ae~!a(R)a^3a1/4aa ae!a<< 8
       ae!aa"a(R)a?aa^1aaaaaaaa(R)a"aa|a|caaa

	   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);

   aeoa~a(R),c^1ae<section>~a(R)ae,c'~a
       "LBClass" aaaa.a<section>a^3aaa^3 "EAWidth"
       aaaa.a<section>a^3a<section>aaa(R)aeaa(R)e!aa^2c^1ae<section> (ae!) a
       East_Asian_Width
       c^1ae<section>aaec'aa<section>aaaaa(R)ea<<a3/4?a(C)aaa(R)ae<degree>aaaaxaa(R)c3/4(C)aa|aaa

       _e!_a_a^2_c^1ae_section_

       a>>(R)aaaa(C)a(R)e!e c|aaea
		       _
       aaeaxa<sec_ion>a	aeYa^1^2a(R)a>>(R)aaa>>(R)aa<<aeoaaaa(R)ae!e c|aaea
       (NS a3/4aa  CJ) a"ae+-aa	a>>Ya,a(R)a 3/4a LBClass
       aaaa.a<section>a^3a<<aea(R)aaa<degree>aaaaa(R)aeaaea,,a(R)e!"eaaea-
       caaaea (ID) a"ae+-aaa

       "KANA_NONSTARTERS() => LB_ID"
	   a,e"a(R)aeaaa^1a|a

       "IDEOGRAPHIC_ITERATION_MARKS() => LB_ID"
	   e!"eaaeacaac^1<degree>ae?ae"a.a U+3005 c^1<degree>e?ae"a.aU+303B
	   aaac^1aU+309D a^1^3a>>(R)ac^1<degree>e?ae"a.aU+309E
	   a^1^3a>>(R)ac^1<degree>e?ae"a. (ae?c^1)aU+30FD
	   ca>>(R)ac^1<degree>e?ae"a.aU+30FE ca>>(R)ac^1<degree>e?ae"a.
	   (ae?c^1)a
				   _
	   ae^3"aa>>(R)aa<section>a aaaaa(R)aaaa

       "KANA_SMALL_LETTERS() =>	LB_ID"
       "KANA_PROLONGED_SOUND_MARKS() =>	LB_ID"
	   a<degree>ae,aa>>(R)aa a<degree>ae,aa^1^3a>>(R)a U+3041 a, U+3043 a,
	   U+3045 a, U+3047 a, U+3049 a, U+3063	aL, U+3083 a, U+3085 a,	U+3087
	   a, U+308E a,	U+3095 a, U+3096 aa a<degree>ae,aca>>(R)a U+30A1 a!,
	   U+30A3 aL, U+30A5 aY, U+30A7	a<section>, U+30A9 a(C), U+30C3	a,
	   U+30E3 aL, U+30E5 aY, U+30E7	a<section>, U+30EE a(R), U+30F5
	   a<micro>, U+30F6 a<paragraph>a ca>>(R)ae!"e^3ae!a1/4<micro> U+31F0
	   a<degree> - U+31FF a?a a<degree>ae,aca>>(R)a			  _
	   (a>>Lae?ac<section><degree>)	U+FF67 i1/2<section> - U+FF6F i1/2 a

	   e.e^3e"a.a U+30FC e.e^3e"a.aU+FF70 e.e^3e"a.
	   (a>>Lae?ac<section><degree>)a
			    _
	   ae^3"aaaaa(R)aeaa e!e c|aaeaa"ae+-aaaaa"aaea,,a(R)e!"eaaeacaaaea-
	   a"ae+-aaaaa"aaaa[JIS	X 4051]	6.1.1a[JLREQ] 3.1.7 a [UAX14]
	   aac<section>a

	   a_^3"aU+3095	a, U+30_6 a, U+30F5 a<micro>, U+30F6 a<paragraph>
	   a a>>(R)aa<section>a	aaaa"aaaa

       "MASU_MARK() => LB_ID"
	   U+303C a3/4ae"a.a
			  _		     _
	   ae^3"aaa(R)aeaa a>>(R)aa<section>a aaaaaea,,	"a3/4a"	a "aa^1"
	   a(R)cYe"a"aa|c"aaaaa
			  _			 _
	   ae^3"aaa(R)aeaa  [UAX #14] a<section>a e!e c|aa _NS)
	   a<<ae!aaaaa[JIS X 4051] a [JLREQ] a<section>a aeaa a(C)a^1 (13) a
	   cl-19 (ID a<<c,a1/2)	a<<ae!aaaa

       aeae<section>aaa1/4c"c~|
		       _
       aaeaxa<section>a	aeYa^1^2a(R)e"a.aaeae<section>aaa1/4c"c~| (QU)
       a"ae+-aa

       "BACKWARD_QUOTES() => LB_OP, FORWARD_QUOTES() =>	LB_CL"
	   aae"ea
	   (aaa(C)a^3aeaae+-eaaaxa?aaaceaaaa<<aa~a<<eaaa^1aaxa^3eaaaa<<a^3eaa
	   aaa^3ae+-aca,aca(R)axaa(R)e"ea) a<section>a aeae"a.a<< 9
	   aae>>caaa1/2cc<paragraph>a(R)a1/4c"c~| (a a)	aaeae"a.a<< 9
	   a(R)a1/2cc<paragraph>a(R)a1/4c"c~| (a a) ac"aaa

       "FORWARD_QUOTES() => LB_OP, BACKWARD_QUOTES() =>	LB_CL"		  _
	   a>>aa(R)e"ea	(aa<section>a^3eaaaaxaeaaa^1aa'a!a ea) a<section>a a9
	   a(R)a1/2cc<paragraph>a(R)a1/4c"c~| (a a) aeae"a.a<<a9
	   aae>>caaa1/2cc<paragraph>a(R)a1/4c"c~| (a a)	aeae"a.a<<c"aaa

       "BACKWARD_GUILLEMETS() => LB_OP,	FORWARD_GUILLEMETS() =>	LB_CL"
	   aa(C)a^3a^1eaaa(R)aaa.aLeaaa-
	   a.aceaaaa(C)a<section>a aa.|aaa(R)a(R)aYa! (A<< a^1)
	   aeae"a.a<<aa^3aaa(R)a(R)aYa!	(A>> ao) aeae"a.a<<c"aaa

       "FORWARD_GUILLEMETS(_ =>	LB_OP, BA_KWARD_GUILLEMETS() =>	LB_CL"
	   aaxaeaaa^1aa'a!a eaa<section>a aa^3aaa(R)a(R)aYa! (A>> ao)
	   aeae"a.a<<aa.|aaa(R)a(R)aYa!	(A<< a^1) aeae"a.a<<c"aaa
										      _
       aa1/4a^3eaaaaLa^3eaaaa<<a|a<section>a1/4eaaa^1a|a<section>a1/4aa^3eaa<section>a a9
       a(R)a1/2cc<paragraph>a(R)a1/4c"c~|a a^3aaa(R)a(R)aYa! (a	a A>> ao)
       aeae"a.a<<aeae"a.a<<ac"aaa

       aaee

       "IDEOGRAPHIC_SPACE() => LB_BA"
	   U+3000 aaeeae!e a<<aeYaaaaaa<<aaa aaaaaea(R)aeaa<section>aaa

       "IDEOGRAPHIC_SPACE() => LB_ID"
	   aaeeae!e aYaaa"aaaa Unicode
	   6.2a>>Yaa aaaaaea(R)aeaa<section>aaLaa

       "IDEOGRAPHIC_SPACE() => LB_SP"	     _ _
	   aaeeae!e a<<aeYaae!ae<<a<section>a a	a?aoaaaa<<aaa

       East_Asian_Width	_c^1ae_section_
							 _
       a(C)aa^3aa(R)aaa.acaaaaa<<a(R)ac"ac^3>>a<section>a ac^1a(R)a(R)aea-
       aaeae<section> (A) a(R) East_Asian_Width	 _
       c^1ae<section>aaeaLa|aaaaa(R)aaaaaaaLaaeaa  "EASTASIAN"
       aeea<section>aoaaeaa"ae+-aaaa "EAWidth => [ AMBIGUOUS_"*"() => EA_N ]"
       a"aea(R)aaaa"a<section>aaa(R)aaaaaeaaa,,a<<caaeaa"ae+-aa

       "AMBIGUOUS_ALPHABETICS()	=> EA_N"
	   a,e"a(R)aeaaa^1a|a East_Asian_Width c^1ae<section> N	(a,c<<)
	   a(R)aeaa"ae+-aa

       "AMBIGUOUS_CYRILLIC() =>	EA_N"
       "AMBIGUOUS_GREEK() => EA_N"
       "AMBIGUOUS_LATIN() => EA_N"
	   aeae<section> (A) a(R)a^1aaeaxaaaa<<aa(R)aaa.acaa(C)aa^3c"a-
	   c^3>>a(R)aeaaa,c<< (N) a(R)aeaa"ae+-aa

       aaLa1/_aaae+-aca,aca(R)c~|a.aaea-
       eaa<<a 3/4aaaxaa(R)a(R)eLa<section>aa^3aa^3aoaaea_
       a<<aec>>aaa|aaa<<aaaaaaaUnicode ae"aeoa<section>a a"e<section> (F)
       a(R)aoaeaeaaaeaxaaaa<<ca	(Na) aeaa"aaa|aaaeaaeYa^1^2aaaEAWidth
       aaaa.a<section>a^3a<<a>>Ya,a(R)aaa<<aea(R)aaaa"a<section>aaaaa(R)aeaa
       "EASTASIAN" aeea<section>aoaaeaa"ae+-aaa

       "QUESTIONABLE_NARROW_SIGNS() => EA_A"
	   U+00A2 aa^3ae"a.aU+00A3 aa^3ae"a.aU+00A5 ae"a.	_
	   (a3/4aa ae"a.)aU+00A6 c 'aec.aU+00AC	a|a(R)aU+00AF aa aa^3a

   `e"oa(R)~a~a!~aox~a<<
       "new" a!a1/2aaaaa^3 "config"						_
       a!a1/2aaa(R)aaaa.a<section>a^3a1/4ae<degree>a(R)c<micro>a?e3/41/4a?aaeaxa a
       e"a(R)aa!axa<<a<section>a,ae,aa<section>aaa     _
       Unicode/LineBreak/Defaults.pma e(C)^3c'<degree>a
       Unicode/LineBreak/Defaults.pm.sample aeaaa<section>a>>aaa

BUGS					  _
       aa<degree>aaa<degree>a(R)aaaaaa1/2a aecoea<<aeaa|aa aaa

       CPAN Request Tracker:
       <http://rt.cpan.org/Public/Dist/Display.html?Name=Unicode-LineBreak>.

VERSION
       $VERSION	axae<degree>aac<section>aa|a>>aaa

   'e"a<I>oae~a<I>aoaoxae'
       2012.06
	   o   eawidth() a!a1/2aaaa>>aecaaa a>>Laaa<< "columns"	in
	       Unicode::GCString aa1/2?aaaaaaaaaa

	   o   lbclass() a!a1/2aaaa>>aecaaa "lbc" in Unicode::GCString a
	       "lbcext"	in Unicode::GCString aa1/2?aLa|a>>aaa

   ae"ae<I>o~a,~a(R)'e(C)oaae<section>					  _
       aa(R)aca,aYa1/4a<<a<section>c"aa|aaaeaa(R)c^1ae<section>axa aUnicode
       ae"aeo 8.0.0ca<<aaa
				    _
       aa(R)aca,aYa1/4a<<a<section>a aa(R)eLae<degree>'aeo UAX14-C2
       aa(R)eLaa|aaaxaaa

IMPLEMENTATION NOTES
       o   a,e"a(R)e!"eaaeacaaaeaa NS a"aa|ae+-aa ID a"aa|ae+-aaae,a^1aa
			       _
       o   aa^3a<degree>a<<e^3c	aaa^3aa^3a<degree>a<<eLc<micro>aaLaca ID
	   a"aa|ae+-aa AL a"aa|ae+-aaae,a^1aa

       o   AI a<<ae!aaaaeaa AL a" ID a(R)a(C)a!aa<<e<section>Lae+-oaaaae,a^1aa
			   _
       o   CB a<<ae!aaaaeaa e<section>Lae+-oaaaaa
			   _
       o   CJ a<<ae!aaaaeaa a,,a<< NS
	   a<<e<section>Lae+-oaaaaaaee>>aaaec'aa(R)ae(C)ae<section>aaea3/4aaaa
						 _    _		     _
       o   ae+-aaca,aca(_)e!"e"a1/2c^3>>a(R)aeaac a<<a 3/4a?aaaaa 'aa a	SA
	   a<<ae!aaaaeaa  AL a<<e<section>Lae+-oaaa
	   aa aaGrapheme_Cluster_Break ca(R)axa Extend a
	   SpacingMark a<section>aaaeaa	 CM a<<e<section>Lae+-oaaa
				_
       o   SG a	XX a<<ae!aaaaeaa  AL a<<e<section>Lae+-oaaa
			       _			_
       o   a>>Ya,a(R) UCS a(R)c	a^2a<<aaa^3a1/4aaaxa^3aa aaea-
	   aa^2aa1/2a|aaa|aaaaa|aae+-oa3/4aLac^1ae<section>axaaeaxa
		_
	       c a^2		   | UAX #14	| UAX #11    | ea~ae
	       -------------------------------------------------------------
	       U+20A0..U+20CF	  | PR [*1]    | N [*2]	    | ee^2"e"a.
	       U+3400..U+4DBF	  | ID	       | W	    | CJKae1/4ca
	       U+4E00..U+9FFF	  | ID	       | W	    | CJKae1/4ca
	       U+D800..U+DFFF	  | AL (SG)    | N	    | a<micro>aa^2a1/4a
	       U+E000..U+F8FF	  | AL (XX)    | F a N (A) | c<section>c"e a
	       U+F900..U+FAFF	  | ID	       | W	    | CJKae1/4ca
	       U+20000..U+2FFFD	  | ID	       | W	    | CJKae1/4ca
	       U+30000..U+3FFFD	  | ID	       | W	    | axae1/4ca
	       U+F0000..U+FFFFD	  | AL (XX)    | F a N (A) | c<section>c"e a
	       U+100000..U+10FFFD | AL (XX)    | F a N (A) | c<section>c"e a
	       aa(R)a>>aeaa^2aa1/2a|   | AL (XX)    | N		 | aeaa^2aa1/2a|a
				  |	       |	    | aoc'aeaea
	       -------------------------------------------------------------
	       [*1] U+20A7 aa>>a?e"a. (PO)aU+20B6 aaYa1/_a<<a>>aaa1/4a'a<<e"a.
		 (PO)aU+20BB a^1a<<a^3aaLaa'aLaca>>aa<<a e"a. (PO)aU+20BE
		 a(C)aae"a. (PO) aexaa
	       [*2] U+20A9 a|a(C)a^3e"a. (H)aU+20AC a|a1/4ae"a.	(F a N (A)) a
		 exaa

       o   a,e~a<<aa'aac^1ae<sectio_>a MnaMeaCcaCfaZlaZp
	   a(R)aaaaa<section>aaaeaa aae^2aa1/4'aaaaaeaa"a?aaaa

REFERENCES
       [CMOS]
	   The Chicago Manual of Style,	15th edition.  University of Chicago
	   Press, 2003.

       [JIS X 4051]
	   JIS X 4051:2004 ae_Yae~_eaaeae,_a(R)_c_micro__cae^1ae^3.
	   aeYae~e|ae 1/4aa1/4,	2004.

       [JLREQ]
	   e?aao.a(R)a>>.  ae_Yae~_ea_c_micro__c_a|_c_a(R)_e|_a___paragraph_, W3C
	   aee!aa1/4a 2012a^1'4ae3aeY.
	   <http://www.w3.org/TR/2012/NOTE-jlreq-20120403/ja/>.

       [UAX #11]
	   A. Freytag (ed.) (2008-2009).  Unicode Standard Annex #11: East
	   Asian Width,	Revisions 17-19.  <http://unicode.org/reports/tr11/>.

       [UAX #14]
	   A. Freytag and A. Heninger (eds.) (2008-2015).  Unicode Standard
	   Annex #14: Unicode Line Breaking Algorithm, Revisions 22-35.
	   <http://unicode.org/reports/tr14/>.

       [UAX #29]
	   Mark	Davis (ed.) (2009-2013).  Unicode Standard Annex #29: Unicode
	   Text	Segmentation, Revisions	15-23.
	   <http://www.unicode.org/reports/tr29/>.

SEE ALSO
       Text::LineFold~[ja], Text::Wrap,	Unicode::GCString~[ja].

AUTHOR
       Copyright (C) 2009-2018 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.

perl v5.32.0			  2018-03-29   POD2::JA::Unicode::LineBreak(3)

NAME | SYNOPSIS | PUBLIC INTERFACE | CUSTOMIZATION | VERSION | IMPLEMENTATION NOTES | REFERENCES | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=POD2::JA::Unicode::LineBreak&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help