		     tk4.xjp  tk8.0jp ̔݊

						m-hirano@sra.co.jp

  tk8.0 ATk ̃tHgJjY啝ɕύX܂B̈
ƂāAnamed font ̗̍p܂Btk8.0jp ł́A named font 
gAlatin tHgƊtHggݍ킹 named font, 
킿RpEhtHgƂāAP̃tHĝ悤ɈƂɂ܂
(RpEhtHg̃AiW[ PostScript ł̕tHg
q؂܂)B

  āAtk4.xjp ŊeEBWFbgɗpӂĂ -kanjifont Iv
V́Atk8.0jp ł͎Ă܂B̎ɂ闘_ȉɋ
܂B

	1. AP̃tHg latin A݂ĂȂ
	   ́ATk ̃T|[gvbgtH[ł X ݂̂łB
	   Windows, Mac Ƃ̃XNvgxł̌݊eՂɂɂ́A
	   -font IvV݂̂ŊAlatin \łtHg
	   wł֗łB

	2. tk8.0 ɌĂAIȃtHg̕ύX̖ʂ
	   猩ĂAAlatin ꂼ̃tHg𒀈ύX
	   Aꊇčs֗łB

	3. eEBWFbg̓{Ή̂߂̕ύX_B 
	   Tix ȂǁȂ̍@\ȃEBWFbgZbg{ꉻ
	   ɑϗLB

  ʁAtk4.xjp Ƃ̌݊SȂƂ傫Ȍ_܂B

  ܂AϊvgRƂāAkinput2 vgȒ XIM vg
RIɃT|[g܂B

  ̃hLǵAgꂽ named font ̈Atk4.xjp ̃XN
vg̈ڍsAϊvgR̃[UJX^}CYɂĉ
̂łB font R}hɊւāAǎ҂̎gp@ɂď[
Ă邱ƂvĂ܂B

1.	font R}h̊g

1.1.	-charset IvV

  tk8.0 IWi font R}h́Acharset  iso8859 ̂̂A
\ׂ̃tHgƂ݂Ȃ܂ł(iso8859 ȊO͂
LtHgƂ݂Ȃ)B܂Afont create R}hɂ charset IvV
Ƃēnd|Ȃ߁AX ̊Ńt@~ "fixed" Ƃ
ɂ́Ak14 ̊tHgwĂ̂ a14  latin tHg
wĂ̂ʂł܂BŁAfont R}h̃IvV 
-charset ǉ܂B

  tHg named font 𐶐ꍇA -charset
jisx0208.1983 t܂BႦ΁A

	font create @kanji -family fixed -charset jisx0208.1983 -size 13

  Ƃ΁AX ̊Ȃ k14 ̂Ƃ @kanji ƂO named
font ł܂B-charset IvVw肵Ȃꍇ̓IWi
 tk8.0 Ɠlɓ܂B


1.2.	-compound IvV

1.2.1.	RpEhtHg̐

  font create R}h -compound IvVw肷邱ƂŁARp
EhtHg𐶐܂BRpEhtHg͏ named font Ƃ
Đ܂B

	E k14 ŁAlatin a14 ŕ\邽߂̃RpEh
	  tHg SmallFont ƂOō쐬

		font create SmallFont -compound { a14 k14 }

  -compound IvVւ̈ɂ́A

	{latintHg tHg}

  ̃Xgw肵܂(s)B̃XgɎw肳ꂽtHg̑΂́A
RpEhtHǵufBZ_gtHgvƌĂ΂܂B
fBZ_gtHgƂăRpEhtHgw肷ƃG[ɂ
܂BfBZ_gtHgɂȂ蓾̂́A

	ERpEhtHgłȂ named font.
	ElCeButHg

  łB

  ꂽRpEhtHǵAʏ̃tHglAtk  -font I
vVgʂȂ牽łgpł܂B

  font create R}h̃IvVƂĎgpꍇ -compound Iv
V́AK

	font create ?name? -commpound {list}

  ̏ŎgȂ΂Ȃ܂B

	font create -compound {a14 k14} -size 15

  

	font create fooFont -compound {a14 k14} -size 15 

  ͐łA

	font create -size 15 -compound {a14 k14} 

  A

	font create fooFont -size 15 -compound {a14 k14} 

  ͊ԈႢłBG[ɂ͂Ȃ܂񂪁A@\܂B


1.2.2.	RpEhtHg̑擾

  -compound IvV́AQƃ[hŎgpꍇɂ̂݁Afont
configure, font cget R}hւ̃IvVƂĂg܂B

  A@normal Ƃ named font A

	font create @normal -famiy times -slant italic \
		-weight bold -size 15

  ɂāA܂A@comp ƂRpEhtHgA

	font create @comp -compound { @normal kanji16 }

  ̂悤ɐĂƂ܂B

  ŁA

	font conf @normal

  sƁA

	-family times -size 15 -weight bold -slant italic -underline 0 \
	-overstrike 0 -charset {} -pointadjust 0 -compound {}

  Ԃė܂B

	font conf @comp

  sƁA

	-family times:fixed -size 15 -weight normal -slant roman \
	-underline 0 -overstrike 0 -charset iso8859:jisx0208.1983 \
	-pointadjust 1.000000 -compound {{@normal} {kanji16}}

  Ԃė܂B-pointadjust IvV́AfBZ_gtHg
|CgTCY䗦\܂(ꂪtHg̃|CgTCY)B

  font configure R}hgāAʏ named font RpEhtH
gɂARpEhtHg̃fBZ_gtHgύX邱
Ƃ͏o܂B


1.3.	-copy IvV

  lCeButHg𗘗p named font 𐶐ۂ font create 
R}h̃IvVƂĎgp܂B

  RpEhtHgłȂ named font 鎞Atk8.0 ̎dlł 
-family IvVw肵 font create R}hĂԂi
łB

  킴킴 k14  named font ̂

	font create @kanji -family fixed -charset jisx0208.1983 -size 13

  Ə͔̂ɎGȂ̂ŁA

	font create @kanji -copy k14

  Ɖ邽߂ɗpӂIvVłB


1.4.	failsafe R}h

  ܂ł̐ŁA

	label .l -font \
	    -adobe-courier-bold-o-normal--14-140-75-75-m-90-iso8859-1

  ̂悤ȁAXNvgɃRpEhtHgȊÕtHgGxfb
hɎw肳ĂꍇȂǂɁAtk8.0jp ł͂܂Ƃɓ{ꂪ\łȂ
񂶂ȂH ƂCÂɂȂꂽƎv܂BŁA
̎ł́A̒ʂł ^^;

  ł tk4.xjp Ƃ܂Ɍ݊ȂAɊCO玝ė Tk 
XNvgȒPɎgp邱ƂłȂȂ܂B

  ƁÂ悤ȌwEAEBWFbgɎw肳ꂽtHgœ
{\oȂƔꍇɎgptFCZ[t̂߂̃tH
gw肷@\pӂ܂Bꂪ failsafe R}hłB

  Ⴆ΁A

	font failsafe k14

  XNvg̍ŏŎsĂ΁AeEBWFbgœ{\
ɍstHgw肳ĂȂꍇ̂݁A{̕\ k14 tH
gōs܂B

  faisafe R}ḧɂ̓lCeButHĝ݂wł܂B
܂ALatin tHgwłA

	font failsafe 8x16
	label .l -font kanji16 -text \
		"\܂BThis also works."

  ̂悤ȃXNvgĂ肠܂B

	font failsafe ""

  sƁAtFCZ[ttHg NULL ɂȂAtFCZ[t@
\ȂȂ܂B

   UNIX łł tkUnixInit.c ̂ȂŁAk14 tFCZ[ttHg
ƂĎw肵Ă܂B


1.5.	RpEhtHg̑̓IύX

  Oq̂悤ɁARpEhtHg named font ̈łBʏ 
named font lAIɑύXł܂BύXł鑮́AA_[
CAI[o[XgCNATCYA|CgTCY䗦 4 łB

  Tcl/Tk 8.0.5jp1.5fix1 ARpEhtHg̑̓IύXɂ
AfBZ_gtHge󂯂邱Ƃ͖Ȃ܂B


1.5.1.	TCY̕ύX

	font conf @comp -size 23

  ̂悤ɂāARpEhtHg̑傫ύXꍇA@comp Q
ƂĂSẴEBWFbge󂯂܂BOq̂悤ɁA@comp ̃fB
Z_gtHg͎ۂɃTCYύX܂B

 Tcl/Tk 8.0.5jp1.5 ܂ł́AfBZ_gtHgۂɃTCY
 X܂BȂ̂悤ȎdlƂƁAnamed font 
 uOQƁvȃIuWFNgł邽߁Anamed font QƂĂ 
 named font łRpEhtHgɏ]ׂƍl
 łBA܂ɎpIłȂ߁A܂AA_[CAI[o[
 XgCN̕ύX̓fBZ_gtHgɉeȂAƂdl
 ̂ŁA̎dl͔p~܂BTcl/Tk 8.0.5jp1.5 ܂ł̎d
 l𗘗pāAüӂɁAfBZ_gtHgg̑傫Rp
 EhtHg̑傫ς鎖ōsĂv悤ȃXNvǵA
 ҂ꂽȂƂɂȂ܂BtɁA܂ŁÃhL
 gł͊߂ĂȂAulCeButHg𒼐ڃfBZ_g
 tHgɎw肵ăRpEhtHgvƂ@ɂ́A
 Ȃ܂B


1.5.2.	|CgTCY䗦̕ύX

	font conf -pointadjust 0.5

  ̂悤ɂāAfBZ_tHgɑ΂ ascii fBZ_tH
g̃|CgTCY䗦ύXł܂BA@comp ̃fBZ_gtH
g

	{a14 k14}

  łꍇɏL 0.5 w肷ƁA@comp gpĂSEBWFb
g ascii \ꍇɂ̓t@~ fixed Ń|CgTCY 7
(k14 ̃|CgTCY 13. 0.5 |Ďľܓ 7) ̃tHg
g鎖ɂȂ܂BR 1.0 ȏ̒lwł܂B

  fBZ_tHg̃TCYύXꂽꍇɁARpEhtHg
|CgTCY䗦ύX鎖͂܂BAۂ̕\́A
XꂽTCYōs܂BvɁARpEhtHg̃|CgT
CY䗦́ÃRpEhtHg̐ꂽ̔䗦A
-pointadjust IvVŎw肳ꂽlɕۂƂƂłB

  AfBZ_gtHg̃TCYύXAȂARpEh
tHg̃|CgTCY䗦ύXꍇAXNvgŃfBZ_
gtHg̃TCYύXAۂ̃TCY font actual R}h
擾AtHg̃TCY ascii tHg̃TCYẐA
RpEhtHg̃|CgTCY䗦ƂΗǂł傤B


1.5.3.	A_[CAI[o[XgCN

  RpEhtHg̃A_[CAI[o[XgCN̑ω
ĂfBZ_gtHgɂ͉e܂B


1.6.	eEBWFbg̃ftHgtHg

  tk8.0jp ̎ł͊eEBWFbg̃ftHgtHg͑SăRpE
htHgɂȂĂ܂BftHgtHgɂ͈ȉ̂̂܂B

	Mincho:Helvetica-12
	Mincho:Helvetica-Bold-12
	Mincho:Courier-12

  ̃tHg̑ωƁATk AvP[VŜɉe
܂B̎܂g΁ÃftHg̃RpEhtHg
̍Ē`s Tk AvP[VŜ̃tHgeՂɕύXo
B


1.7.	ڍs

  tk4.xjp XNvg̈ڍśA{IɁASĂ -kanjifont IvV
폜A-font IvVŎw肵ĂtHgK؂ɒ`R
pEhtHgŒuA͂P -kanjifont IvV
폜邾Ŗ肠܂B

  text, entry ȊÕEBWFbgɁAbind R}hŒ kinput2 Ƃ̃Zb
V`Ă悤ȃAvP[V́Atk8.0jp  
$tk_library/kinput.tcl QƂďCĉB

CO Tk XNvg̓{ꉻɊւẮA1.4. ŏqׂ font failsafe 
R}hXNvg̐擪ɓĂƂŁAȂƂ tk4.xjp œ
YXNvgSύXȂŎsꍇƓ̓{\s
܂B


1.8.	Tv

  ȉɊȒPȃTv܂B

---------------------------------------------------------------------
	# 16hbg courier  kanji16 RpEhtHgɂB
	font create @ascii -copy \
		-adobe-courier-medium-r-normal--16-*-*-*-*-*-iso8859-1
	font create @kanji -copy kanji16
	font create @cFont -compound {@ascii @kanji}

	# @cFont g label B
	pack [ label .l -text "123. eXgB321." -font @cFont ]
	
	# @cFont ̑傫 23 |CgɂAA_[CtB
	font conf @cFont -size 23 -underline 1
---------------------------------------------------------------------


1.9.	X \[Xf[^x[Ẍ

  -kanjifont IvVeEBWFbg疳Ȃ̂ŁAtk4.xjp 
gpłA

	tkapp*kanjifont:	k14

  ̂悤 X \[Xf[^x[X̋Lq tk8.0jp ł͎QƂ܂B
̂AtkDefineFont, tkDefaultFont ̃\[Xgpo܂B

  tkDefineFont \[X X \[Xf[^x[XŃRpEhtH
g`邽߂̃\[XłB

	*tkDefineFont:	small {a14 k14}, medium {8x16 kanji16}

  ̂悤ɒ`ƁASĂ tk8.0jp AvP[V̋NɁA
small, medium ̃RpEhtHg܂B

  tkDefaultFont \[X tk8.0jp AvP[VŎgptH
gw肷邽߂̃\[XłB

	*tkDefaultFont:	small

  ̂悤ɒ`ƁASĂ tk8.0jp AvP[V̊eEBWFbg
 default font  small ɂȂ܂B
  tkDefaultFont Ŏw肵tHgRpEhtHgłȂꍇɂ́A
1.4. ŏqׂtFCZ[ttHg̋@\ƂɂȂ܂B


  tkDefineFont, tkDefaultFont ƂANXwAEBWFbgCX^
Xwɂ͈Ӗ܂B

	*tkDefineFont
	tkapp*tkDefineFont
	*tkDefaultFont
	tkapp*tkDefaultFont

  ̌`łwłȂƂƂłB


2.	XIM vgRւ̑Ή

2.1	ϊvgR̎w

  ϐA X \[Xf[^x[X̃JX^}CYɂA
vgR kinput2, XIM ̓̂Io悤ɂ
܂BɎgƂ͋֎~Ă܂B

  ϐ TK_KCPROTO  kinput2 ɂƁAkinput2 vgRg
܂Bxim ɂ XIM vgRgp܂B

  ϐ TK_KCPROTO ݒ肳ĂȂꍇAX \[Xf[^x[XA
tkKanjiConversionProtocol \[X܂B
tkKanjiConversionProtocol \[X́A

	*tkKanjiConversionProtocol:		xim
	tkApp*tkKanjiConversionProtocol:	kinput2

  ̌`ŎgpłAO҂ Tk8.0jp ŏꂽXNvg defaultA
 tkApp ƂCӂ̃AvP[VŎgp܂Bw肷ĺA
TK_KCPROTO ƓlłB

  ATK_KCPROTO  tkKanjiConversionProtocol w肳ȂꍇA
ϐ XMODIFIERS ݒ肳Ă XIM vgRg܂B
XMODFIERS w肳ĂȂꍇAʌ݊̂߂ kinput2 vgR
I܂B

  ȉɁACӂ Tk XNvg tkApp Ŏg銿ϊvgȒI
̂AϐAX \[Xf[^x[X̋ł܂Ƃ߂Ă
B

	o ܂ϐ TK_KCPROTO QƂB
	o  tkApp*tkKanjiConversionProtocol QƂB
	o  *tkKanjiConversionProtocol QƂB
	o Ɋϐ XMODIFIERS ̐ݒ̗L check Aݒ肳
	  Ă XIM gB
	o LSĂɊYȂꍇAkinput2 vgRgpB

2.2.	eEBWFbg̕ϊX^C̎w

  XIM vgRł́AϊT[oT|[gAlXȕϊX^Cw
ł܂B

  Tk8.0jp ł́AAϊX^CƂāA

	PreeditCallbacks StatusCallbacks
		c̏ϊ(on the spot)ŁAϊ̕̕`悩X
		  e[^Ẍ̕\/\܂ŁAS Tk sBTk 
		  łŝŁAłRx̍䂪s :)B
		  AԂX^C :) ͑S Tk ̃XN
		  vgxōŝŁA[UXNvg(R[
		  obNnh)Lq鎖ŁA͂̃tJX^
		  }CY\BAXIM Ɋւ Xlib x̒m
		  ኱Kv :)

	PreeditPosition StatusArea
		c̏ϊ(over the spot)ŁAϊpҏẄAXe[
		  ^ẌƂ Tk ǗBTk8.0jp  kinput2 v
		  gRŃZbV𒣂鎞A኱
		  ł :) ł́AႢ͂܂薳 ^^;

	PreeditPosition StatusNothing
		c̏ϊ(over the spot)ŁAϊpҏẄ Tk A
		  Xe[^Ẍ͕ϊT[oǗBTk8.0jp  
		  kinput2 vgRŃZbV𒣂鎞Ƃقڌ݊B

	PreeditArea StatusArea
		cϊpҏẄAXe[^ẌƂ Tk Ǘ
		  (off the spot)B̎ł́AEBWFbg̍ŉi
		  ɕϊpҏẄƂ 1 s̃GAmۂA
		  s̈ԍɃXe[^Ẍ悪\ĂB
		  撣΁A^Iɂ̏ϊɂł ^^;

	PreeditNothing StatusNothing
		c root ϊBϊT[o root EChEɕ
		  pEBhEpӂĂBTk ͕̂
		  ȊOؕϊT[oƘbȂB

   5 ނT|[gĂ܂( kinput2 T|[gĂϊ
X^CقڑSĂł)B

  ϊX^Cw肷ɂ́AtkPreferredImStyle \[X X \[X
f[^x[XɎw肵܂BႦ΁AText EBWFbg̕ϊX^Cw
肵ꍇA

	*tkPreferredImStyle(Text): {PreeditPosition StatusArea} \
		{PreeditPosition StatusNothing}

ȂǂƂĂ܂BϊT[o

	{PreeditPosition StatusArea} {PreeditPosition StatusNothing}

  ̗T|[gĂ΁AtkPrefferdImStyle ŐɎw肳ꂽ 
{PreeditPosition StatusArea} gp܂BϊT[o 

	{PreeditPosition StatusNothing}

  T|[gĂȂꍇA{PreeditPosition StatusNothing} gp
邱ƂɂȂ܂BtkPreferredImStyle Ŏw肵X^CSϊT[
oT|[gĂȂꍇAϊ͑Ss܂B

  tkPreferredImStyle  () ̒ɂ́AX^Cw肵 Tk ̃EBWFb
gNXw肵܂B Entry EBWFbg̕ϊX^Cw肷
̂ł΁A

	*tkPreferredImStyle(Entry): {PreeditPosition StatusNothing} \
		{PreeditNothing StatusNothing}

  ̂悤Ɏw肷 OK łBEBWFbgCX^Xw͌ł
B

  tkKanjiConversionProtocol \[XƓlɁAtkPreferredImStyle \[
X͔Cӂ Tk XNvg tkApp Ɏw肷邱Ƃ\łB

	tkApp*tkPreferredImStyle(Entry): {PreeditPosition StatusNothing} \
		{PreeditNothing StatusNothing}

  ̂悤ɏƁAtkApp  Entry EBWFbg̕ϊX^Cwł
܂B

2.3.	imconfigure R}hɂ

  XIM vgRɑΉ邽߂ɁATk8.0 ɐV imconfigure R}h
ǉ܂Bimconfigure R}hɂďĂ܂B

Syntax:
	imconfigure path ?option args? ?option args? ...

option ɂ́A

	-status
	-supportedStyle
	-style
	-spot
	-preeditArea
	-statusArea
	-preferredStatusArea
	-font
	-foreground
	-backgrpund
	-callback

  wł܂Boption Sw肳ĖꍇApath ݂̌̏Ԃ
SĕԂ܂BႦ΁A

-status started -supportedStyle { \
{PreeditPosition StatusArea} {PreeditPosition StatusNothing} \
{PreeditArea StatusArea} {PreeditCallbacks StatusCallbacks} \
{PreeditCallbacks StatusNothing} {PreeditNothing StatusNothing}} \
-style {PreeditCallbacks StatusCallbacks} -spot {} -preeditArea {} \
-statusArea {} -preferredStatusArea {} -font {} -foreground {} \
-background {} -callback tkTextIMCallbackProc 

  ̂悤ȕ񂪕Ԃė܂B


o -status (Ȃ:擾̂)

  ϊT[oƃZbV𒣂ׂ̃ReLXg(AKA XIC. See also X11
documents)Ă邩ۂԂ܂BReLXg𐶐ɂ́A-
style IvV(т̃X^C̏ɕKKvȂ̑̃IvV
)w肵 imconfigure R}hĂяo܂BAReLXg
ĂȂꍇA"never" Ԃ܂BReLXg
 "started" Ԃ܂B

o -supportedStyle (Ȃ:擾̂)

  ϊT[oT|[gϊX^C̃XgԂ܂BR
܂B

o -style {style}

  {style} ɕϊX^Cw肵܂Bwł̂́A-supportedStyle 
IvVŕԂėXĝ̈łB{style} ɉw肵Ȃ
ꍇA݂̕ϊX^CԂ܂B-status IvV "never" 
Ԃł́A-style IvV {} Ԃ܂B
  A-status IvV "started" ԂԂ -style IvV
ɈႤlw肵 imconfigure R}hĂяoꍇÃ݂Re
LXg͔j󂳂AVReLXgĐ܂BϊX^C
Iɕςꍇɂ̂݁Â悤ȎgׂłB

o -spot {x y}

  ϊpҏẄł̕ҏWʒu {x y} ɂꂼ X WAY WŎw
܂(ϊpҏẄ x, y _Ƃ)B-style IvVŎw肵
ϊX^CɁAPreeditArea, PreeditPosition ̂ǂ炩w肳
ȂƖӖA imconfigure R}hs܂B{x y} w
ȂꍇA݂̕ҏWʒuԂ܂B

o -preeditArea {x y w h}

  ϊpҏẄ̃WIg {x y w h} ɂꂼ X WAY WAA
w肵܂(path Ŏw肵EBWFbg x, y _Ƃ)B-
style IvVŎw肵ϊX^C PreeditArea, PreeditPosition 
̂ǂ炩w肳ĂȂƖӖA imconfigure R}h
s܂B{x y w h} w肵ȂꍇA݂̕ϊpҏẄ̃WIg
Ԃ܂B

o -statusArea {x y w h}

  Xe[^Ẍ̃WIg {x y w h} ɂꂼ X WAY WAA
w肵܂(path Ŏw肵EBWFbg x, y _ƂB-
style IvVŎw肵ϊX^C StatusArea w肳ĂȂ
ӖA imconfigure R}hs܂B{x y w h} w肵
ȂꍇÃ݂Xe[^Ẍ̃WIgԂ܂B


o -preferredStatusArea (Ȃ:擾̂)

  ϊT[oEAXe[^Ẍ̃WIgԂ܂B-style 
IvVŎw肵ϊX^C StatusArea w肳ĂȂƖӖA
 imconfigure R}hs܂B

o -font font

  ϊpҏẄAXe[^Ẍł̕̕\ɎgptHg 
font Ɏw肵܂Bfont w肵ȂꍇÃ݂tHgԂ܂B

o -foreground color

  ϊpҏẄAXe[^Ẍ foreground color  color Ɏw肵
܂Bcolor w肵ȂꍇA݂ foreground color ߂܂B

o -background color

  ϊpҏẄAXe[^Ẍ background color  color Ɏw肵
܂Bcolor w肵ȂꍇA݂ background color ߂܂B

o -callback handler

  on the spot X^Cgpꍇ̃R[obNnhw肵܂B
handler w肵ȂꍇÃ݂R[obNnh߂܂B
  handler ͎ۂɎs鎞ɁA4 ̈ǉČĂ΂܂B


2.3.1	imconfigure R}h̎gp

  $tk_library/xim.tcl QƂĂBtkConfigIm vVŴ
B

  ܂Aon the spot [hł -callback IvVŎw肷R[ob
Nnh̏ڍׂ̃hLgpӂĂ܂ ^^; ݂ default 
łA$tk_library/xim.tcl  tkTextIMCallbackProc vVWQl
ɂĉB܂AtkImPriv(debug) Ƃϐ 1 ɂƁA
tkTextIMCallbackProc vVWĂ΂ꂽɁÄWG[o
͂ɕ\悤ɂȂ܂Be͊{IɁA
XIMPreeditCallbacks|XIMStatusCallbacks gpꍇɎgpA
XIMCallback ̃R[obN𕶎ɒēnĂ邾łBƂ
킯ŁAŃR[obNnhĺAX11 ̃hLg
́A13.5.7.4 ` 13.5.7.7 QƂĉ _o_ ^^;


2.4.	XIM gp̐

2.4.1.	ϊ񒷂 1024 oCgł

  ݂̍ŐVłƎv X11R6.3, XFree86 3.3.3.1 łA
XmbLookupString() ɃoOAϊT[oƂ̒ʐMɂāAϒob
t@g܂BTk8.0jp ɁAXmbLookupString() ݂̂ fix ̂
邱Ƃl܂Aeo[W Xlib ƐƂ̂߂
Ȃ̂ ^^; ~߂Ă܂(XFree86 3.3.[12] ł͂Ƃ肠ϒ
obt@g悤ɂ̂͂)B
  ŁAAp㍢Ȃ͈͂ƂāAŒ蒷obt@X^bN 
1024 oCgmۂĂ܂(SIJS, EUC Œ 512 )Bϊʂ
蒷ȂƁA1024 oCgȍ~͎̂Ă܂B

2.4.2.	R5 x[X Xlib œH

  ͂łBAƂẮAXFree86 Ȃ X11R6.3 Ȃ X11R6.4 
gɂȂ邱Ƃ߂܂ :)

  ASunOS 5.x i386  xlib (/usr/openwin/lib/libX11.*) œ
mFĂ܂BASunOS 5.x t XIM vgRx[X̕ϊT[
oł htt Ƃ̒ʐḾASunOS 5.x t X T[oAtk  
XSetICValues() 𔭍s_ŗ邽߁AmFłBhtt  SunOS
5.x t X T[oȊOœƂeՂł΁AeXg\Ȃ̂
AꂪȂȂĂȂ̂ōĂ܂B

2.4.3.	on the spot [h̎̂߂ dirty hack ɂ

  on the spot X^C̐ Tcl ̃XNvgxŎ邽߂ɁA
ƊȂ hack Ă܂(Display \̂̃oQƂĂ)B
̂߁AȂAcore f邩m܂B̏ꍇAf
ɒ߂邩A Display.im_filters ̃ItZbgTĉ _o_

  ƁÂ悤ȗRŁAon the spot [h̓ftHgł͎gȂ悤
ɂĂ܂B3.1 ŐĂAconfigure  --enable-onTheSpot 
t configure ꍇ̂݉\ɂȂ܂B


3.	̑

3.1.	configure ̕ύX

  XIM vgRɑΉ邽߂ɂ́AX ̐ݒ𐳊mɒmKv܂B
 -DX_LOCALE, -DX_WCHAR ̗LϏdvɂȂ܂BŁA
configure XNvg imake  check āAimake Ŏgp C 
vvZbTIvVQƂ悤ɕύX܂BɔA
܂ł Makefile.in 𒼐ڕҏW邱ƂŃRpCύX
 configure  --enable-*/--disable-* IvVw肷ɕύX
܂Bgp\ȃIvV́Aconfigure --help ŕ\܂B
ɓ{֌W̃IvVĂ܂B

	--enable-kanji		{ꉻ@\gp\ɂ(ftHg)B

	--enable-kinput2 	kinput2 vgRgp\ɂ(ftH
				g)B
	
	--enable-ximImprove	܂Ƃ XIM vgRT|[ggp\
				ɂ(ftHg)B

	--enable-xlfdCheck	Ԉ XLFD ̃`FbN@\Lɂ
				(ftHg)B3.3 QƁB

	--enable-xlibHack	XFree86 3.3.2 gĂꍇɂ̂ݎw
				܂Bw肷ƁAXListFonts(),
				XLoadQueryFont()  Tk ̓Ǝ[`ɒu
				鎖ŁA

				EListFonts protocol ̔sȂׂ
				}BTk ̗オ莞ɂ X T[
				oŎgp\ȃtHgSĂ𒲂ׁAȍ~
				܂̃Xg邱ƂőpB
				Ȃꍇ(Scalable font 
				)ɂ̂ݎۂ ListFonts 𔭍sB

				EO( XLFD AAAXS
				܂)tHg 1 x 
				LoadFont ȂȂB

				EXCreateFontSet() L 2 ̓Ǝ[
				`QƂ悤ɂȂB

	--enable-onTheSpot	XIM  on the spot X^C̃T|[g
				\ɂ܂BftHgł͉\ɂȂ
				B


  --disable-kanji w肵ꍇ tk8.0jp ͕̓ۏ؂܂ :)B

3.2.	kinput2 vgRł̕ϊJnL[̎w

  ܂ł낤낤ƎvĂđSRĂȂ̂ł ^^;, XIM 
vgRŕϊX^Cwł悤ɂłɁAkinput2 vg
Rgp̕ϊJnL[AeEBWFbg̕ϊX^C X \[Xf[
^x[XŎwł悤ɂ܂B

3.2.1	ϊJnL[̎w

  tkKinputStartKeys \[XAႦΈȉ̂悤Ɏw肵܂B

	*tkKinputStartKeys:	Control-backslash \
				<Control-Kanji>

  L[V[PX Tk  bind R}hɎgp̂łB<> Ŋ
ĂȂꍇAI <> Ŋ܂BǂłACӂ Tk XN
vg tkApp ɕϊJnL[w肷邱\łB

3.2.2	eEBWFbg̕ϊX^C

  tkKinputStyle \[XŎw肵܂B

	*tkKinputStyle(Text):	over
	*tkKinputStyle(Entry):	root

  ̂悤ɁA() ̒ɂ Tk ̃EBWFbgNX(Text, Entry)w肵
Bl over, root ̂ǂ炩ŁAover ̏ϊAroot  root ϊ
܂B


3.3.	X-TT gꂽ X T[oւ̑Ή

  X-TT T[o(X TrueType serverB
http://cclub.cc.tut.ac.jp/~Ego/unix/xtt.htmlQ) xtt05-fix1 gp
Ăꍇ(mFłAÂo[WɂY܂)A
XListFonts()  XGetAtomName() 邱Ƃœ XLFD ̃tH[}b
gԈĂATrueType tHg tk8.0  named font ƂĎgp
ł܂ł(lCeButHgƂ failsafe tHgȂǂɎgp
邱Ƃ͉\)B

# xtt06 [X܂BA܂m߂Ă܂ ^^;

   XLFD ̊ԈႢ炢ŎgȂ̂͑ϔ߂A悤ɂ
茵 XLFD ̃p[YsĂƎv Netscape ł͖薳g
Ă̂rΏۂɂăVNȂ̂ ^^;A{ꉻɂ͊{Iɖ֌W
 XLFD ̃p[Y[`Ɏ܂BAX-TT T[oΉ
ꍇA X-TT łȂ X T[ogĂꍇɂ͒PȂ璷 
XLFD `FbN[`ɂȂ܂񂪁A󂱂ftHgɂĂ
܂B~߂ꍇA--disabel-xlfdCheck w肵 configure 
sΗǂłB

  tk4.xjp Ƃ̔݊Ƃ킯ł͂܂񂪁Atk4.xjp ł͖薳 
X-TT T[o TrueType ĝłɋL܂B


3.4	canvas EBWFbgł PostScript õ͎tHgw

  canvas EBWFbg postscript R}hgpہA-fontmap Iv
Vw肷邱Ƃ canvas EBWFbgŎgpĂtHg
 PostScript ŎgptHgΉt邱Ƃo܂B

  tk8.0jp ł -fontmap IvVɓnz̃tH[}bgg
Atk8.0 

	set fontMap(myFont) {PSFont pointSize}

  ƏƂA

	set fontMap(myFont) {{PSFont PSKanjiFont} pointSize}

  ̂悤ɏŁAcanvas EBWFbg myFont ƂtHgŕ`
悳ꂽ PostScript o͂鎞ɂ́Aascii  PSFontA
 PSKanjiFont ŏo͂AƂw肪\ɂȂĂ܂BpointSize 
ɂ PostScript ł̃|Cgw肵܂B myFont  12 |Cg
ł΁ApointSize ɂ 12 w肷̂ǂł傤B

  -fontmap IvVw肷ꍇAʏ҂̃tH[}bgō\
zn߂܂B

  tk8.0jp őO҂̎wꍇAmyFont ̌`Ɉˑ PostScript 
tHg肳܂BȉɈꉞ܂Ƃ߂܂B

	o myFont  ascii tHgꍇAascii ̏o͂ 
	  PSFont gpȀo͂͏ Ryumin-Light-EUC-H g
	  pB

	o myFont tHgꍇAascii ̏o͂ɂ͏ 
	  Courier gpȀo͂ PSFont gpB 
	  PSFont  ascii ̃OtȂtHgł
	  A܂܂ꂽ͐ɈȂB

	o myFont RpEhtHgłꍇAɃG[ƂȂB

  -fontmap IvVw肵ȂꍇAcanvas EBWFbg myFont 
ƂtHgŕ`悳ꂽ PostScript o͂鎞ɂ́AEBh
Eւ̕`擯lAmyFont ̌`ƃt@CZ[ttHg̎wɉ 
PostScript tHg肳܂B܂Acanvas EBWFbgŐ
 ascii Ɗ\oĂȂAȂƂȂň
łƂƂłB

  -fontmap IvVw肵ȂꍇAAUNIX łł́AtHg
͏ Ryumin-Light-EUC-H gp܂B

  tk8.0jp  PostScript  EUC ŏo͂܂BāA\
邽߂̓{tHǵA EUC tHgIKv
B

  -fontmap IvV̎gpĂ܂B̗́Acanvas EBWFb
g text  Helvetica-Bold  GothicBBB-Medium-EUC-H gp 
PostScript ɗƂ܂B

canvas .c
pack .c
set t [.c create text 100 100 -text "Helvetica ƃSVbNaaa"]
set f [.c itemcget $t -font]
set fontMap($f) {{Helvetica-Bold GothicBBB-Medium-EUC-H} 12}
set ps [.c postscript -fontmap fontMap]


3.5.	selection, clipboard R}hł target Atom  type Atom

3.5.1.	selection ̎擾

  Tcl/Tk 8.0.4jp1.3 ܂ł́Atk4.xjp lATk ̃NCAg 
SelectionRequest 𑗂ꍇ(b Cut & Paste 邱ƂŁATk Iɂ́A
selection get R}hgp)AftHg target Atom (selection get 
R}h -type ̃IvVɎw肷镶) COMPOUND_TEXT gp
Ă܂B܂ACOMPOUND_TEXT ł̃ZNV擾ɎsĂA
target Atom ̐ݒςčėv邱Ƃ܂łB̂߁A
target Atom Ƃ STRING łȂNCAg Cut &
Paste  Tk ɒlė鎖ȒPɏo܂ł( Text 
EBWFbg̃L[oChςAs STRING Atom ōėvA
Kv)B

  Tcl/Tk 8.0.4jp1.4a A̎dlςAftHgŁA

	a. ŏ TEXT ŗvB
	b. a. s COMPOUND_TEXT ŗvB
	c. b. s STRING ŗvB
	d. sB

  ̂悤ɂ܂BRłAselection get R}h -type IvV
͍܂Œʂgpł܂B

3.5.2.	clipboard append R}hɂ selection ̐ݒ

  3.5.1. ̋tɁAclipboard append R}hŃNbv{[hɒlݒ肷
ꍇATcl/Tk 8.0.4jp1.4a ȑO̎dlƕς܂BȑO 
clipboard append R}h̃ftHg(-format, -type IvVw
Ȃꍇ)ł́Atarget Atom (-type IvV̒l)Ƃ 
COMPOUND_TEXT, type Atom (-format IvV̒l)Ƃ COMPOUND_TEXT 
gpĂ܂B̏ꍇACOMPOUND_TEXT ŗvĂNCA
gȊOɂ̓Nbv{[h̓en܂ł(R -format, -type 
IvVgpΉ\ł)B

  Tcl/Tk 8.0.4jp1.4a ́AftHgŁA

	a. eɊ܂܂ꍇ

		i. 	target:TEXT		type:COMPOUND_TEXT
		ii. 	target:COMPOUND_TEXT	type:COMPOUND_TEXT
		iii.	target:STRING		type:STRING

	b. eS ascii ̏ꍇ

		i.	target:TEXT		type:STRING
		ii.	target:STRING		type:STRING

  ̂悤ɁA^Cv̗vɓ悤ɂ܂Ba.iii. ̏ꍇA
Nbv{[h̊R[h Tcl  internalCode ɂȂĂ܂B
āAa. ̏ꍇ STRING target ŗvꂽ́AvNCA
g internalCode ̊R[hmĂȂΕ邱Ƃɂ
܂B

  Ȃ݂ɁAentry, text EBWFbǵAŏ當񂵂Ȃ
ĂEBWFbg Cut & Paste ł́AƓlȋ@\ȑOA
̃EBWFbgg̋@\ƂĎĂ܂(vɁAselection 
R}h clipboard R}hg selection handler XNvg
xŎȂĂǂAƂ)BӖI clipboard R}
h̃ftHgɂKp킯łB


4.	Text EBWFbgł֑̋

  tk4.xjp ł֑̋́AtHgɃn[hR[fBOꂽ֑
e[upċ֑sĂ܂B܂Atk8.0.4jp 1.4 ܂ł 
tk8.0jp ́A֑SɖĂ܂ ^^; (tHgɋ֑e[
uĂ͂ǁANQƂĂȂ ^^;)

  tk8.0.5jp 1.5 A{֑̂߂ kinsoku R}h𓱓
܂Bkinsoku R}hp鎖ŁARɍs֑As֑
wł܂B

4.1.	kinsoku R}h̎dl

  kinsoku R}h́Aȉ̏ŗp܂B

	kinsoku show|add|delete begin|end|both ?  ...?

  kinsoku show R}h́A݂֑̋f[^x[X\̂ɗp
܂B2 Ԗڂ̈ɂ begin(s֑), end(s֑), both(ss
֑) ̂ꂩw肵܂B

  kinsoku add R}h́A֑f[^x[Xւ֑̋̓o^Ɏgp
܂B2 Ԗڂ̈ɂ begin, end, both ̂ꂩw肵܂Bo
^֑́APɋ󔒂ŋ؂ 1 ȏw肵܂BXg
͂܂B

  kinsoku delete R}h́A֑f[^x[Xw肵֑
菜̂Ɏgp܂Bǂł 2 Ԗڂ̈ɂ begin, end,
both ̂ꂩw肵܂B菜֑́APɋ󔒂ŋ؂
 1 ȏw肵܂BXgł͂܂Bw肵֑A֑
f[^x[XɂȂꍇAPɖ܂B

   1: '.', ',' s֑ɐݒB

	kinsoku add begin "." ","

   2: '' ss֑ɐݒB

	kinsoku add both ""

		both ̎ẃA

			kinsoku add end ...
			kinsoku add begin ...

		𔭍ŝƓB


  kinsoku R}hŐ䂷֑́AText EBWFbǵA-wrap I
vV word ̎ɂ̂ݍp܂B܂A֑f[^x[X́Av
ZXɈłBText EBWFbg̑ł͂܂B

  ܂Ấ֑Aw肵֑́uOɁvLN^
݂ꍇ݂̂łBႦ΁A'.' ֑f[^x[XɂĂA


	a.aaaaa.dddd.ccccc

  ̂悤ȕ͉pƂĈA{֑̑Ώۂɂ͂Ȃ܂B
pɂ֑͋̊TO͕KvȂAword wrap ŕЕtłB
L͋󔒂S܂܂ĂȂ̂ŁApƂĂ 1 PƂĈ
A'.' {֑łĂ̑ΏۂƌȂȂłB

  l߂ɂ֑͍s܂ ^^; S̍sւ̒ǂoł ^^;

  ftHg֑̋̐ݒ́A$tk_library/kinsoku.tcl ōsĂ
Bȉ̒ʂłB

s֑:

	"!" ")" "," "." "?" "]" "A" "B" "H" "I" "j" "l" "n"
	"v" "x" "z"

s֑:

	"(" "[" "i" "k" "m" "u" "w" "y"


4.2.	$tk_library/kinsoku.tcl ̕ҏW̒

  ʏA$tk_library/kinsoku.tcl ҏWȂAeXNvg 
kinsoku R}hpċ֑f[^x[XύXė~̂łA
uǁ[ĂftHg̐ݒςvƂ́AȉɒӂĕύX
ĂB

  $tk_library/kinsoku.tcl ́AJIS R[hŏĂ܂B́A
グɁAǂ internal code łR[h̎ʂ𐬌邽߂
BEUC  SJIS ŏƁAR[h̎ʂ\̂ŁÄ
ɂĂ܂BWindows ȂǁAقڊԈႢ SJIS gł
SJIS ŏĂǂm܂񂪁AUNIX ̂悤Ɍl̐ݒŗグ
 internal code ႤƂO̊ł́AJIS ŋLq悤
ĂB
