#!/usr/bin/wish8.3
# ե륨ǥ for EWB ver.3.3
# (c)1999-2001 ҥ
# Υץ
#

set guilib /usr/share/ewb/3.3/guilib
set bindir /usr/lib/ewb/3.3/bin
set fontslistfile /usr/share/ewb/3.3/ewbmacros/lib/fonts.lst
set patchfile /usr/share/ewb/3.3/ewbmacros/lib/patch2ewb3_3.sty

set rootwd [winfo screenwidth .]
set rootht [winfo screenheight .]

if {![string compare $tcl_version "8.0"]} {
	font delete Mincho:Helvetica-Bold-12
	font create Mincho:Helvetica-Bold-12 -compound {a14 k14}
	font delete Mincho:Helvetica-12
	font create Mincho:Helvetica-12 -compound {a14 k14}
} else {
	option add *Font a14
	option add *Font k14
	catch {tk useinputmethods 1}
}

set stylecount 0
set sourcemain 1
set sourceindex 1

set forcewrite 0
# 񤭤λ1

set active 0
# ƹܤɲ/ʣ/1

frame .f0
frame .f1

# ե˥塼
menubutton .sted -text "ե" -menu .sted.m0 -width 10 -relief raised
menu .sted.m0 -tearoff false
.sted.m0 add command -label "ե򳫤" -command {
	selectstyle

	if {$flag} {
		if {[file exists $filename]} {} {
			errormsg "ե뤬¸ߤޤ"
			return
		}
		if {[readcommon $filename]} {
			return
		}
		common
	}
	set active 0
}

.sted.m0 add command -label "κۥե򳫤" -command {
	selectstyle

	if {$flag} {
		if {[file exists $filename]} {} {
			errormsg "ե뤬¸ߤޤ"
			return
		}

		set tmpcount $stylecount
		set stylecount 0
		for {set i $stylecount} {1} {incr i} {
			for {set j 0} {$j < $stylecount} {incr j} {
				if {![string compare $sname($j) pssted]} {
					break
				}
			}
			if {$j >= $stylecount} {
				break
			}
		} 
		set sname($stylecount) pssted
#		if {$sourcemain} {
#			source $guilib/guisted.main
#			set sourcemain 0
#		}
		if {[readsted $sname($stylecount) $filename]} {
			return
		}
#		incr stylecount
		set stylecount $tmpcount
		flashstylelist

#		editstyle $sname([expr $stylecount - 1])
		editstyle $sname(0)

		set cchanged 1
	}
	set active 0
}

.sted.m0 add command -label "κۥե򳫤" -command {
	selectstyle

	if {$flag} {
		if {[file exists $filename]} {} {
			errormsg "ե뤬¸ߤޤ"
			return
		}

		set tmpcount $stylecount
		set stylecount 1
		for {set i $stylecount} {1} {incr i} {
			for {set j 0} {$j < $stylecount} {incr j} {
				if {![string compare $sname($j) psidxsted]} {
					break
				}
			}
			if {$j >= $stylecount} {
				break
			}
		} 
		set sname($stylecount) psidxsted
#		if {$sourceindex} {
#			source $guilib/guisted.index
#			set sourceindex 0
#		}
		if {[readidxsted $sname($stylecount) $filename]} {
			return
		}
#		incr stylecount
		set stylecount $tmpcount
		flashstylelist

#		editidxstyle $sname([expr $stylecount - 1])
		editidxstyle $sname(1)

		set cchanged 1
	}
	set active 0
}

.sted.m0 add separator

.sted.m0 add command -label "¸" -command {
	if {[llength [.l0 curselection]]} {
		set forcewrite 0
		if {[.l0 curselection] == 0} {
			writecommon
		} else {
			if {$stype($sname([expr [.l0 curselection]-1]))} {
				writeidxsted $sname([expr [.l0 curselection]-1])
			} else {
				writested $sname([expr [.l0 curselection]-1])
			}
		}
		flashstylelist
	} else {
		errormsg "κۤ򤵤Ƥޤ"
	}
	set active 0
}

.sted.m0 add command -label "¸" -command {
	set forcewrite 0
	for {set i 0} {$i < $stylecount} {incr i} {
		if {$stype($sname($i))} {
			writeidxsted $sname($i)
		} else {
			writested $sname($i)
		}
	}
	writecommon
	flashstylelist
	set active 0
}

.sted.m0 add separator

.sted.m0 add command -label "¸" -command {
	if {[llength [.l0 curselection]]} {
		set forcewrite 1
		if {[.l0 curselection] == 0} {
			writecommon
		} else {
			if {$stype($sname([expr [.l0 curselection]-1]))} {
				writeidxsted $sname([expr [.l0 curselection]-1])
			} else {
				writested $sname([expr [.l0 curselection]-1])
			}
		}
		flashstylelist
		set forcewrite 0
	} else {
		errormsg "κۤ򤵤Ƥޤ"
	}
	set active 0
}

.sted.m0 add command -label "¸" -command {
	set forcewrite 1
	for {set i 0} {$i < $stylecount} {incr i} {
		if {$stype($sname($i))} {
			writeidxsted $sname($i)
		} else {
			writested $sname($i)
		}
	}
	writecommon
	flashstylelist
	set forcewrite 0
	set active 0
}

.sted.m0 add separator

.sted.m0 add command -label "GUIεư" -command {
	exec sh -c $bindir/guishell &
}

.sted.m0 add separator

.sted.m0 add command -label "guistedνλ" -command {
	exitsted
}

# Խ˥塼
#menubutton .edit -text "Խ" -menu .edit.m0 -width 10 -relief raised
#menu .edit.m0 -tearoff false
#.edit.m0 add command -label "κۤԽ" -command {
#	editstylemenu
#}
#
#.edit.m0 add command -label "κۤɲ" -command {
#	if {$sourcemain} {
#		source $guilib/guisted.main
#		set sourcemain 0
#	}
#	for {set i $stylecount} {1} {incr i} {
#		for {set j 0} {$j < $stylecount} {incr j} {
#			if {![string compare $sname($j) pssted-$i]} {
#				break
#			}
#		}
#		if {$j >= $stylecount} {
#			break
#		}
#	} 
#	set sname($stylecount) pssted-$i
#	makenewsted $sname($stylecount)
#	incr stylecount
#
#	flashstylelist
#	.l0 selection set $stylecount
#
#	editstyle $sname([expr $stylecount-1])
#
#	set cchanged 1
#}
#
#.edit.m0 add command -label "κۤɲ" -command {
#	if {$sourceindex} {
#		source $guilib/guisted.index
#		set sourceindex 0
#	}
#	for {set i $stylecount} {1} {incr i} {
#		for {set j 0} {$j < $stylecount} {incr j} {
#			if {![string compare $sname($j) psidxsted-$i]} {
#				break
#			}
#		}
#		if {$j >= $stylecount} {
#			break
#		}
#	} 
#	set sname($stylecount) psidxsted-$i
#	makenewidxsted $sname($stylecount)
#	incr stylecount
#
#	flashstylelist
#	.l0 selection set $stylecount
#
#	editidxstyle $sname([expr $stylecount-1])
#
#	set cchanged 1
#}
#
#.edit.m0 add command -label "ʣ" -command {
#	copystylemenu
#	set cchanged 1
#}
#
#.edit.m0 add command -label "" -command {
#	deletestylemenu
#	set cchanged 1
#}

label .lb0 -text "      κۥե̾        ե̾    ȥꥬե̾"
listbox .l0 -height 10 -width 75 -yscrollcommand ".s1 set" -selectmode single
scrollbar .s1 -orient vertical -command ".l0 yview"
.l0 insert 0 "  0   "

# Խܥ
button .bedit -text "Խ" -command {
	editstylemenu
}

#button .badd -text "κɲ" -command {
#	if {$sourcemain} {
#		source $guilib/guisted.main
#		set sourcemain 0
#	}
#	for {set i $stylecount} {1} {incr i} {
#		for {set j 0} {$j < $stylecount} {incr j} {
#			if {![string compare $sname($j) pssted-$i]} {
#				break
#			}
#		}
#		if {$j >= $stylecount} {
#			break
#		}
#	} 
#	set sname($stylecount) pssted-$i
#	makenewsted $sname($stylecount)
#	set schanged($sname($stylecount)) 1
#	incr stylecount
#
#	flashstylelist
#	.l0 selection set $stylecount
#
#	editstyle $sname([expr $stylecount-1])
#	set cchanged 1
#}
#
#button .bidxadd -text "ɲ" -command {
#	if {$sourceindex} {
#		source $guilib/guisted.index
#		set sourceindex 0
#	}
#	for {set i $stylecount} {1} {incr i} {
#		for {set j 0} {$j < $stylecount} {incr j} {
#			if {![string compare $sname($j) psidxsted-$i]} {
#				break
#			}
#		}
#		if {$j >= $stylecount} {
#			break
#		}
#	} 
#	set sname($stylecount) psidxsted-$i
#	makenewidxsted $sname($stylecount)
#	set schanged($sname($stylecount)) 1
#	incr stylecount
#
#	flashstylelist
#	.l0 selection set $stylecount
#
#	editidxstyle $sname([expr $stylecount-1])
#	set cchanged 1
#}
#
#button .bcopy -text "ʣ" -command {
#	copystylemenu
#	set cchanged 1
#}
#
#button .bdelete -text "" -command {
#	deletestylemenu
#	set cchanged 1
#}

bind .l0 <Double-ButtonRelease> {
	editstylemenu
}

# ݥåץåץ˥塼
#menu .l0.m1 -tearoff false
#.l0.m1 add command -label "Խ" -command {
#	editstylemenu
#}
#
#.l0.m1 add command -label "ʣ" -command {
#	copystylemenu
#	set cchanged 1
#}
#
#.l0.m1 add command -label "" -command {
#	deletestylemenu
#	set cchanged 1
#}
#
#bind .l0 <Button-3> {
#	tk_popup .l0.m1 [winfo pointerx .] [winfo pointery .]
#}

grid .sted -row 0 -column 0 -sticky w -in .f0
#grid .edit -row 0 -column 1 -sticky w -in .f0
grid .f0 -row 0 -column 0 -sticky w
grid .lb0 -row 1 -column 0 -sticky w
grid .l0 -row 2 -column 0 -columnspan 2 -sticky nswe
grid .s1 -row 2 -column 2 -sticky ns
grid .bedit -row 2 -column 3 -sticky nw
#pack .bedit .badd .bidxadd .bcopy .bdelete -fill x -in .f1
#grid .f1 -row 2 -column 3 -sticky w
wm title . "guisted for EWB 3.3"

# λ
proc exitsted {} {
	global cchanged schanged forcewrite
	global sname stype stylecount
	global answer

	set forcewrite 0
	if {$cchanged} {
# ¸
		ynmsg ¸ޤ
		if {$answer} {
			writecommon
			set cchanged 0
		}
		set cchanged 0
	}
	
	for {set i 0} {$i < $stylecount} {incr i} {
		if {$schanged($sname($i))} {
			if {$stype($sname($i))} {
# ¸
				ynmsg κ$sname($i)ˤ¸ޤ
				if {$answer} {
					writeidxsted $sname($i)
					set schanged($sname($i)) 0
				}
				set schanged($sname($i)) 0
			} else {
# κ¸
				ynmsg κ$sname($i)ˤ¸ޤ
				if {$answer} {
					writested $sname($i)
					set schanged($sname($i)) 0
				}
				set schanged($sname($i)) 0
			}
		}
	}
	exit 0
}

# κۤԽ
proc editstylemenu {} {
	global guilib sourcemain sourceindex
	global stype sname
	global active

	if {[llength [.l0 curselection]]} {
		if {[.l0 curselection] == 0} {
			common
		} else {
			if {$stype($sname([expr [.l0 curselection]-1]))} {
#				if {$sourceindex} {
#					source $guilib/guisted.index
#					set sourceindex 0
#				}
				editidxstyle $sname([expr [.l0 curselection]-1])
			} else {
#				if {$sourcemain} {
#					source $guilib/guisted.main
#					set sourcemain 0
#				}
				editstyle $sname([expr [.l0 curselection]-1])
			}
		}
	}
	set active 0
}

# κۤʣ
proc copystylemenu {} {
	global guilib sourcemain sourceindex
	global sname stype stylecount
	global active

	if {[llength [.l0 curselection]]} {
		if {[.l0 curselection] == 0} {
			errormsg "ʣǤޤ"
		} else {
			set a [expr [.l0 curselection]-1]
			if {$stype($sname($a))} {
				for {set i $stylecount} {1} {incr i} {
					for {set j 0} {$j < $stylecount} {incr j} {
						if {![string compare $sname($j) psidxsted-$i]} {
							break
						}
					}
					if {$j >= $stylecount} {
						break
					}
				} 
				set sname($stylecount) psidxsted-$i
				if {$sourceindex} {
					source $guilib/guisted.index
					set sourceindex 0
				}
				makenewidxsted $sname($stylecount)
				copyidxsted $sname($stylecount) $sname($a)
			} else {
				for {set i $stylecount} {1} {incr i} {
					for {set j 0} {$j < $stylecount} {incr j} {
						if {![string compare $sname($j) pssted-$i]} {
							break
						}
					}
					if {$j >= $stylecount} {
						break
					}
				} 
				set sname($stylecount) pssted-$i
				if {$sourcemain} {
					source $guilib/guisted.main
					set sourcemain 0
				}
				makenewsted $sname($stylecount)
				copysted $sname($stylecount) $sname($a)
			}
			incr stylecount
			flashstylelist
		}
	}
	set active 0
}

# κۤκ
proc deletestylemenu {} {
	global guilib sourcemain sourceindex
	global sname stype stylecount
	global active

	if {[llength [.l0 curselection]]} {
		set i [expr [.l0 curselection]-1]
		if {$i >= 0} {
			if {[winfo exists .$sname($i)]} {
				destroy .$sname($i)
			}
			if {$stype($sname($i))} {
				if {$sourceindex} {
					source $guilib/guisted.index
					set sourceindex 0
				}
				delidxsted $sname($i)
			} else {
				if {$sourcemain} {
					source $guilib/guisted.main
					set sourcemain 0
				}
				delsted $sname($i)
			}
			for {} {$i < [expr $stylecount-1]} {incr i} {
				set sname($i) $sname([expr $i+1])
			}
			unset sname($i)
			incr stylecount -1
			flashstylelist
		} else {
			errormsg "ϺǤޤ"
		}
	}
	set active 0
}

# κۥꥹȤɽ
proc flashstylelist {} {
	global commonfile title
	global stype
	global stylecount sname stedfile stylef triger
	global active

	.l0 delete 0 end
	set buff [format "  0   %-20s  %-20s  ()" $commonfile $title]
	.l0 insert end $buff
	for {set i 0} {$i < $stylecount} {incr i} {
		if {$stype($sname($i))} {
			set buff [format "%3d   %-20s  %-20s  ()" [expr $i+1] $stedfile($sname($i)) $stylef($sname($i))]
		} else {
			set buff [format "%3d   %-20s  %-20s  %-20s" [expr $i+1] $stedfile($sname($i)) $stylef($sname($i)) $triger($sname($i))]
		}
		.l0 insert end $buff
	}
	.l0 selection clear 0 end
	update
	set active 0
}

# Խɥκ
proc common {} {
	global title dir esc triger stylef commonf
	global cchanged
	global icount
	global urltriger urltextred urltextgreen urltextblue urllinered urllinegreen urllineblue urllinewidth urllinewidthunit urllinestyle urldotlength urldotlengthunit urldotsep urldotsepunit

	if {[winfo exists .common]} {
		raise .common
	} else {
		toplevel .common -width 640 -height 500
		wm title .common "̴"
		button .common.close -text "Ĥ" -command "
			destroy .common
		"
		label .common.lb0 -text "̴"
		label .common.rule0 -text "--------------------------------------------------------------------------------------------------------------------------------"

		label .common.lb1 -text "̾"
		entry .common.title -width 40 -textvariable title
		label .common.lb2 -text ""
		entry .common.subject -width 40 -textvariable subject
		label .common.lb3 -text "̾"
		entry .common.author -width 40 -textvariable author
		label .common.lb4 -text ""
		radiobutton .common.yoko -text "" -var dir -value "" -command {
			flashhonmonteisai
			set cchanged 1
		}
		radiobutton .common.tate -text "" -var dir -value "" -command {
			flashhonmonteisai
			set cchanged 1
		}
		label .common.lb5 -text "Ƚ"
		label .common.lb6 -text ""
		entry .common.vsize -width 8 -textvariable vsize
		paperunitmenu .common.lb6a vsize
		label .common.lb7 -text ""
		entry .common.hsize -width 8 -textvariable hsize
		paperunitmenu .common.lb7a hsize
		papersizemenu .common.papersize .common.lb7a .common.lb6a

		checkpapersize .common.papersize

		label .common.lb8 -text "URL (ȥꥬ̾ʳPDFPSΤͭ)"
		label .common.lb9 -text "ȥꥬ"
		entry .common.triger -width 8 -textvariable urltriger

		canvas .common.image -width 240 -height 140

		.common.image create rectangle 0 0 240 140 -fill white -outline white

		.common.image create text 120 30 -text ""
		.common.image create text 120 50 -text ""
		.common.image create text 120 70 -text "                    "
		.common.image create text 120 90 -text ""
		.common.image create text 120 110 -text ""
		.common.image create rectangle 53 58 188 80

		label .common.lb10 -text "ʸ"

		label .common.urltext -text "//http:/" -background white
		.common.image create window 120 70 -window .common.urltext
		scale .common.textred -orient h -from 0.0 -to 1.0 -resolution 0.01 -var urltextred -showvalue 0 -label "" -command "urltextcolor"
		scale .common.textgreen -orient h -from 0.0 -to 1.0 -resolution 0.01 -var urltextgreen -showvalue 0 -label "" -command "urltextcolor"
		scale .common.textblue -orient h -from 0.0 -to 1.0 -resolution 0.01 -var urltextblue -showvalue 0 -label "" -command "urltextcolor"
		label .common.lbtextred -text $urltextred
		label .common.lbtextgreen -text $urltextred
		label .common.lbtextblue -text $urltextred

		label .common.lb11 -text ""

		scale .common.linered -orient h -from 0.0 -to 1.0 -resolution 0.01 -var urllinered -showvalue 0 -label "" -command "urllinecolor"
		scale .common.linegreen -orient h -from 0.0 -to 1.0 -resolution 0.01 -var urllinegreen -showvalue 0 -label "" -command "urllinecolor"
		scale .common.lineblue -orient h -from 0.0 -to 1.0 -resolution 0.01 -var urllineblue -showvalue 0 -label "" -command "urllinecolor"
		label .common.lblinered -text $urllinered
		label .common.lblinegreen -text $urllinered
		label .common.lblineblue -text $urllinered

		label .common.lb12 -text ""
		entry .common.linewidth -width 8 -textvariable urllinewidth
		label .common.lb12a -text "pt"

		label .common.lb13 -text ""
		radiobutton .common.rb0 -text "" -var urllinestyle -value "" -command "
			seturllinestyle
			set cchanged 1
		"
		radiobutton .common.rb1 -text "" -var urllinestyle -value "" -command "
			seturllinestyle
			set cchanged 1
		"

		label .common.lb14 -text "Ĺ"
		entry .common.dotlength -width 8 -textvariable urldotlength
		label .common.lb14a -text "pt"
		label .common.lb15 -text "ֳ"
		entry .common.dotsep -width 8 -textvariable urldotsep
		label .common.lb15a -text "pt"

		place .common.close -x 550 -y 1
		place .common.lb0 -x 10 -y 10
		place .common.rule0 -x 0 -y 30
		place .common.lb1 -x 10 -y 50
		place .common.title -x 100 -y 50
		place .common.lb2 -x 10 -y 80
		place .common.subject -x 100 -y 80
		place .common.lb3 -x 10 -y 110
		place .common.author -x 100 -y 110
		place .common.lb4 -x 410 -y 50
		place .common.yoko -x 470 -y 50
		place .common.tate -x 530 -y 50
		place .common.lb5 -x 410 -y 80
		place .common.lb6 -x 500 -y 80
		place .common.vsize -x 520 -y 80
		place .common.lb6a -x 590 -y 80
		place .common.lb7 -x 500 -y 110
		place .common.hsize -x 520 -y 110
		place .common.lb7a -x 590 -y 110
		place .common.papersize -x 410 -y 110
#		place .common.lb3 -x 410 -y 140
#		place .common.esc -x 500 -y 140

		place .common.lb8 -x 10 -y 140
		place .common.lb9 -x 50 -y 170
		place .common.triger -x 140 -y 170

		place .common.lb10 -x 50 -y 200
		place .common.textred -x 70 -y 220
		place .common.textgreen -x 70 -y 260
		place .common.textblue -x 70 -y 300
		place .common.lbtextred -x 170 -y 240
		place .common.lbtextgreen -x 170 -y 280
		place .common.lbtextblue -x 170 -y 320

		place .common.lb11 -x 200 -y 200
		place .common.linered -x 220 -y 220
		place .common.linegreen -x 220 -y 260
		place .common.lineblue -x 220 -y 300
		place .common.lblinered -x 320 -y 240
		place .common.lblinegreen -x 320 -y 280
		place .common.lblineblue -x 320 -y 320

		place .common.lb12 -x 50 -y 350
		place .common.linewidth -x 140 -y 350
		place .common.lb12a -x 210 -y 350

		place .common.lb13 -x 50 -y 380
		place .common.rb0 -x 50 -y 400
		place .common.rb1 -x 120 -y 400

		seturllinestyle

		place .common.image -x 360 -y 200

		bind .common.vsize <KeyRelease> "
			allcalcmargin
			set cchanged 1
			checkpapersize .common.papersize
		"
		bind .common.hsize <KeyRelease> "
			allcalcmargin
			set cchanged 1
			checkpapersize .common.papersize
		"
		bind .common.title <KeyRelease> "
			flashstylelist
			set cchanged 1
		"
		bind .common.subject <KeyRelease> "
			set cchanged 1
		"
		bind .common.author <KeyRelease> "
			set cchanged 1
		"
		bind .common.triger <KeyRelease> "
			set cchanged 1
		"
		bind .common.linewidth <KeyRelease> "
			set cchanged 1
		"
		bind .common.dotlength <KeyRelease> "
			set cchanged 1
		"
		bind .common.dotsep <KeyRelease> "
			set cchanged 1
		"

		bind .common.textred <ButtonRelease> "
			set cchanged 1
		"
		bind .common.textgreen <ButtonRelease> "
			set cchanged 1
		"
		bind .common.textblue <ButtonRelease> "
			set cchanged 1
		"
		bind .common.linered <ButtonRelease> "
			set cchanged 1
		"
		bind .common.linegreen <ButtonRelease> "
			set cchanged 1
		"
		bind .common.lineblue <ButtonRelease> "
			set cchanged 1
		"

		wm resizable .common 0 0
	}
}

# ѻ極
proc papersizemenu {win hwin vwin} {
	global hsize vsize hsizeunit vsizeunit cchanged

	menubutton $win -menu $win.m0 -width 8 -relief raised
	menu $win.m0 -tearoff false
	$win.m0 add command -label "A3" -command "
		set hsize 297
		set hsizeunit mm
		set vsize 420
		set vsizeunit mm
		$win configure -text A3
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "A4" -command "
		set hsize 210
		set hsizeunit mm
		set vsize 297
		set vsizeunit mm
		$win configure -text A4
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "A5" -command "
		set hsize 148
		set hsizeunit mm
		set vsize 210
		set vsizeunit mm
		$win configure -text A5
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "A6" -command "
		set hsize 105
		set hsizeunit mm
		set vsize 148
		set vsizeunit mm
		$win configure -text A6
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "B3" -command "
		set hsize 364
		set hsizeunit mm
		set vsize 515
		set vsizeunit mm
		$win configure -text B3
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "B4" -command "
		set hsize 257
		set hsizeunit mm
		set vsize 364
		set vsizeunit mm
		$win configure -text B4
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "B5" -command "
		set hsize 182
		set hsizeunit mm
		set vsize 257
		set vsizeunit mm
		$win configure -text B5
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "B6" -command "
		set hsize 128
		set hsizeunit mm
		set vsize 182
		set vsizeunit mm
		$win configure -text B6
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "Ƚ" -command "
		set hsize 103
		set hsizeunit mm
		set vsize 182
		set vsizeunit mm
		$win configure -text Ƚ
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
	$win.m0 add command -label "ϻȽ" -command "
		set hsize 128
		set hsizeunit mm
		set vsize 188
		set vsizeunit mm
		$win configure -text ϻȽ
		$hwin configure -text mm
		$vwin configure -text mm
		allcalcmargin
		set cchanged 1
	"
}

proc checkpapersize {win} {
	global hsize vsize

	if {![string compare [getmmsize "" hsize ""] "297.00"] && ![string compare [getmmsize "" vsize ""] "420.00"]} {
		$win configure -text A3
	}
	if {![string compare [getmmsize "" hsize ""] "210.00"] && ![string compare [getmmsize "" vsize ""] "297.00"]} {
		$win configure -text A4
	}
	if {![string compare [getmmsize "" hsize ""] "148.00"] && ![string compare [getmmsize "" vsize ""] "210.00"]} {
		$win configure -text A5
	}
	if {![string compare [getmmsize "" hsize ""] "105.00"] && ![string compare [getmmsize "" vsize ""] "148.00"]} {
		$win configure -text A6
	}
	if {![string compare [getmmsize "" hsize ""] "364.00"] && ![string compare [getmmsize "" vsize ""] "515.00"]} {
		$win configure -text B3
	}
	if {![string compare [getmmsize "" hsize ""] "257.00"] && ![string compare [getmmsize "" vsize ""] "364.00"]} {
		$win configure -text B4
	}
	if {![string compare [getmmsize "" hsize ""] "182.00"] && ![string compare [getmmsize "" vsize ""] "257.00"]} {
		$win configure -text B5
	}
	if {![string compare [getmmsize "" hsize ""] "128.00"] && ![string compare [getmmsize "" vsize ""] "182.00"]} {
		$win configure -text B6
	}
	if {![string compare [getmmsize "" hsize ""] "103.00"] && ![string compare [getmmsize "" vsize ""] "182.00"]} {
		$win configure -text Ƚ
	}
	if {![string compare [getmmsize "" hsize ""] "128.00"] && ![string compare [getmmsize "" vsize ""] "188.00"]} {
		$win configure -text ϻȽ
	}
}

# /϶η׻
proc allcalcmargin {} {
	global sname stylecount

	for {set i 0} {$i < $stylecount} {incr i} {
		if {[winfo exists .$sname($i).honmon]} {
			calckoguchimargin $sname($i)
			calcbottommargin $sname($i)
		}
	}
}

# ʸν/ڤ괹
proc flashhonmonteisai {} {
	global sname stylecount

	for {set i 0} {$i < $stylecount} {incr i} {
		if {[winfo exists .$sname($i).honmon]} {
			calckoguchimargin $sname($i)
			calcbottommargin $sname($i)
			honmonteisai $sname($i)
		}
	}
	update
}

# URLΥƥȿѹ
proc urltextcolor {dummy} {
	global urltextred urltextgreen urltextblue

	.common.lbtextred configure -text [format " %.0f%%" [expr $urltextred * 100]]
	.common.lbtextgreen configure -text [format " %.0f%%" [expr $urltextgreen * 100]]
	.common.lbtextblue configure -text [format " %.0f%%" [expr $urltextblue * 100]]

	.common.urltext configure -foreground [format "#%02x%02x%02x" [format "%.0f" [expr $urltextred * 255]] [format "%.0f" [expr $urltextgreen * 255]] [format "%.0f" [expr $urltextblue * 255]]]
}

# URLѹ
proc urllinecolor {dummy} {
	global urllinered urllinegreen urllineblue

	.common.lblinered configure -text [format " %.0f%%" [expr $urllinered * 100]]
	.common.lblinegreen configure -text [format " %.0f%%" [expr $urllinegreen * 100]]
	.common.lblineblue configure -text [format " %.0f%%" [expr $urllineblue * 100]]

	.common.image itemconfigure 7 -outline [format "#%02x%02x%02x" [format "%.0f" [expr $urllinered * 255]] [format "%.0f" [expr $urllinegreen * 255]] [format "%.0f" [expr $urllineblue * 255]]]
}

# URLѹˤκ۲̤ڤؤ
proc seturllinestyle {} {
	global urllinestyle

	if {[string compare $urllinestyle ""]} {
		place .common.lb14 -x 50 -y 430
		place .common.dotlength -x 140 -y 430
		place .common.lb14a -x 210 -y 430

		place .common.lb15 -x 50 -y 460
		place .common.dotsep -x 140 -y 460
		place .common.lb15a -x 210 -y 460
	} else {
		place .common.lb14 -x 1000 -y 1000
		place .common.dotlength -x 1000 -y 1000
		place .common.lb14a -x 1000 -y 1000

		place .common.lb15 -x 1000 -y 1000
		place .common.dotsep -x 1000 -y 1000
		place .common.lb15a -x 1000 -y 1000
	}
}

# Խ̤Ǥαܥ˥塼ɽ
proc rightbuttonmenu {win} {
	tk_popup .${win}-l0.m1 [winfo pointerx .] [winfo pointery .]
}

# /Υ֥Խ̺
proc makepagestyle {name} {
	global schanged stype
	global scount scurlevel
	global lhpos lhhoffset lhvoffset lhsoroe lhjfont lhjhenkei lhjsize lhefont lhesize lhebase lhjiokuri lhstr lnpos lnhoffset lnvoffset lnsoroe lnjfont lnjhenkei lnjsize lnefont lnesize lnebase lnjiokuri lnstr
	global rhpos rhhoffset rhvoffset rhsoroe rhjfont rhjhenkei rhjsize rhefont rhesize rhebase rhjiokuri rhstr rnpos rnhoffset rnvoffset rnsoroe rnjfont rnjhenkei rnjsize rnefont rnesize rnebase rnjiokuri rnstr
	global lhhoffsetunit lhvoffsetunit lhjsizeunit lhesizeunit lhebaseunit lhjiokuriunit lnhoffsetunit lnvoffsetunit lnjsizeunit lnesizeunit lnebaseunit lnjiokuriunit
	global rhhoffsetunit rhvoffsetunit rhjsizeunit rhesizeunit rhebaseunit rhjiokuriunit rnhoffsetunit rnvoffsetunit rnjsizeunit rnesizeunit rnebaseunit rnjiokuriunit

	set win ${name}.pagestyle
	frame .$win

	frame .${win}-f0
	button .${win}-delete -text "" -command "
		delpagestylelist $name
	"
	button .${win}-add -text "ɲ" -command "
		addpagestylelist $name
	"
	button .${win}-copy -text "ʣ" -command "
		copypagestylelist $name
	"

	if {$stype($name)} {
		button .${win}-excopy -width 7 -text "ʸʣ" -command "
			excopypagestylelist $name
		"
	} else {
		button .${win}-excopy -width 7 -text "ʣ" -command "
			excopypagestylelist $name
		"
	}

	label .${win}-rule0 -text "--------------------------------------------------------------------------------------------------------------------------------"
	label .${win}-lb1 -text "ֹ ʸ                     Υ֥ ʸ                     Υ֥"
	listbox .${win}-l0 -width 88 -height 5 -yscrollcommand ".${win}-s1 set" -selectmode extended
	scrollbar .${win}-s1 -orient vertical -command ".${win}-l0 yview"
	flashpagestyle $name

	place .${win}-lb1 -x 10 -y 40 -in .$win
	grid .${win}-l0 -in .${win}-f0 -row 0 -column 0 -sticky nswe
	grid .${win}-s1 -in .${win}-f0 -row 0 -column 1 -sticky ns
	place .${win}-f0 -x 10 -y 60 -in .$win
	place .${win}-add -x 660 -y 60 -in .$win
	place .${win}-copy -x 660 -y 90 -in .$win
	place .${win}-delete -x 660 -y 120 -in .$win
	place .${win}-excopy -x 720 -y 90 -in .$win
	place .${win}-rule0 -x 0 -y 150 -in .$win

	bind .${win}-l0 <ButtonRelease> "
		editpagestyle $name -1
		flashpagestyle $name
		focus .${name}.pagestyle-l0
	"

	menu .${win}-l0.m1 -tearoff false
	.${win}-l0.m1 add command -label "ɲ" -command "
		addpagestylelist $name
	"

	.${win}-l0.m1 add command -label "ʣ" -command "
		copypagestylelist $name
	"

	.${win}-l0.m1 add command -label "" -command "
		delpagestylelist $name
	"

	bind .${win}-l0 <Control-Key-a> "
		.${win}-l0 selection set 0 end
	"

	bind .${win}-l0 <Button-3> "
		rightbuttonmenu $win
	"

	set scurlevel($name) -1
	if {$scount($name) > 0} {
		editpagestyle $name 0
	}
}

# ڡ
proc delpagestylelist {name} {
	global schanged active
	global scount scurlevel

	if {!$active} {
		set active 1
		if {[llength [.${name}.pagestyle-l0 curselection]]} {
			if {$scount($name) > [llength [.${name}.pagestyle-l0 curselection]]} {
				for {set i 0} {$i < $scount($name)} {incr i} {
					destroypagestyle $name $i
				}
				set delcount 0
				foreach i [.${name}.pagestyle-l0 curselection] {
					for {set j [expr $i - $delcount]} {$j < [expr $scount($name) - 1]} {incr j} {
						copypagestyle ${name}-$j ${name}-[expr $j+1]
					}
					incr scount($name) -1
					incr delcount
				}
				for {set i 0} {$i < $delcount} {incr i} {
					delpagestyle $name [expr $scount($name)+$i]
				}
				set scurlevel($name) -1
				flashpagestyle $name
				editpagestyle $name 0
			} else {
				errormsg "/Υ֥ϤǤޤ"
			}
			set schanged($name) 1
		}
		set active 0
	}
}

# ڡʣ
proc copypagestylelist {name} {
	global schanged active
	global scount

	if {!$active} {
		set active 1
		if {[string length [.${name}.pagestyle-l0 curselection]]} {
			set a [.${name}.pagestyle-l0 curselection]
			foreach n $a {
				copypagestyle ${name}-$scount($name) ${name}-$n
				incr scount($name)
			}
			flashpagestyle $name
			.${name}.pagestyle-l0 selection clear 0 end
			.${name}.pagestyle-l0 selection set end end
			.${name}.pagestyle-l0 see end
			editpagestyle $name [expr $scount($name)-1]
			set schanged($name) 1
		}
		set active 0
	}
}

# ڡɲ
proc addpagestylelist {name} {
	global schanged active
	global scount

	if {!$active} {
		set active 1
		makenewpagestyle $name $scount($name)
		incr scount($name)
		flashpagestyle $name
		.${name}.pagestyle-l0 selection clear 0 end
		.${name}.pagestyle-l0 selection set end end
		.${name}.pagestyle-l0 see end
		editpagestyle $name [expr $scount($name)-1]
		set schanged($name) 1
		set active 0
	}
}

# ʸ<->ڡʣ
proc excopypagestylelist {name} {
	global stype sname
	global schanged active
	global scount

	if {!$active} {
		set active 1
		if {[string length [.${name}.pagestyle-l0 curselection]]} {
			if {$stype($name)} {
				set num 0
			} else {
				set num 1
			}
			set a [.${name}.pagestyle-l0 curselection]
			foreach n $a {
				copypagestyle $sname($num)-$scount($sname($num)) ${name}-$n
				incr scount($sname($num))
			}

			if {$stype($name)} {
				editstyle $sname($num)
				pagestyle $sname($num)
			} else {
				editidxstyle $sname($num)
				idxpagestyle $sname($num)
			}
			flashpagestyle $sname($num)
			.$sname($num).pagestyle-l0 selection clear 0 end
			.$sname($num).pagestyle-l0 selection set end end
			.$sname($num).pagestyle-l0 see end
			editpagestyle $sname($num) [expr $scount($sname($num))-1]

			set schanged($sname($num)) 1
		}
		set active 0
	}
}

# ڡꥹȺ
proc flashpagestyle {name} {
	global scount
	global lhstr lnstr rhstr rnstr

	set a [.${name}.pagestyle-l0 curselection]
	set b [.${name}.pagestyle-l0 yview]
	.${name}.pagestyle-l0 delete 0 end
	for {set i 0} {$i < $scount($name)} {incr i} {
		set buff [format "%2d   %-30s %-10s %-30s %-10s" [expr $i+1] \"$lhstr(${name}-$i)\" \"$lnstr(${name}-$i)\" \"$rhstr(${name}-$i)\" \"$rnstr(${name}-$i)\"]
		.${name}.pagestyle-l0 insert end $buff
	}
    if {[llength $a]} {
        .${name}.pagestyle-l0 selection clear 0 end
        foreach i $a {
            .${name}.pagestyle-l0 selection set $i $i
        }
        .${name}.pagestyle-l0 yview moveto [lindex $b 0]
    }
	update
}

# ڡԽ
proc editpagestyle {name level} {
	global scount scurlevel

	if {$level == -1} {
		if {[llength [.${name}.pagestyle-l0 curselection]]} {
			set level [.${name}.pagestyle-l0 index anchor]
		} else {
			return -1
		}
	}

	if {$scurlevel($name) >= 0} {
		destroypagestyle $name $scurlevel($name)
	}
	makeeditpagestyle $name $level
	flashpagestyleelem ${name}.pagestyle-$level lh $name $level
	set scurlevel($name) $level
	place .${name}.pagestyle-$level -x 0 -y 160 -in .${name}.pagestyle
}

# ƥڡԽ̺
proc makeeditpagestyle {name level} {
	global scount
	global schanged
	global lnsymbol

	set win ${name}.pagestyle-$level
	if {[winfo exists .$win]} {
		return 0
	}
	frame .$win

	label .${win}-lb0 -text "/Υ֥ [expr $level+1]"

	makeeditpageteisai ڡ $win lh $name $level
	makeeditpageteisai ڡΥ֥ $win ln $name $level
	makeeditpageteisai ڡ $win rh $name $level
	makeeditpageteisai ڡΥ֥ $win rn $name $level

	button .${win}-lhb -width 16 -text "ڡ" -command "
		place .${win}-lh -x 200 -y 20 -in .$win
		place .${win}-ln -x 1000 -y 1000 -in .$win
		place .${win}-rh -x 1000 -y 1000 -in .$win
		place .${win}-rn -x 1000 -y 1000 -in .$win
	"
	button .${win}-lnb -width 16 -text "ڡΥ֥" -command "
		place .${win}-lh -x 1000 -y 1000 -in .$win
		place .${win}-ln -x 200 -y 20 -in .$win
		place .${win}-rh -x 1000 -y 1000 -in .$win
		place .${win}-rn -x 1000 -y 1000 -in .$win
	"
	button .${win}-rhb -width 16 -text "ڡ" -command "
		place .${win}-lh -x 1000 -y 1000 -in .$win
		place .${win}-ln -x 1000 -y 1000 -in .$win
		place .${win}-rh -x 200 -y 20 -in .$win
		place .${win}-rn -x 1000 -y 1000 -in .$win
	"
	button .${win}-rnb -width 16 -text "ڡΥ֥" -command "
		place .${win}-lh -x 1000 -y 1000 -in .$win
		place .${win}-ln -x 1000 -y 1000 -in .$win
		place .${win}-rh -x 1000 -y 1000 -in .$win
		place .${win}-rn -x 200 -y 20 -in .$win
	"

	label .${win}-lb1 -text "Υֹ֥ɽ"
	menubutton .${win}-nsymbol -relief raised -width 16 -menu .${win}-nsymbol.m0
	menu .${win}-nsymbol.m0 -tearoff false
	.${win}-nsymbol.m0 add command -label  -command "
		set lnsymbol(${name}-$level) arabic
		.${win}-nsymbol configure -text 
		set schanged($name) 1
	"
	.${win}-nsymbol.m0 add command -label ʸ޿ -command "
		set lnsymbol(${name}-$level) Roman
		.${win}-nsymbol configure -text ʸ޿
		set schanged($name) 1
	"
	.${win}-nsymbol.m0 add command -label ʸ޿ -command "
		set lnsymbol(${name}-$level) roman
		.${win}-nsymbol configure -text ʸ޿
		set schanged($name) 1
	"
	.${win}-nsymbol.m0 add command -label ʸѻ -command "
		set lnsymbol(${name}-$level) Alph
		.${win}-nsymbol configure -text ʸѻ
		set schanged($name) 1
	"
	.${win}-nsymbol.m0 add command -label ʸѻ -command "
		set lnsymbol(${name}-$level) alph
		.${win}-nsymbol configure -text ʸѻ
		set schanged($name) 1
	"
	if {[string match "roman" $lnsymbol(${name}-$level)]} {
		.${win}-nsymbol configure -text "ʸ޿"
	} else {
		if {[string match "Roman" $lnsymbol(${name}-$level)]} {
			.${win}-nsymbol configure -text "ʸ޿"
		} else {
			if {[string match "alph" $lnsymbol(${name}-$level)]} {
				.${win}-nsymbol configure -text "ʸѻ"
			} else {
				if {[string match "Alph" $lnsymbol(${name}-$level)]} {
						.${win}-nsymbol configure -text "ʸѻ"
				} else {
					.${win}-nsymbol configure -text ""
				}
			}
		}
	}


	place .${win}-lb0 -x 10 -y 10 -in .$win

	place .${win}-lhb -x 10 -y 30 -in .$win
	place .${win}-lnb -x 10 -y 70 -in .$win
	place .${win}-rhb -x 10 -y 110 -in .$win
	place .${win}-rnb -x 10 -y 150 -in .$win

	place .${win}-lb1 -x 10 -y 220 -in .$win
	place .${win}-nsymbol -x 10 -y 240 -in .$win

	place .${win}-lh -x 200 -y 20 -in .$win
	place .${win}-ln -x 1000 -y 1000 -in .$win
	place .${win}-rh -x 1000 -y 1000 -in .$win
	place .${win}-rn -x 1000 -y 1000 -in .$win
	update
}

# ڡβʾõ
proc destroypagestyle {name level} {
	set win ${name}.pagestyle-$level

	destroy .${win}
	destroy .${win}-lb0
	destroy .${win}-lhb
	destroy .${win}-lnb
	destroy .${win}-rhb
	destroy .${win}-rnb
	destroy .${win}-lb1
	destroy .${win}-nsymbol
	destroy .${win}-lh
	destroy .${win}-ln
	destroy .${win}-rh
	destroy .${win}-rn

	set hlist {lh ln rh rn}

	foreach head $hlist {
		destroy .${win}-${head}
		destroy .${win}-${head}-lb0
		destroy .${win}-${head}-lb1
		destroy .${win}-${head}-str
		destroy .${win}-${head}-fontdef
		destroy .${win}-${head}-lb2
		destroy .${win}-${head}-pos
		destroy .${win}-${head}-pos.m0
		destroy .${win}-${head}-lb3
		destroy .${win}-${head}-soroe
		destroy .${win}-${head}-image
		destroy .${win}-${head}-hoffset
		destroy .${win}-${head}-lb1a
		destroy .${win}-${head}-voffset
		destroy .${win}-${head}-lb2a
		destroy .${win}-${head}-f0
		destroy .${win}-${head}-lb4
		destroy .${win}-${head}-lb5
		destroy .${win}-${head}-l0
		destroy .${win}-${head}-s1
		destroy .${win}-${head}-f1
		destroy .${win}-${head}-editelem
		destroy .${win}-${head}-addelem
		destroy .${win}-${head}-copyelem
		destroy .${win}-${head}-delelem
	}
}

# /Υ֥Խ̺
proc makeeditpageteisai {str win head name level} {
	global schanged
	global ${head}pos ${head}hoffset ${head}voffset ${head}soroe ${head}str

	frame .${win}-$head

	label .${win}-${head}-lb0 -text $str
	label .${win}-${head}-lb1 -text ʸ
	if {[string match "*n" $head]} {
		entry .${win}-${head}-str -width 20 -textvariable ${head}str(${name}-$level)
	} else {
		entry .${win}-${head}-str -width 30 -textvariable ${head}str(${name}-$level)
	}

	button .${win}-${head}-fontdef -text "ڡκ۽" -command "
		makefontmenu ${name}pagestyle${level}${head}font $name $head (${name}-$level) ${str}([expr $level + 1])κ۽ 0
	"

	label .${win}-${head}-lb2 -text ""
	menubutton .${win}-${head}-pos -text [set ${head}pos(${name}-$level)] -relief raised -width 5 -menu .${win}-${head}-pos.m0
	menu .${win}-${head}-pos.m0 -tearoff false
	.${win}-${head}-pos.m0 add command -label "" -command "
		set ${head}pos(${name}-$level) 
		.${win}-${head}-pos configure -text 
		pagepos ${win}-$head $head ${name}-$level $str
		pagestyleelempos $win $name $head $level
		set schanged($name) 1
	"
	.${win}-${head}-pos.m0 add command -label "" -command "
		set ${head}pos(${name}-$level) 
		.${win}-${head}-pos configure -text 
		pagepos ${win}-$head $head ${name}-$level $str
		pagestyleelempos $win $name $head $level
		set schanged($name) 1
	"
	.${win}-${head}-pos.m0 add command -label "" -command "
		set ${head}pos(${name}-$level) 
		.${win}-${head}-pos configure -text 
		pagepos ${win}-$head $head ${name}-$level $str
		pagestyleelempos $win $name $head $level
		set schanged($name) 1
	"
	.${win}-${head}-pos.m0 add command -label "" -command "
		set ${head}pos(${name}-$level) 
		.${win}-${head}-pos configure -text 
		pagepos ${win}-$head $head ${name}-$level $str
		pagestyleelempos $win $name $head $level
		set schanged($name) 1
	"

	label .${win}-${head}-lb3 -text "·"
	menubutton .${win}-${head}-soroe -text [set ${head}soroe(${name}-$level)] -relief raised -width 5 -menu .${win}-${head}-soroe.m0
	menu .${win}-${head}-soroe.m0 -tearoff false
	.${win}-${head}-soroe.m0 add command -label "" -command "
		set ${head}soroe(${name}-$level) 
		.${win}-${head}-soroe configure -text 
		pagepos ${win}-$head $head ${name}-$level $str
		set schanged($name) 1
	"
	.${win}-${head}-soroe.m0 add command -label "" -command "
		set ${head}soroe(${name}-$level) 
		.${win}-${head}-soroe configure -text 
		pagepos ${win}-$head $head ${name}-$level $str
		set schanged($name) 1
	"
	.${win}-${head}-soroe.m0 add command -label "" -command "
		set ${head}soroe(${name}-$level) 
		.${win}-${head}-soroe configure -text 
		pagepos ${win}-$head $head ${name}-$level $str
		set schanged($name) 1
	"

	frame .${win}-${head}-f0
	label .${win}-${head}-lb4 -text "${str}ν"
	label .${win}-${head}-lb5 -text "                    岼"
	listbox .${win}-${head}-l0 -width 65 -height 7 -yscrollcommand ".${win}-${head}-s1 set" -selectmode extended
	scrollbar .${win}-${head}-s1 -orient vertical -command ".${win}-${head}-l0 yview"
	frame .${win}-${head}-f1
	button .${win}-${head}-editelem -text "Խ" -command "
		editpagestyleelem $str $win $head $name $level -1
	"
	button .${win}-${head}-addelem -text "ɲ" -command "
		addpagestyleelemlist $str $win $head $name $level
	"
	button .${win}-${head}-copyelem -text "ʣ" -command "
		copypagestyleelemlist $str $win $head $name $level
	"
	button .${win}-${head}-delelem -text "Ǻ" -command "
		delpagestyleelemlist $str $win $head $name $level
	"
	menu .${win}-${head}-l0.m1 -tearoff false
	.${win}-${head}-l0.m1 add command -label "ɲ" -command "
		addpagestyleelemlist $str $win $head $name $level
	"

	.${win}-${head}-l0.m1 add command -label "ʣ" -command "
		copypagestyleelemlist $str $win $head $name $level
	"

	.${win}-${head}-l0.m1 add command -label "" -command "
		delpagestyleelemlist $str $win $head $name $level
	"

	canvas .${win}-${head}-image -width 400 -height 220

	entry .${win}-${head}-hoffset -width 8 -textvariable ${head}hoffset(${name}-$level)
	okuriunitmenu .${win}-${head}-lb1a $name ${head}hoffset (${name}-$level)

	entry .${win}-${head}-voffset -width 8 -textvariable ${head}voffset(${name}-$level)
	okuriunitmenu .${win}-${head}-lb2a $name ${head}voffset (${name}-$level)

	pagepos ${win}-$head $head ${name}-$level $str

	place .${win}-${head}-lb0 -x 10 -y 10 -in .${win}-$head
	place .${win}-${head}-lb1 -x 180 -y 10 -in .${win}-$head
	place .${win}-${head}-str -x 230 -y 10 -in .${win}-$head

	place .${win}-${head}-fontdef -x 10 -y 50 -in .${win}-$head

	place .${win}-${head}-lb2 -x 10 -y 130 -in .${win}-$head
	place .${win}-${head}-pos -x 60 -y 130 -in .${win}-$head
	place .${win}-${head}-lb3 -x 10 -y 160 -in .${win}-$head
	place .${win}-${head}-soroe -x 60 -y 160 -in .${win}-$head

	place .${win}-${head}-image -x 150 -y 30 -in .${win}-$head

	grid .${win}-${head}-lb4 -in .${win}-${head}-f0 -row 0 -column 0 -sticky nw
	grid .${win}-${head}-lb5 -in .${win}-${head}-f0 -row 1 -column 0 -sticky nw
	grid .${win}-${head}-l0 -in .${win}-${head}-f0 -row 2 -column 0 -sticky nswe
	grid .${win}-${head}-s1 -in .${win}-${head}-f0 -row 2 -column 1 -sticky ns
	place .${win}-${head}-f0 -x 10 -y 250 -in .${win}-$head

	grid .${win}-${head}-editelem -in .${win}-${head}-f1 -row 0 -column 0 -sticky we
	grid .${win}-${head}-addelem -in .${win}-${head}-f1 -row 1 -column 0 -sticky we
	grid .${win}-${head}-copyelem -in .${win}-${head}-f1 -row 2 -column 0 -sticky we
	grid .${win}-${head}-delelem -in .${win}-${head}-f1 -row 3 -column 0 -sticky we
	place .${win}-${head}-f1 -x 500 -y 290 -in .${win}-$head

	flashpagestyleelem $win $head $name $level

	bind .${win}-${head}-l0 <ButtonRelease> "
		flashpagestyleelem $win $head $name $level
		focus .${win}-${head}-l0
	"
	bind .${win}-${head}-l0 <Double-ButtonRelease> "
		editpagestyleelem $str $win $head $name $level -1
	"
	bind .${win}-${head}-l0 <Control-Key-a> "
		.${win}-${head}-l0 selection set 0 end
	"
	bind .${win}-${head}-l0 <Button-3> "
		rightbuttonmenu ${win}-${head}
	"

	bind .${win}-${head}-str <KeyRelease> "
		set schanged($name) 1
	"
	bind .${win}-${head}-hoffset <KeyRelease> "
		set schanged($name) 1
	"
	bind .${win}-${head}-voffset <KeyRelease> "
		set schanged($name) 1
	"
}

proc pagestyleelempos {win name head level} {
	global ${head}elemcount

	for {set i 0} {$i < [set ${head}elemcount(${name}-$level)]} {incr i} {
		if {[winfo exists .${win}-${head}-elem-$i]} {
			pagestyleelemteisai ${win}-${head}-elem-$i $head $name $level $i
		}
	}
}

# /Υ֥뽤ǥꥹɽ
proc flashpagestyleelem {win head name level} {
	global ${head}elemcount ${head}elemhoffset ${head}elemhoffsetunit ${head}elemvoffset ${head}elemvoffsetunit ${head}elem
	global ${head}epsfile

	set a [.${win}-${head}-l0 curselection]
	set b [.${win}-${head}-l0 yview]
	.${win}-${head}-l0 delete 0 end
	for {set i 0} {$i < [set ${head}elemcount(${name}-$level)]} {incr i} {
		if {![string compare [set ${head}elem(${name}-${level}-$i)] ""]} {
			set buff [format "%2s  %-14s   %5s%-2s     %5s%-2s" [expr $i+1] "" [set ${head}elemhoffset(${name}-${level}-$i)] [set ${head}elemhoffsetunit(${name}-${level}-$i)] [set ${head}elemvoffset(${name}-${level}-$i)] [set ${head}elemhoffsetunit(${name}-${level}-$i)]]
		} else {
			set buff [format "%2s  %-14s   %5s%-2s     %5s%-2s" [expr $i+1] [set ${head}epsfile(${name}-${level}-$i)] [set ${head}elemhoffset(${name}-${level}-$i)] [set ${head}elemhoffsetunit(${name}-${level}-$i)] [set ${head}elemvoffset(${name}-${level}-$i)] [set ${head}elemvoffsetunit(${name}-${level}-$i)]]
		}
		.${win}-${head}-l0 insert end $buff
	}
	if {[llength $a]} {
		.${win}-${head}-l0 selection clear 0 end
		foreach i $a {
			.${win}-${head}-l0 selection set $i $i
		}
		.${win}-${head}-l0 yview moveto [lindex $b 0]
	}
	update
}

# /Υ֥뽤Խ
proc editpagestyleelem {str mwin head name level num} {
	global stedfile
	global schanged
	global ${head}elemcount ${head}elemhoffset ${head}elemhoffsetunit ${head}elemvoffset ${head}elemvoffsetunit ${head}elem
	global ${head}epsfile ${head}epsscale ${head}epsxsize ${head}epsxsizeunit ${head}epsysize ${head}epsysizeunit
	global ${head}linewidth ${head}linewidthunit ${head}lineheight ${head}lineheightunit ${head}linecyan ${head}linemagenta ${head}lineyellow ${head}lineblack
	global ${head}epssize
	global ${head}elemlineid

	if {$num == -1} {
		if {[llength [.${mwin}-${head}-l0 curselection]]} {
			set num [.${mwin}-${head}-l0 curselection]
		} else {
			return -1
		}
	}
	set win ${mwin}-${head}-elem-$num

	if {[winfo exists .$win]} {
		raise .$win
	} else {
		toplevel .$win -width 700 -height 400
		wm resizable .$win 0 0
		wm title .$win "$stedfile($name) ${str}([expr $level + 1])ν([expr $num + 1])"

		label .${win}.lb0 -text "${str}([expr $level + 1])ν([expr $num + 1])"

		button .${win}.close -text "Ĥ" -command "
			destroy .$win
			flashpagestyleelem $mwin $head $name $level
		"

		radiobutton .${win}.rb0 -text "" -var ${head}elem(${name}-${level}-$num) -value "" -command "
			pagestyleelemteisai $win $head $name $level $num
			set schanged($name) 1
		"
		radiobutton .${win}.rb1 -text "EPSե" -var ${head}elem(${name}-${level}-$num) -value "EPS" -command "
			pagestyleelemteisai $win $head $name $level $num
			set schanged($name) 1
		"

		label .${win}.lb1 -text "EPSե"
		entry .${win}.epsfile -width 14 -textvariable ${head}epsfile(${name}-${level}-$num)
		button .${win}.openeps -text  -pady 2 -command "
			selectelemeps $win $head $name $level $num
		"

		if {[set ${head}epsscale(${name}-${level}-$num)]} {
			set ${head}epssize(${name}-${level}-$num) scale
		} else {
			set ${head}epssize(${name}-${level}-$num) size
		}
		label .${win}.lb2 -text "EPS"
		radiobutton .${win}.rb2 -text "߹⤵ǻ" -var ${head}epssize(${name}-${level}-$num) -value size -command "
			set schanged($name) 1
		"
		radiobutton .${win}.rb3 -text "Ψǻ" -var ${head}epssize(${name}-${level}-$num) -value scale -command "
			set schanged($name) 1
		"

		label .${win}.lb3 -text ""
		entry .${win}.epsxsize -width 8 -textvariable ${head}epsxsize(${name}-${level}-$num)
		okuriunitmenu .${win}.lb3a $name ${head}epsxsize (${name}-${level}-$num)
		label .${win}.lb4 -text "⤵"
		entry .${win}.epsysize -width 8 -textvariable ${head}epsysize(${name}-${level}-$num)
		okuriunitmenu .${win}.lb4a $name ${head}epsysize (${name}-${level}-$num)
		entry .${win}.epsscale -width 8 -textvariable ${head}epsscale(${name}-${level}-$num)
		label .${win}.lb5a -text "%"

		label .${win}.lb6 -text ""
		scale .${win}.cyan -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}linecyan(${name}-${level}-$num) -label "" -showvalue 0 -command "pagestyleelemcolor $win $head $name $level $num"
		scale .${win}.magenta -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}linemagenta(${name}-${level}-$num) -label "ޥ" -showvalue 0 -command "pagestyleelemcolor $win $head $name $level $num"
		scale .${win}.yellow -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}lineyellow(${name}-${level}-$num) -label "" -showvalue 0 -command "pagestyleelemcolor $win $head $name $level $num"
		scale .${win}.black -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}lineblack(${name}-${level}-$num) -label "֥å" -showvalue 0 -command "pagestyleelemcolor $win $head $name $level $num"
		label .${win}.lbcyan -text [set ${head}linecyan(${name}-${level}-$num)]
		label .${win}.lbmagenta -text [set ${head}linemagenta(${name}-${level}-$num)]
		label .${win}.lbyellow -text [set ${head}lineyellow(${name}-${level}-$num)]
		label .${win}.lbblack -text [set ${head}lineblack(${name}-${level}-$num)]

		canvas .${win}.image1 -width 500 -height 500
		.${win}.image1 create rectangle 200 160 300 180 -fill black

		canvas .${win}.image2 -width 500 -height 500

		entry .${win}.hoffset -width 8 -textvariable ${head}elemhoffset(${name}-${level}-$num)
		okuriunitmenu .${win}.lb11a $name ${head}elemhoffset (${name}-${level}-$num)
		entry .${win}.voffset -width 8 -textvariable ${head}elemvoffset(${name}-${level}-$num)
		okuriunitmenu .${win}.lb12a $name ${head}elemvoffset (${name}-${level}-$num)
		entry .${win}.linewidth -width 8 -textvariable ${head}linewidth(${name}-${level}-$num)
		okuriunitmenu .${win}.lb13a $name ${head}linewidth (${name}-${level}-$num)
		entry .${win}.lineheight -width 8 -textvariable ${head}lineheight(${name}-${level}-$num)
		okuriunitmenu .${win}.lb14a $name ${head}lineheight (${name}-${level}-$num)

		bind .${win}.epsfile <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}.epsxsize <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}.epsysize <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}.epsscale <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}.hoffset <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}.voffset <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}.linewidth <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}.lineheight <KeyRelease> "
			set schanged($name) 1
		"

		bind .${win}.cyan <ButtonRelease> "
			set schanged($name) 1
		"
		bind .${win}.magenta <ButtonRelease> "
			set schanged($name) 1
		"
		bind .${win}.yellow <ButtonRelease> "
			set schanged($name) 1
		"
		bind .${win}.black <ButtonRelease> "
			set schanged($name) 1
		"

		place .${win}.lb0 -x 10 -y 10
		place .${win}.close -x 600 -y 0
		place .${win}.rb0 -x 10 -y 50
		place .${win}.rb1 -x 10 -y 70

		pagestyleelemteisai $win $head $name $level $num
	}
}

# /Υ֥뽤ɲ
proc addpagestyleelemlist {str win head name level} {
	global schanged active
	global ${head}elemcount

	if {!$active} {
		set active 1
		set num [set ${head}elemcount(${name}-$level)]

		makenewpagestyleelem $head $name $level $num

		incr ${head}elemcount(${name}-$level)

		flashpagestyleelem $win $head $name $level

		set schanged($name) 1
		set active 0

		editpagestyleelem $str $win $head $name $level $num
	}
}

# /Υ֥뽤ʣ
proc copypagestyleelemlist {str win head name level} {
	global schanged active
	global ${head}elemcount

	if {!$active} {
		set active 1
		if {[llength [.${win}-${head}-l0 curselection]]} {
			set a [.${win}-${head}-l0 curselection]
			foreach n $a {
				copypagestyleelem $head ${name}-${level}-[set ${head}elemcount(${name}-$level)] ${name}-${level}-$n
				incr ${head}elemcount(${name}-$level)
			}
			flashpagestyleelem $win $head $name $level
			.${win}-${head}-l0 selection clear 0 end
			.${win}-${head}-l0 see end
			set schanged($name) 1
		}
		set active 0
	}
}

# /Υ֥뽤
proc delpagestyleelemlist {str win head name level} {
	global schanged active
	global ${head}elemcount

	if {!$active} {
		set active 1
		if {[llength [.${win}-${head}-l0 curselection]]} {
			for {set i 0} {$i < [set ${head}elemcount(${name}-$level)]} {incr i} {
				destroy .${win}-${head}-elem-$i
			}
			set delcount 0
			foreach i [.${win}-${head}-l0 curselection] {
				for {set j [expr $i - $delcount]} {$j < [expr [set ${head}elemcount(${name}-$level)]-1]} {incr j} {
					copypagestyleelem $head ${name}-${level}-$j ${name}-${level}-[expr $j+1]
				}
				incr ${head}elemcount(${name}-$level) -1
				incr delcount
			}
			for {set i 0} {$i < $delcount} {incr i} {
				delpagestyleelem $head $name $level [expr [set ${head}elemcount(${name}-$level)]+$i]
			}

			flashpagestyleelem $win $head $name $level

			set schanged($name) 1
		}
		set active 0
	}
}

# /Υ֥뽤κԽ
proc pagestyleelemteisai {win head name level num} {
	global ${head}elem

	if {![string compare "" [set ${head}elem(${name}-${level}-$num)]]} {
		pagestyleelemteisai1 $win $head $name $level $num
	} else {
		pagestyleelemteisai2 $win $head $name $level $num
	}
}

# /Υ֥뽤κԽʷ
proc pagestyleelemteisai1 {win head name level num} {
	global ${head}pos

	place .${win}.lb1 -x 1000 -y 1000 -in .$win
	place .${win}.epsfile -x 1000 -y 1000 -in .$win
	place .${win}.openeps -x 1000 -y 1000 -in .$win
	place .${win}.lb2 -x 1000 -y 1000 -in .$win
	place .${win}.rb2 -x 1000 -y 1000 -in .$win
	place .${win}.lb3 -x 1000 -y 1000 -in .$win
	place .${win}.epsxsize -x 1000 -y 1000 -in .$win
	place .${win}.lb3a -x 1000 -y 1000 -in .$win
	place .${win}.lb4 -x 1000 -y 1000 -in .$win
	place .${win}.epsysize -x 1000 -y 1000 -in .$win
	place .${win}.lb4a -x 1000 -y 1000 -in .$win
	place .${win}.rb3 -x 1000 -y 1000 -in .$win
	place .${win}.epsscale -x 1000 -y 1000 -in .$win
	place .${win}.lb5a -x 1000 -y 1000 -in .$win

	place .${win}.lb6 -x 10 -y 100 -in .$win
	place .${win}.cyan -x 40 -y 120 -in .$win
	place .${win}.magenta -x 40 -y 160 -in .$win
	place .${win}.yellow -x 40 -y 200 -in .$win
	place .${win}.black -x 40 -y 240 -in .$win
	place .${win}.lbcyan -x 140 -y 140 -in .$win
	place .${win}.lbmagenta -x 140 -y 180 -in .$win
	place .${win}.lbyellow -x 140 -y 220 -in .$win
	place .${win}.lbblack -x 140 -y 260 -in .$win

	place .${win}.image1 -x 220 -y 30 -in .$win
	place .${win}.image2 -x 1000 -y 1000 -in .$win

	set pos [set ${head}pos(${name}-$level)]

	set id [.${win}.image1 find all]
	foreach i $id {
		if {$i != 1} {
			.${win}.image1 delete $i
		}
	}

	.${win}.image1 create rectangle 100 20 400 320 -fill white -outline white
	.${win}.image1 raise 1

	switch $pos {
		"" {
			.${win}.image1 create line 100 20 400 20
			.${win}.image1 create line 100 20 100 320

			.${win}.image1 create line 100 170 200 170 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 80 190 -window .${win}.hoffset
			.${win}.image1 create window 120 190 -window .${win}.lb11a

			.${win}.image1 create line 190 20 190 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 230 70 -window .${win}.voffset
			.${win}.image1 create window 270 70 -window .${win}.lb12a

			.${win}.image1 create line 200 190 300 190 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 230 210 -window .${win}.linewidth
			.${win}.image1 create window 270 210 -window .${win}.lb13a

			.${win}.image1 create line 310 160 310 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 350 170 -window .${win}.lineheight
			.${win}.image1 create window 390 170 -window .${win}.lb14a
		}
		"" {
			.${win}.image1 create line 400 20 100 20
			.${win}.image1 create line 400 20 400 320

			.${win}.image1 create line 300 170 400 170 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 400 190 -window .${win}.hoffset
			.${win}.image1 create window 440 190 -window .${win}.lb11a

			.${win}.image1 create line 310 20 310 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 240 70 -window .${win}.voffset
			.${win}.image1 create window 280 70 -window .${win}.lb12a

			.${win}.image1 create line 200 190 300 190 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 230 210 -window .${win}.linewidth
			.${win}.image1 create window 270 210 -window .${win}.lb13a

			.${win}.image1 create line 190 160 190 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 130 170 -window .${win}.lineheight
			.${win}.image1 create window 170 170 -window .${win}.lb14a
		}
		"" {
			.${win}.image1 create line 100 320 400 320
			.${win}.image1 create line 100 320 100 20

			.${win}.image1 create line 100 170 200 170 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 80 150 -window .${win}.hoffset
			.${win}.image1 create window 120 150 -window .${win}.lb11a

			.${win}.image1 create line 210 320 210 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 250 240 -window .${win}.voffset
			.${win}.image1 create window 290 240 -window .${win}.lb12a

			.${win}.image1 create line 200 150 300 150 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 230 130 -window .${win}.linewidth
			.${win}.image1 create window 270 130 -window .${win}.lb13a

			.${win}.image1 create line 310 160 310 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 350 170 -window .${win}.lineheight
			.${win}.image1 create window 390 170 -window .${win}.lb14a
		}
		"" {
			.${win}.image1 create line 400 320 100 320
			.${win}.image1 create line 400 320 400 20

			.${win}.image1 create line 300 170 400 170 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 400 150 -window .${win}.hoffset
			.${win}.image1 create window 440 150 -window .${win}.lb11a

			.${win}.image1 create line 210 320 210 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 250 240 -window .${win}.voffset
			.${win}.image1 create window 290 240 -window .${win}.lb12a

			.${win}.image1 create line 200 150 300 150 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 230 130 -window .${win}.linewidth
			.${win}.image1 create window 270 130 -window .${win}.lb13a

			.${win}.image1 create line 190 160 190 180 -arrow both -arrowshape {5 8 3}
			.${win}.image1 create window 130 170 -window .${win}.lineheight
			.${win}.image1 create window 170 170 -window .${win}.lb14a
		}
	}
}

# /Υ֥뽤κԽEPS
proc pagestyleelemteisai2 {win head name level num} {
	global bindir rootwd rootht preformat predir epswidth epsheight
	global ${head}pos ${head}epsfile

	place .${win}.lb1 -x 10 -y 100 -in .$win
	place .${win}.epsfile -x 40 -y 120 -in .$win
	place .${win}.openeps -x 150 -y 120 -in .$win
	place .${win}.lb2 -x 10 -y 150 -in .$win
	place .${win}.rb2 -x 10 -y 170 -in .$win
	place .${win}.lb3 -x 40 -y 190 -in .$win
	place .${win}.epsxsize -x 100 -y 190 -in .$win
	place .${win}.lb3a -x 170 -y 190 -in .$win
	place .${win}.lb4 -x 40 -y 210 -in .$win
	place .${win}.epsysize -x 100 -y 210 -in .$win
	place .${win}.lb4a -x 170 -y 210 -in .$win
	place .${win}.rb3 -x 10 -y 230 -in .$win
	place .${win}.epsscale -x 100 -y 250 -in .$win
	place .${win}.lb5a -x 170 -y 250 -in .$win

	place .${win}.lb6 -x 1000 -y 1000 -in .$win
	place .${win}.cyan -x 1000 -y 1000 -in .$win
	place .${win}.magenta -x 1000 -y 1000 -in .$win
	place .${win}.yellow -x 1000 -y 1000 -in .$win
	place .${win}.black -x 1000 -y 1000 -in .$win
	place .${win}.lbcyan -x 1000 -y 1000 -in .$win
	place .${win}.lbmagenta -x 1000 -y 1000 -in .$win
	place .${win}.lbyellow -x 1000 -y 1000 -in .$win
	place .${win}.lbblack -x 1000 -y 1000 -in .$win

	place .${win}.image1 -x 1000 -y 1000 -in .$win
	place .${win}.image2 -x 220 -y 30 -in .$win

	set pos [set ${head}pos(${name}-$level)]
	clearcanvas ${win}.image2

	.${win}.image2 create rectangle 100 20 400 320 -fill white -outline white

	set epspreview 0
	if {[string compare [set ${head}epsfile(${name}-${level}-$num)] ""] && [file exists [set ${head}epsfile(${name}-${level}-$num)]]} {
		set epspre 1
		if {[file exists $predir]} {
			if {![file isdirectory $predir]} {
				errormsg "ץӥ塼Ǥޤ"
				set epspre 0
			}
		} else {
			exec mkdir $predir
		}

		if {$epspre} {
			exec mkdir -p $predir/[file dirname [set ${head}epsfile(${name}-${level}-$num)]]
			if {[file exists $predir/[set ${head}epsfile(${name}-${level}-$num)].$preformat]} {
				if {[file mtime [set ${head}epsfile(${name}-${level}-$num)]] > [file mtime $predir/[set ${head}epsfile(${name}-${level}-$num)].$preformat]} {
					toplevel .makepreview
					wm title .makepreview "EPSץӥ塼"
					wm geometry .makepreview +[expr $rootwd / 2 - 100]+[expr $rootht / 2 - 50]
					label .makepreview.lb0 -text "ץӥ塼"
					pack .makepreview.lb0 -padx 50 -pady 50
					wm resizable .makepreview 0 0
					update

					catch {exec $bindir/eps2$preformat [set ${head}epsfile(${name}-${level}-$num)] $predir/[set ${head}epsfile(${name}-${level}-$num)].$preformat} tmp

					destroy .makepreview
					update
				}
			} else {
				toplevel .makepreview
				wm title .makepreview "EPSץӥ塼"
				wm geometry .makepreview +[expr $rootwd / 2 - 100]+[expr $rootht /2 - 50]
				label .makepreview.lb0 -text "ץӥ塼"
				pack .makepreview.lb0 -padx 50 -pady 50
				wm resizable .makepreview 0 0
				update

				catch {exec $bindir/eps2$preformat [set ${head}epsfile(${name}-${level}-$num)] $predir/[set ${head}epsfile(${name}-${level}-$num)].$preformat} tmp

				destroy .makepreview
				update
			}
			if {[file exists $predir/[set ${head}epsfile(${name}-${level}-$num)].$preformat]} {
				set fd [open $predir/[set ${head}epsfile(${name}-${level}-$num)].$preformat "r"]

				read $fd 1
				if {[eof $fd]} {
					close $fd
					errormsg "ץӥ塼Ǥޤ\nEPSե뤬ʤǽޤ"
				} else {
					gets $fd tmp
					gets $fd tmp
					gets $fd tmp
					set epswidth [lindex $tmp 0]
					set epsheight [lindex $tmp 1]
					close $fd
					image create photo $win-preview -file $predir/[set ${head}epsfile(${name}-${level}-$num)].$preformat
					set epspreview 1
				}
			} else {
				errormsg "ץӥ塼Ǥޤ\nEPSե뤬ʤǽޤ"
			}
		}
	}
	update

	switch $pos {
		"" {
			.${win}.image2 create line 100 20 400 20
			.${win}.image2 create line 100 20 100 320

			.${win}.image2 create line 100 250 150 250 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 80 270 -window .${win}.hoffset
			.${win}.image2 create window 120 270 -window .${win}.lb11a

			.${win}.image2 create line 140 20 140 270 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 180 50 -window .${win}.voffset
			.${win}.image2 create window 220 50 -window .${win}.lb12a
			if {$epspreview} {
				set img [.${win}.image2 create image 150 270 -anchor sw -image $win-preview]
				.${win}.image2 bind $img <Double-ButtonRelease> "
					selectelemeps $win $head $name $level $num
				"
			}
		}
		"" {
			.${win}.image2 create line 400 20 100 20
			.${win}.image2 create line 400 20 400 320

			.${win}.image2 create line 350 250 400 250 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 400 270 -window .${win}.hoffset
			.${win}.image2 create window 440 270 -window .${win}.lb11a

			.${win}.image2 create line 140 20 140 270 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 180 50 -window .${win}.voffset
			.${win}.image2 create window 220 50 -window .${win}.lb12a
			if {$epspreview} {
				set img [.${win}.image2 create image 350 270 -anchor se -image $win-preview]
				.${win}.image2 bind $img <Double-ButtonRelease> "
					selectelemeps $win $head $name $level $num
				"
			}
		}
		"" {
			.${win}.image2 create line 100 320 400 320
			.${win}.image2 create line 100 320 100 20

			.${win}.image2 create line 100 250 150 250 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 80 270 -window .${win}.hoffset
			.${win}.image2 create window 120 270 -window .${win}.lb11a

			.${win}.image2 create line 160 320 160 270 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 200 290 -window .${win}.voffset
			.${win}.image2 create window 240 290 -window .${win}.lb12a
			if {$epspreview} {
				set img [.${win}.image2 create image 150 270 -anchor sw -image $win-preview]
				.${win}.image2 bind $img <Double-ButtonRelease> "
					selectelemeps $win $head $name $level $num
				"
			}
		}
		"" {
			.${win}.image2 create line 400 320 100 320
			.${win}.image2 create line 400 320 400 20

			.${win}.image2 create line 350 250 400 250 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 400 270 -window .${win}.hoffset
			.${win}.image2 create window 440 270 -window .${win}.lb11a

			.${win}.image2 create line 160 320 160 270 -arrow both -arrowshape {5 8 3}
			.${win}.image2 create window 100 300 -window .${win}.voffset
			.${win}.image2 create window 140 300 -window .${win}.lb12a
			if {$epspreview} {
				set img [.${win}.image2 create image 350 270 -anchor sw -image $win-preview]
				.${win}.image2 bind $img <Double-ButtonRelease> "
					selectelemeps $win $head $name $level $num
				"
			}
		}
	}

}

proc selectelemeps {win head name level num} {
	global schanged
	global predir preformat epsfile ${head}epsfile

	selectfile [set ${head}epsfile(${name}-${level}-$num)]
	if {[string compare $epsfile ""]} {
		set schanged($name) 1
		set ${head}epsfile(${name}-${level}-$num) $epsfile
		pagestyleelemteisai2 $win $head $name $level $num
	}
}

# /Υ֥ѹ
proc pagepos {win head level str} {
	global scount
	global ${head}pos ${head}soroe

	set pos [set ${head}pos($level)]
	set soroe [set ${head}soroe($level)]

	clearcanvas ${win}-image

	.${win}-image create rectangle 100 20 300 220 -fill white -outline white
	.${win}-image create rectangle 140 110 260 130 -fill white -outline gray70
	.${win}-image create text 200 120 -text ${str}ʸ

	switch $pos {
		"" {
			.${win}-image create line 100 20 300 20
			.${win}-image create line 100 20 100 220

			switch $soroe {
				"" {
					.${win}-image create line 140 130 140 170 -fill gray70
					.${win}-image create line 100 150 140 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 200 130 200 170 -fill gray70
					.${win}-image create line 100 150 200 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 260 130 260 170 -fill gray70
					.${win}-image create line 100 150 260 150 -arrow both -arrowshape {5 8 3}
				}
			}
			.${win}-image create window 50 150 -window .${win}-hoffset
			.${win}-image create window 90 150 -window .${win}-lb1a

			.${win}-image create line 110 130 140 130 -fill gray70
			.${win}-image create line 120 20 120 130 -arrow both -arrowshape {5 8 3}
			.${win}-image create window 160 70 -window .${win}-voffset
			.${win}-image create window 200 70 -window .${win}-lb2a
		}
		"" {
			.${win}-image create line 300 20 100 20
			.${win}-image create line 300 20 300 220

			switch $soroe {
				"" {
					.${win}-image create line 140 130 140 170 -fill gray70
					.${win}-image create line 300 150 140 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 200 130 200 170 -fill gray70
					.${win}-image create line 300 150 200 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 260 130 260 170 -fill gray70
					.${win}-image create line 300 150 260 150 -arrow both -arrowshape {5 8 3}
				}
			}

			.${win}-image create window 340 150 -window .${win}-hoffset
			.${win}-image create window 380 150 -window .${win}-lb1a

			.${win}-image create line 290 130 260 130 -fill gray70
			.${win}-image create line 280 20 280 130 -arrow both -arrowshape {5 8 3}
			.${win}-image create window 220 70 -window .${win}-voffset
			.${win}-image create window 260 70 -window .${win}-lb2a
		}
		"" {
			.${win}-image create line 100 220 300 220
			.${win}-image create line 100 220 100 20

			switch $soroe {
				"" {
					.${win}-image create line 140 130 140 170 -fill gray70
					.${win}-image create line 100 150 140 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 200 130 200 170 -fill gray70
					.${win}-image create line 100 150 200 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 260 130 260 170 -fill gray70
					.${win}-image create line 100 150 260 150 -arrow both -arrowshape {5 8 3}
				}
			}

			.${win}-image create window 50 150 -window .${win}-hoffset
			.${win}-image create window 90 150 -window .${win}-lb1a

			.${win}-image create line 110 130 140 130 -fill gray70
			.${win}-image create line 120 220 120 130 -arrow both -arrowshape {5 8 3}
			.${win}-image create window 160 190 -window .${win}-voffset
			.${win}-image create window 200 190 -window .${win}-lb2a
		}
		"" {
			.${win}-image create line 300 220 100 220
			.${win}-image create line 300 220 300 20

			switch $soroe {
				"" {
					.${win}-image create line 140 130 140 170 -fill gray70
					.${win}-image create line 300 150 140 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 200 130 200 170 -fill gray70
					.${win}-image create line 300 150 200 150 -arrow both -arrowshape {5 8 3}
				}
				"" {
					.${win}-image create line 260 130 260 170 -fill gray70
					.${win}-image create line 300 150 260 150 -arrow both -arrowshape {5 8 3}
				}
			}
			.${win}-image create window 340 150 -window .${win}-hoffset
			.${win}-image create window 380 150 -window .${win}-lb1a

			.${win}-image create line 290 130 260 130 -fill gray70
			.${win}-image create line 280 220 280 130 -arrow both -arrowshape {5 8 3}
			.${win}-image create window 220 190 -window .${win}-voffset
			.${win}-image create window 260 190 -window .${win}-lb2a
		}
	}
}

proc pagestyleelemcolor {win head name level num dummy} {
	global ${head}linecyan ${head}linemagenta ${head}lineyellow ${head}lineblack

	.${win}.lbcyan configure -text [format " %.0f%%" [expr [set ${head}linecyan(${name}-${level}-$num)] * 100]]
	.${win}.lbmagenta configure -text [format " %.0f%%" [expr [set ${head}linemagenta(${name}-${level}-$num)] * 100]]
	.${win}.lbyellow configure -text [format " %.0f%%" [expr [set ${head}lineyellow(${name}-${level}-$num)] * 100]]
	.${win}.lbblack configure -text [format " %.0f%%" [expr [set ${head}lineblack(${name}-${level}-$num)] * 100]]

	set red [expr 1.0-[set ${head}linecyan(${name}-${level}-$num)]-[set ${head}lineblack(${name}-${level}-$num)]]
	set green [expr 1.0-[set ${head}linemagenta(${name}-${level}-$num)]-[set ${head}lineblack(${name}-${level}-$num)]]
	set blue [expr 1.0-[set ${head}lineyellow(${name}-${level}-$num)]-[set ${head}lineblack(${name}-${level}-$num)]]

	if {$red < 0} {set red 0}
	if {$green < 0} {set green 0}
	if {$blue < 0} {set blue 0}

	.${win}.image1 itemconfigure 1 -fill [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
	.${win}.image1 itemconfigure 1 -outline [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
}

proc selectmidashieps {win name level} {
	global schanged
	global epsfile iepsfile

	selectfile $iepsfile(${name}-$level)
	if {[string compare $epsfile ""]} {
		set iepsfile(${name}-$level) $epsfile
		midashiteisai2 $win $name ${name}-$level
		set schanged($name) 1
	}
}

proc setpreview {win name level} {
	global bindir rootwd rootht
	global iteisai iepsfile predir preformat
	global epswidth epsheight

	if {[string compare $iepsfile($level) ""] && [file exists $iepsfile($level)]} {
		set epspre 1
		if {[file exists $predir]} {
			if {![file isdirectory $predir]} {
				errormsg "ץӥ塼Ǥޤ"
				set epspre 0
			}
		} else {
			exec mkdir $predir
		}

		if {$epspre} {
			exec mkdir -p $predir/[file dirname $iepsfile($level)]
			if {[file exists $predir/$iepsfile($level).$preformat]} {
				if {[file mtime $iepsfile($level)] > [file mtime $predir/$iepsfile($level).$preformat]} {
					toplevel .makepreview
					wm title .makepreview "EPSץӥ塼"
					wm geometry .makepreview +[expr $rootwd / 2 - 100]+[expr $rootht / 2 - 50]
					label .makepreview.lb0 -text "ץӥ塼"
					pack .makepreview.lb0 -padx 50 -pady 50
					wm resizable .makepreview 0 0
					update

					catch {exec $bindir/eps2$preformat $iepsfile($level) $predir/$iepsfile($level).$preformat} tmp

					destroy .makepreview
					update
				}
			} else {
				toplevel .makepreview
				wm title .makepreview "EPSץӥ塼"
				wm geometry .makepreview +[expr $rootwd / 2 - 100]+[expr $rootht /2 - 50]
				label .makepreview.lb0 -text "ץӥ塼"
				pack .makepreview.lb0 -padx 50 -pady 50
				wm resizable .makepreview 0 0
				update

				catch {exec $bindir/eps2$preformat $iepsfile($level) $predir/$iepsfile($level).$preformat} tmp

				destroy .makepreview
				update
			}
			if {[file exists $predir/$iepsfile($level).$preformat]} {
				set fd [open $predir/$iepsfile($level).$preformat "r"]

				read $fd 1
				if {[eof $fd]} {
					close $fd
					errormsg "ץӥ塼Ǥޤ\nEPSե뤬ʤǽޤ"
				} else {
					gets $fd tmp
					gets $fd tmp
					gets $fd tmp
					set epswidth [lindex $tmp 0]
					set epsheight [lindex $tmp 1]
					close $fd
					image create photo $win-preview -file $predir/$iepsfile($level).$preformat
					if {[string first "̵" $iteisai($level)]} {
						set img [.${win}-image create image 200 70 -anchor nw -image $win-preview]
					} else {
						set img [.${win}-image create image 200 90 -anchor nw -image $win-preview]
					}
					.${win}-image bind $img <Double-ButtonRelease> "
						selectmidashieps $win $name [string range $level [expr [string length $name]+1] end]
					"
				}
			} else {
				errormsg "ץӥ塼Ǥޤ\nEPSե뤬ʤǽޤ"
			}
		}
	}
}

# ܥڡ
proc makesonotapagestylemenu {win name} {
	global scount pagestyle
	global schanged

	.${win}-pagestyle.m0 delete 0 end
	for {set i 0} {$i < $scount($name)} {incr i} {
		.${win}-pagestyle.m0 add command -label [expr $i + 1] -command "
			set pagestyle($name) [expr $i + 1]
			.${win}-pagestyle configure -text [expr $i + 1]
			set schanged($name) 1
		"
	}
}

# ФΥڡ
proc makepagestylemenu {win name level} {
	global scount ipagestyle
	global schanged

	.${win}.m0 delete 0 end
	for {set i 0} {$i < $scount($name)} {incr i} {
		.${win}.m0 add command -label [expr $i + 1] -command "
			set ipagestyle(${name}-$level) [expr $i + 1]
			.$win configure -text [expr $i + 1]
			set schanged($name) 1
		"
	}
}

# ܼΥڡ
proc makemokujipagestylemenu {win name level} {
	global scount impagestyle
	global schanged

	.${win}.m0 delete 0 end
	for {set i 0} {$i < $scount($name)} {incr i} {
		.${win}.m0 add command -label [expr $i + 1] -command "
			set impagestyle(${name}-$level) [expr $i + 1]
			.$win configure -text [expr $i + 1]
			set schanged($name) 1
		"
	}
}

# Фܼ˻Ѥ뤫
proc mokujiselect {win name level} {
	global itoc

	if {[string compare $itoc(${name}-$level) "̵"]} {
		place .${win}-emokuji -x 120 -y 400 -in .$win
	} else {
		place .${win}-emokuji -x 1000 -y 1000 -in .$win
	}
}

# ܼκۤԽ
proc editmokuji {win name level} {
	global schanged
	global itriger imjfont imjsize imjhenkei imefont imesize imebase impefont impesize impebase
	global imjiokuri imgyookuri immondo imjisage imjiage imgyosoroe immaeaki imushiroaki imteisai
	global imlsen imlwidth imspace impagestyle
    global imwmaeaki imwushiroaki imwjisage imwjiage
    global imwaku imwtwidth imwbwidth imwlwidth imwrwidth
    global imwtlround imwtrround imwblround imwbrround
    global imwcyan imwmagenta imwyellow imwblack
    global imbcyan imbmagenta imbyellow imbblack

	if {[winfo exists .${win}-mokuji]} {
		raise .${win}-mokuji
	} else {
		toplevel .${win}-mokuji -width 700 -height 550

		if {[string length $itriger(${name}-$level)] > 0} {
			label .${win}-mokuji.lb0 -text "ܼκ(//$itriger(${name}-$level))"
		} else {
			label .${win}-mokuji.lb0 -text "ܼκ"
		}

		button .${win}-mokuji.close -text "Ĥ" -command "
			destroy .${win}-mokuji
		"

		button .${win}-mokuji.fontdef -width 16 -text "ܼ" -command "
			makefontmenu ${name}mokuji${level}font $name im (${name}-$level) ܼ(//$itriger(${name}-$level)) 0
		"
		button .${win}-mokuji.pfontdef -width 16 -text "ܼڡ" -command "
			makefontmenu ${name}mokuji${level}pfont $name imp (${name}-$level) ܼڡ(//$itriger(${name}-$level)) 3
		"

		label .${win}-mokuji.lb3 -text ""
		entry .${win}-mokuji.gyookuri -width 8 -textvariable imgyookuri(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb3a $name imgyookuri (${name}-$level)

		canvas .${win}-mokuji.image -width 500 -height 320

		label .${win}-mokuji.lb4 -text "夲"
		entry .${win}-mokuji.jiage -width 8 -textvariable imjiage(${name}-$level)
		jiageunitmenu .${win}-mokuji.lb4a $name imjiage (${name}-$level)

		entry .${win}-mokuji.jisage -width 8 -textvariable imjisage(${name}-$level)
		jiageunitmenu .${win}-mokuji.lb5a $name imjisage (${name}-$level)

		entry .${win}-mokuji.maeaki -width 8 -textvariable immaeaki(${name}-$level)
		kaigyounitmenu .${win}-mokuji.lb6a $name immaeaki (${name}-$level)

		entry .${win}-mokuji.ushiroaki -width 8 -textvariable imushiroaki(${name}-$level)
		kaigyounitmenu .${win}-mokuji.lb7a $name imushiroaki (${name}-$level)

		entry .${win}-mokuji.mondo -width 8 -textvariable immondo(${name}-$level)
		jiageunitmenu .${win}-mokuji.lb8a $name immondo (${name}-$level)

		checkbutton .${win}-mokuji.waku -text "Ϥ߷Ӥ" -variable imwaku(${name}-$level) -onvalue "ͭ" -offvalue "̵" -command "
			editmokujiteisai $win $name $level
			set schanged($name) 1
		"

		entry .${win}-mokuji.wjisage -width 8 -textvariable imwjisage(${name}-$level)
		jiageunitmenu .${win}-mokuji.lb21a $name imwjisage (${name}-$level)

		entry .${win}-mokuji.wjiage -width 8 -textvariable imwjiage(${name}-$level)
		jiageunitmenu .${win}-mokuji.lb22a $name imwjiage (${name}-$level)

		entry .${win}-mokuji.wmaeaki -width 8 -textvariable imwmaeaki(${name}-$level)
		kaigyounitmenu .${win}-mokuji.lb23a $name imwmaeaki (${name}-$level)

		entry .${win}-mokuji.wushiroaki -width 8 -textvariable imwushiroaki(${name}-$level)
		kaigyounitmenu .${win}-mokuji.lb24a $name imwushiroaki (${name}-$level)

		entry .${win}-mokuji.wtwidth -width 8 -textvariable imwtwidth(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb25a $name imwtwidth (${name}-$level)
		entry .${win}-mokuji.wbwidth -width 8 -textvariable imwbwidth(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb26a $name imwbwidth (${name}-$level)
		entry .${win}-mokuji.wlwidth -width 8 -textvariable imwlwidth(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb27a $name imwlwidth (${name}-$level)
		entry .${win}-mokuji.wrwidth -width 8 -textvariable imwrwidth(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb28a $name imwrwidth (${name}-$level)

		entry .${win}-mokuji.wtlround -width 8 -textvariable imwtlround(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb29a $name imwtlround (${name}-$level)
		entry .${win}-mokuji.wtrround -width 8 -textvariable imwtrround(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb30a $name imwtrround (${name}-$level)
		entry .${win}-mokuji.wblround -width 8 -textvariable imwblround(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb31a $name imwblround (${name}-$level)
		entry .${win}-mokuji.wbrround -width 8 -textvariable imwbrround(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb32a $name imwbrround (${name}-$level)

		label .${win}-mokuji.lb9 -text "꡼"
		radiobutton .${win}-mokuji.lsen0 -text "" -var imlsen(${name}-$level) -value 0 -command "
			mokujisenshu $win 0
			set schanged($name) 1
		"
		radiobutton .${win}-mokuji.lsen1 -text "" -var imlsen(${name}-$level) -value 1 -command "
			mokujisenshu $win 1
			set schanged($name) 1
		"
		radiobutton .${win}-mokuji.lsen2 -text "3꡼ʥ󥿡" -var imlsen(${name}-$level) -value 2 -command "
			mokujisenshu $win 2
			set schanged($name) 1
		"
		radiobutton .${win}-mokuji.lsen3 -text "3꡼ʲ" -var imlsen(${name}-$level) -value 3 -command "
			mokujisenshu $win 3
			set schanged($name) 1
		"
		radiobutton .${win}-mokuji.lsen4 -text "ʥ󥿡" -var imlsen(${name}-$level) -value 4 -command "
			mokujisenshu $win 4
			set schanged($name) 1
		"
		radiobutton .${win}-mokuji.lsen5 -text "ʲ" -var imlsen(${name}-$level) -value 5 -command "
			mokujisenshu $win 5
			set schanged($name) 1
		"
		radiobutton .${win}-mokuji.lsen6 -text "ꥹڡ" -var imlsen(${name}-$level) -value 6 -command "
			mokujisenshu $win 6
			set schanged($name) 1
		"
		label .${win}-mokuji.lb10 -text ""
		entry .${win}-mokuji.lwidth -width 8 -textvariable imlwidth(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb10a $name imlwidth (${name}-$level)

		label .${win}-mokuji.lb11 -text "ڡ"
		entry .${win}-mokuji.space -width 8 -textvariable imspace(${name}-$level)
		okuriunitmenu .${win}-mokuji.lb11a $name imspace (${name}-$level)


		label .${win}-mokuji.lb12 -text "ڡ"
		menubutton .${win}-mokuji.teisai -text $imteisai(${name}-$level) -relief raised -width 12 -menu .${win}-mokuji.teisai.m0
		menu .${win}-mokuji.teisai.m0 -tearoff false
		.${win}-mokuji.teisai.m0 add command -label "ڡ" -command "
			.${win}-mokuji.teisai configure -text ڡ
			set imteisai(${name}-$level) ڡ
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "ڡ" -command "
			.${win}-mokuji.teisai configure -text ڡ
			set imteisai(${name}-$level) ڡ
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "ڡ" -command "
			.${win}-mokuji.teisai configure -text ڡ
			set imteisai(${name}-$level) ڡ
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "" -command "
			.${win}-mokuji.teisai configure -text 
			set imteisai(${name}-$level) 
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "⺸ڡ" -command "
			.${win}-mokuji.teisai configure -text ⺸ڡ
			set imteisai(${name}-$level) ⺸ڡ
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "ⱦڡ" -command "
			.${win}-mokuji.teisai configure -text ⱦڡ
			set imteisai(${name}-$level) ⱦڡ
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "" -command "
			.${win}-mokuji.teisai configure -text 
			set imteisai(${name}-$level) 
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "򺸥ڡ" -command "
			.${win}-mokuji.teisai configure -text 򺸥ڡ
			set imteisai(${name}-$level) 򺸥ڡ
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "򱦥ڡ" -command "
			.${win}-mokuji.teisai configure -text 򱦥ڡ
			set imteisai(${name}-$level) 򱦥ڡ
			place .${win}-mokuji.lb7 -x 10 -y 170 -in .${win}-mokuji
			place .${win}-mokuji.pagestyle -x 150 -y 170 -in .${win}-mokuji
			set schanged($name) 1
		"
		.${win}-mokuji.teisai.m0 add command -label "̵" -command "
			.${win}-mokuji.teisai configure -text ̵
			set imteisai(${name}-$level) ̵
			place .${win}-mokuji.lb7 -x 1000 -y 1000
			place .${win}-mokuji.pagestyle -x 1000 -y 1000
			set schanged($name) 1
		"

		label .${win}-mokuji.lb13 -text "/Υֹ֥"
		menubutton .${win}-mokuji.pagestyle -text $impagestyle(${name}-$level) -relief raised -width 8 -menu .${win}-mokuji.pagestyle.m0
		menu .${win}-mokuji.pagestyle.m0 -tearoff false

		label .${win}-mokuji.lb14 -text "·"
		menubutton .${win}-mokuji.gyosoroe -text $imgyosoroe(${name}-$level) -menu .${win}-mokuji.gyosoroe.m0 -relief raised -width 8
		menu .${win}-mokuji.gyosoroe.m0 -tearoff false
		.${win}-mokuji.gyosoroe.m0 add command -label "" -command "
			set imgyosoroe(${name}-$level) 
			.${win}-mokuji.gyosoroe configure -text 
			set schanged($name) 1
		"
		.${win}-mokuji.gyosoroe.m0 add command -label "" -command "
			set imgyosoroe(${name}-$level) 
			.${win}-mokuji.gyosoroe configure -text 
			set schanged($name) 1
		"
		.${win}-mokuji.gyosoroe.m0 add command -label "" -command "
			set imgyosoroe(${name}-$level) 
			.${win}-mokuji.gyosoroe configure -text 
			set schanged($name) 1
		"

		label .${win}-mokuji.lb40 -text ""
		scale .${win}-mokuji.wcyan -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imwcyan(${name}-$level) -label "" -showvalue 0 -command "mokujiwakucolor $win $name $level"
		scale .${win}-mokuji.wmagenta -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imwmagenta(${name}-$level) -label "ޥ" -showvalue 0 -command "mokujiwakucolor $win $name $level"
		scale .${win}-mokuji.wyellow -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imwyellow(${name}-$level) -label "" -showvalue 0 -command "mokujiwakucolor $win $name $level"
		scale .${win}-mokuji.wblack -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imwblack(${name}-$level) -label "֥å" -showvalue 0 -command "mokujiwakucolor $win $name $level"
		label .${win}-mokuji.lbwcyan -text $imwcyan(${name}-$level)
		label .${win}-mokuji.lbwmagenta -text $imwmagenta(${name}-$level)
		label .${win}-mokuji.lbwyellow -text $imwyellow(${name}-$level)
		label .${win}-mokuji.lbwblack -text $imwblack(${name}-$level)

		label .${win}-mokuji.lb41 -text "طʿ"
		scale .${win}-mokuji.bcyan -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imbcyan(${name}-$level) -label "" -showvalue 0 -command "mokujibasecolor $win $name $level"
		scale .${win}-mokuji.bmagenta -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imbmagenta(${name}-$level) -label "ޥ" -showvalue 0 -command "mokujibasecolor $win $name $level"
		scale .${win}-mokuji.byellow -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imbyellow(${name}-$level) -label "" -showvalue 0 -command "mokujibasecolor $win $name $level"
		scale .${win}-mokuji.bblack -orient h -from 0.0 -to 1.0 -resolution 0.01 -var imbblack(${name}-$level) -label "֥å" -showvalue 0 -command "mokujibasecolor $win $name $level"
		label .${win}-mokuji.lbbcyan -text $imbcyan(${name}-$level)
		label .${win}-mokuji.lbbmagenta -text $imbmagenta(${name}-$level)
		label .${win}-mokuji.lbbyellow -text $imbyellow(${name}-$level)
		label .${win}-mokuji.lbbblack -text $imbblack(${name}-$level)

		editmokujiteisai $win $name $level

		bind .${win}-mokuji.gyookuri <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.jiage <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.jisage <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.maeaki <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.ushiroaki <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.mondo <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.lwidth <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.space <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wjiage <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wjisage <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wmaeaki <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wushiroaki <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wtwidth <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wbwidth <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wlwidth <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wrwidth <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wtlround <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wtrround <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wblround <KeyRelease> "
			set schanged($name) 1
		"
		bind .${win}-mokuji.wbrround <KeyRelease> "
			set schanged($name) 1
		"

		place .${win}-mokuji.lb0 -x 10 -y 10 -in .${win}-mokuji
		place .${win}-mokuji.close -x 620 -y 5 -in .${win}-mokuji
		place .${win}-mokuji.fontdef -x 10 -y 35 -in .${win}-mokuji
		place .${win}-mokuji.pfontdef -x 10 -y 65 -in .${win}-mokuji
		place .${win}-mokuji.lb3 -x 10 -y 110 -in .${win}-mokuji
		place .${win}-mokuji.gyookuri -x 100 -y 110 -in .${win}-mokuji
		place .${win}-mokuji.lb3a -x 170 -y 110 -in .${win}-mokuji
		place .${win}-mokuji.lb14 -x 10 -y 140 -in .${win}-mokuji
		place .${win}-mokuji.gyosoroe -x 100 -y 140 -in .${win}-mokuji
		place .${win}-mokuji.lb9 -x 10 -y 170 -in .${win}-mokuji
		place .${win}-mokuji.lsen0 -x 30 -y 190 -in .${win}-mokuji
		place .${win}-mokuji.lsen1 -x 30 -y 210 -in .${win}-mokuji
		place .${win}-mokuji.lsen2 -x 30 -y 230 -in .${win}-mokuji
		place .${win}-mokuji.lsen3 -x 30 -y 250 -in .${win}-mokuji
		place .${win}-mokuji.lsen4 -x 30 -y 270 -in .${win}-mokuji
		place .${win}-mokuji.lsen5 -x 30 -y 290 -in .${win}-mokuji
		place .${win}-mokuji.lsen6 -x 30 -y 310 -in .${win}-mokuji
		place .${win}-mokuji.waku -x 10 -y 360 -in .${win}-mokuji

		mokujisenshu $win $imlsen(${name}-$level)
	}
}

# ܼϤ߷ɽڤ괹
proc editmokujiteisai {win name level} {
	global imwaku

	destroy .${win}-mokuji.image
	canvas .${win}-mokuji.image -width 500 -height 320
	place .${win}-mokuji.image -x 250 -y 40 -in .${win}-mokuji

	.${win}-mokuji.image create rectangle 20 10 380 310 -fill white -outline black 
	if {![string compare $imwaku(${name}-$level) "ͭ"]} {
# 
		.${win}-mokuji.image create line 100 100 300 100 -width 3
# 
		.${win}-mokuji.image create line 100 220 300 220 -width 3
# 
		.${win}-mokuji.image create line 85 115 85 205 -width 3
# 
		.${win}-mokuji.image create line 315 115 315 205 -width 3
# 
		.${win}-mokuji.image create arc 85 100 115 130 -start 90 -extent 90 -style pieslice -width 3 
# 
		.${win}-mokuji.image create arc 285 100 315 130 -start 0 -extent 90 -style pieslice -width 3
# 
		.${win}-mokuji.image create arc 85 190 115 220 -start 180 -extent 90 -style pieslice -width 3
# 
		.${win}-mokuji.image create arc 285 190 315 220 -start 270 -extent 90 -style pieslice -width 3
# ɤĤ֤
		.${win}-mokuji.image create rectangle 87 114 313 206 -fill white -outline white
		.${win}-mokuji.image create rectangle 99 102 301 218 -fill white -outline white

		.${win}-mokuji.image create line 60 100 60 210 -fill gray70
		.${win}-mokuji.image create line 340 100 340 210 -fill gray70
# ȳ
		.${win}-mokuji.image create line 60 160 84 160 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 316 160 340 160 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 200 80 200 99 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 200 221 200 240 -arrow both -arrowshape {5 8 3}
# 
		.${win}-mokuji.image create line 86 160 105 160 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 295 160 314 160 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 200 101 200 150 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 200 170 200 219 -arrow both -arrowshape {5 8 3}
# Ⱦ
		.${win}-mokuji.image create line 100 115 90 105 -arrow last -arrowshape {5 8 3}
# Ⱦ
		.${win}-mokuji.image create line 300 115 310 105 -arrow last -arrowshape {5 8 3}
# Ⱦ
		.${win}-mokuji.image create line 100 205 90 215 -arrow last -arrowshape {5 8 3}
# Ⱦ
		.${win}-mokuji.image create line 300 205 310 215 -arrow last -arrowshape {5 8 3}
# 
		.${win}-mokuji.image create line 70 190 84 190 -arrow last -arrowshape {5 8 3}
		.${win}-mokuji.image create line 100 190 86 190 -arrow last -arrowshape {5 8 3}
# 
		.${win}-mokuji.image create line 300 190 314 190 -arrow last -arrowshape {5 8 3}
		.${win}-mokuji.image create line 330 190 316 190 -arrow last -arrowshape {5 8 3}
# 
		.${win}-mokuji.image create line 120 85 120 99 -arrow last -arrowshape {5 8 3}
		.${win}-mokuji.image create line 120 115 120 101 -arrow last -arrowshape {5 8 3}
# 
		.${win}-mokuji.image create line 120 205 120 219 -arrow last -arrowshape {5 8 3}
		.${win}-mokuji.image create line 120 235 120 221 -arrow last -arrowshape {5 8 3}
# ȳ
		.${win}-mokuji.image create window 5 160 -window .${win}-mokuji.jisage
		raise .${win}-mokuji.jisage
		.${win}-mokuji.image create window 45 160 -window .${win}-mokuji.lb5a
		raise .${win}-mokuji.lb5a
		.${win}-mokuji.image create window 375 160 -window .${win}-mokuji.jiage
		raise .${win}-mokuji.jiage
		.${win}-mokuji.image create window 415 160 -window .${win}-mokuji.lb4a
		raise .${win}-mokuji.lb4a
		.${win}-mokuji.image create window 200 65 -window .${win}-mokuji.maeaki
		raise .${win}-mokuji.maeaki
		.${win}-mokuji.image create window 240 65 -window .${win}-mokuji.lb6a
		raise .${win}-mokuji.lb6a
		.${win}-mokuji.image create window 200 255 -window .${win}-mokuji.ushiroaki
		raise .${win}-mokuji.ushiroaki
		.${win}-mokuji.image create window 240 255 -window .${win}-mokuji.lb7a
		raise .${win}-mokuji.lb7a
# 
		.${win}-mokuji.image create window 100 140 -window .${win}-mokuji.wjisage
		raise .${win}-mokuji.wjisage
		.${win}-mokuji.image create window 140 140 -window .${win}-mokuji.lb21a
		raise .${win}-mokuji.lb21a
		.${win}-mokuji.image create window 290 140 -window .${win}-mokuji.wjiage
		raise .${win}-mokuji.wjiage
		.${win}-mokuji.image create window 330 140 -window .${win}-mokuji.lb22a
		raise .${win}-mokuji.lb22a
		.${win}-mokuji.image create window 240 117 -window .${win}-mokuji.wmaeaki
		raise .${win}-mokuji.wmaeaki
		.${win}-mokuji.image create window 280 117 -window .${win}-mokuji.lb23a
		raise .${win}-mokuji.lb23a
		.${win}-mokuji.image create window 240 195 -window .${win}-mokuji.wushiroaki
		raise .${win}-mokuji.wushiroaki
		.${win}-mokuji.image create window 280 195 -window .${win}-mokuji.lb24a
		raise .${win}-mokuji.lb24a
# Ⱦ
		.${win}-mokuji.image create window 40 100 -window .${win}-mokuji.wtlround
		raise .${win}-mokuji.wtlround
		.${win}-mokuji.image create window 80 100 -window .${win}-mokuji.lb29a
		raise .${win}-mokuji.lb29a
# Ⱦ
		.${win}-mokuji.image create window 350 100 -window .${win}-mokuji.wtrround
		raise .${win}-mokuji.wtrround
		.${win}-mokuji.image create window 390 100 -window .${win}-mokuji.lb30a
		raise .${win}-mokuji.lb30a
# Ⱦ
		.${win}-mokuji.image create window 40 220 -window .${win}-mokuji.wblround
		raise .${win}-mokuji.wblround
		.${win}-mokuji.image create window 80 220 -window .${win}-mokuji.lb31a
		raise .${win}-mokuji.lb31a
# Ⱦ
		.${win}-mokuji.image create window 350 220 -window .${win}-mokuji.wbrround
		raise .${win}-mokuji.wbrround
		.${win}-mokuji.image create window 390 220 -window .${win}-mokuji.lb32a
		raise .${win}-mokuji.lb32a
# 
		.${win}-mokuji.image create window 15 190 -window .${win}-mokuji.wlwidth
		raise .${win}-mokuji.wlwidth
		.${win}-mokuji.image create window 55 190 -window .${win}-mokuji.lb27a
		raise .${win}-mokuji.lb27a
# 
		.${win}-mokuji.image create window 365 190 -window .${win}-mokuji.wrwidth
		raise .${win}-mokuji.wrwidth
		.${win}-mokuji.image create window 405 190 -window .${win}-mokuji.lb28a
		raise .${win}-mokuji.lb28a
# 
		.${win}-mokuji.image create window 110 70 -window .${win}-mokuji.wtwidth
		raise .${win}-mokuji.wtwidth
		.${win}-mokuji.image create window 150 70 -window .${win}-mokuji.lb25a
		raise .${win}-mokuji.lb25a
# 
		.${win}-mokuji.image create window 110 250 -window .${win}-mokuji.wbwidth
		raise .${win}-mokuji.wbwidth
		.${win}-mokuji.image create window 150 250 -window .${win}-mokuji.lb26a
		raise .${win}-mokuji.lb26a

		place .${win}-mokuji.lb40 -x 210 -y 360 -in .${win}-mokuji
		place .${win}-mokuji.wcyan -x 240 -y 380 -in .${win}-mokuji
		place .${win}-mokuji.wmagenta -x 240 -y 420 -in .${win}-mokuji
		place .${win}-mokuji.wyellow -x 240 -y 460 -in .${win}-mokuji
		place .${win}-mokuji.wblack -x 240 -y 500 -in .${win}-mokuji
		place .${win}-mokuji.lbwcyan -x 340 -y 400 -in .${win}-mokuji
		place .${win}-mokuji.lbwmagenta -x 340 -y 440 -in .${win}-mokuji
		place .${win}-mokuji.lbwyellow -x 340 -y 480 -in .${win}-mokuji
		place .${win}-mokuji.lbwblack -x 340 -y 520 -in .${win}-mokuji

		place .${win}-mokuji.lb41 -x 410 -y 360 -in .${win}-mokuji
		place .${win}-mokuji.bcyan -x 440 -y 380 -in .${win}-mokuji
		place .${win}-mokuji.bmagenta -x 440 -y 420 -in .${win}-mokuji
		place .${win}-mokuji.byellow -x 440 -y 460 -in .${win}-mokuji
		place .${win}-mokuji.bblack -x 440 -y 500 -in .${win}-mokuji
		place .${win}-mokuji.lbbcyan -x 540 -y 400 -in .${win}-mokuji
		place .${win}-mokuji.lbbmagenta -x 540 -y 440 -in .${win}-mokuji
		place .${win}-mokuji.lbbyellow -x 540 -y 480 -in .${win}-mokuji
		place .${win}-mokuji.lbbblack -x 540 -y 520 -in .${win}-mokuji

		mokujiwakucolor $win $name $level ""
		mokujibasecolor $win $name $level ""
	} else {
# ȳ
		.${win}-mokuji.image create line 60 160 105 160 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 295 160 340 160 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 200 100 200 150 -arrow both -arrowshape {5 8 3}
		.${win}-mokuji.image create line 200 170 200 220 -arrow both -arrowshape {5 8 3}
# ȳ
		.${win}-mokuji.image create window 5 160 -window .${win}-mokuji.jisage
		raise .${win}-mokuji.jisage
		.${win}-mokuji.image create window 45 160 -window .${win}-mokuji.lb5a
		raise .${win}-mokuji.lb5a
		.${win}-mokuji.image create window 375 160 -window .${win}-mokuji.jiage
		raise .${win}-mokuji.jiage
		.${win}-mokuji.image create window 415 160 -window .${win}-mokuji.lb4a
		raise .${win}-mokuji.lb4a
		.${win}-mokuji.image create window 240 120 -window .${win}-mokuji.maeaki
		raise .${win}-mokuji.maeaki
		.${win}-mokuji.image create window 280 120 -window .${win}-mokuji.lb6a
		raise .${win}-mokuji.lb6a
		.${win}-mokuji.image create window 240 200 -window .${win}-mokuji.ushiroaki
		raise .${win}-mokuji.ushiroaki
		.${win}-mokuji.image create window 280 200 -window .${win}-mokuji.lb7a
		raise .${win}-mokuji.lb7a

		.${win}-mokuji.image create text 200 90 -text "" -fill gray50
		.${win}-mokuji.image create text 200 230 -text "" -fill gray50

		place .${win}-mokuji.lb40 -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.wcyan -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.wmagenta -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.wyellow -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.wblack -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbwcyan -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbwmagenta -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbwyellow -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbwblack -x 1000 -y 1000 -in .${win}-mokuji

		place .${win}-mokuji.lb41 -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.bcyan -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.bmagenta -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.byellow -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.bblack -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbbcyan -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbbmagenta -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbbyellow -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lbbblack -x 1000 -y 1000 -in .${win}-mokuji
	}
# 
	.${win}-mokuji.image create line 105 170 150 170 -arrow both -arrowshape {5 8 3}
# 
	.${win}-mokuji.image create window 140 188 -window .${win}-mokuji.mondo
	raise .${win}-mokuji.mondo
	.${win}-mokuji.image create window 180 188 -window .${win}-mokuji.lb8a
	raise .${win}-mokuji.lb8a

	.${win}-mokuji.image create text 200 50 -text "" -fill gray50
	.${win}-mokuji.image create text 200 70 -text "" -fill gray50
	.${win}-mokuji.image create text 200 160 -text "1 ġġġ123"
	.${win}-mokuji.image create text 200 250 -text "" -fill gray50
	.${win}-mokuji.image create text 200 270 -text "" -fill gray50
}

proc mokujisenshu {win senshu} {
	if {$senshu == 4 || $senshu == 5} {
		place .${win}-mokuji.lb10 -x 30 -y 330 -in .${win}-mokuji
		place .${win}-mokuji.lwidth -x 120 -y 330 -in .${win}-mokuji
		place .${win}-mokuji.lb10a -x 190 -y 330 -in .${win}-mokuji
		place .${win}-mokuji.lb11 -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.space -x 1000 -y 1000 -in .${win}-mokuji
		place .${win}-mokuji.lb11a -x 1000 -y 1000 -in .${win}-mokuji
		return
	} else {
		if {$senshu == 6} {
			place .${win}-mokuji.lb10 -x 1000 -y 1000 -in .${win}-mokuji
			place .${win}-mokuji.lwidth -x 1000 -y 1000 -in .${win}-mokuji
			place .${win}-mokuji.lb10a -x 1000 -y 1000 -in .${win}-mokuji
			place .${win}-mokuji.lb11 -x 30 -y 330 -in .${win}-mokuji
			place .${win}-mokuji.space -x 120 -y 330 -in .${win}-mokuji
			place .${win}-mokuji.lb11a -x 190 -y 330 -in .${win}-mokuji
			return
		}
	}
	place .${win}-mokuji.lb10 -x 1000 -y 1000 -in .${win}-mokuji
	place .${win}-mokuji.lwidth -x 1000 -y 1000 -in .${win}-mokuji
	place .${win}-mokuji.lb10a -x 1000 -y 1000 -in .${win}-mokuji
	place .${win}-mokuji.lb11 -x 1000 -y 1000 -in .${win}-mokuji
	place .${win}-mokuji.space -x 1000 -y 1000 -in .${win}-mokuji
	place .${win}-mokuji.lb11a -x 1000 -y 1000 -in .${win}-mokuji
}

proc mokujiwakucolor {win name level dummy} {
	global imwcyan imwmagenta imwyellow imwblack

	.${win}-mokuji.lbwcyan configure -text [format " %.0f%%" [expr $imwcyan(${name}-$level) * 100]]
	.${win}-mokuji.lbwmagenta configure -text [format " %.0f%%" [expr $imwmagenta(${name}-$level) * 100]]
	.${win}-mokuji.lbwyellow configure -text [format " %.0f%%" [expr $imwyellow(${name}-$level) * 100]]
	.${win}-mokuji.lbwblack configure -text [format " %.0f%%" [expr $imwblack(${name}-$level) * 100]]

	set red [expr 1.0-$imwcyan(${name}-$level)-$imwblack(${name}-$level)]
	set green [expr 1.0-$imwmagenta(${name}-$level)-$imwblack(${name}-$level)]
	set blue [expr 1.0-$imwyellow(${name}-$level)-$imwblack(${name}-$level)]

	if {$red < 0} {set red 0}
	if {$green < 0} {set green 0}
	if {$blue < 0} {set blue 0}

	for {set i 2} {$i < 6} {incr i} {
		.${win}-mokuji.image itemconfigure $i -fill [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
	}
	for {set i 6} {$i < 10} {incr i} {
		.${win}-mokuji.image itemconfigure $i -outline [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
	}
}

proc mokujibasecolor {win name level dummy} {
	global imbcyan imbmagenta imbyellow imbblack

	.${win}-mokuji.lbbcyan configure -text [format " %.0f%%" [expr $imbcyan(${name}-$level) * 100]]
	.${win}-mokuji.lbbmagenta configure -text [format " %.0f%%" [expr $imbmagenta(${name}-$level) * 100]]
	.${win}-mokuji.lbbyellow configure -text [format " %.0f%%" [expr $imbyellow(${name}-$level) * 100]]
	.${win}-mokuji.lbbblack configure -text [format " %.0f%%" [expr $imbblack(${name}-$level) * 100]]

	set red [expr 1.0-$imbcyan(${name}-$level)-$imbblack(${name}-$level)]
	set green [expr 1.0-$imbmagenta(${name}-$level)-$imbblack(${name}-$level)]
	set blue [expr 1.0-$imbyellow(${name}-$level)-$imbblack(${name}-$level)]

	if {$red < 0} {set red 0}
	if {$green < 0} {set green 0}
	if {$blue < 0} {set blue 0}

	for {set i 6} {$i < 12} {incr i} {
		.${win}-mokuji.image itemconfigure $i -fill [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
	}
	.${win}-mokuji.image itemconfigure 10 -outline [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
	.${win}-mokuji.image itemconfigure 11 -outline [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
}

proc checkusefont {win name level usefont} {
	global $usefont

	if (![string compare [set ${usefont}(${name}-$level)] "ͭ"]) {
		place .${win}-rfontdef -x 10 -y 60 -in .$win
		place .${win}-gfontdef -x 150 -y 60 -in .$win
	} else {
		place .${win}-rfontdef -x 1000 -y 1000 -in .$win
		place .${win}-gfontdef -x 1000 -y 1000 -in .$win
	}
}

proc checkiusefont {win name level usefont} {
	global $usefont

	if (![string compare [set ${usefont}(${name}-$level)] "ͭ"]) {
		place .${win}-irfontdef -x 10 -y 130 -in .$win
		place .${win}-igfontdef -x 150 -y 130 -in .$win
	} else {
		place .${win}-irfontdef -x 1000 -y 1000 -in .$win
		place .${win}-igfontdef -x 1000 -y 1000 -in .$win
	}
}

proc calckoguchimargin {name} {
	global dir topmargin vsize vsizeunit rjiokuri rgyookuri gyo
	global sidemargin hsize hsizeunit rjiokuri rjitume jiage jisage

	update
	if {[numcheck $hsize] && [numcheck $rjiokuri($name)] && [numcheck $rjitume($name)] && [numcheck $jisage($name)] && [numcheck $jiage($name)] && [numcheck $sidemargin($name)]} {
		if {[string compare $dir ""]} {
			.${name}.honmon-koguchimargin configure -text [format "%.2f" [expr [getmmsize $name hsize ""] - [getmmsize $name sidemargin ($name)] - [calctextwidth $name] - [getmmsize $name jisage ($name)] - [getmmsize $name jiage ($name)]]]mm
		} else {
			.${name}.honmon-koguchimargin configure -text [format "%.2f" [expr [getmmsize $name hsize ""] - [getmmsize $name sidemargin ($name)] - ([getmmsize $name rgyookuri ($name)] * ($gyo($name) - 1) + [getmmsize $name rjsize ($name)])]]mm
		}
		.${name}.honmon-hsize configure -text [format "%.2f" $hsize]$hsizeunit
	}
}

proc calcbottommargin {name} {
	global dir topmargin vsize vsizeunit rjsize rgyookuri gyo
	global sidemargin hsize hsizeunit rjiokuri rjitume jiage jisage

	update
	if {[numcheck $vsize] && [numcheck $rjsize($name)] && [numcheck $rgyookuri($name)] && [numcheck $gyo($name)] && [numcheck $topmargin($name)]} {
		if {[string compare $dir ""]} {
			.${name}.honmon-bottommargin configure -text [format "%.2f" [expr [getmmsize $name vsize ""] - [getmmsize $name topmargin ($name)] - ([getmmsize $name rgyookuri ($name)] * ($gyo($name) - 1) + [getmmsize $name rjsize ($name)])]]mm
		} else {
			.${name}.honmon-bottommargin configure -text [format "%.2f" [expr [getmmsize $name vsize ""] - [getmmsize $name topmargin ($name)] - [calctextwidth $name] - [getmmsize $name jisage ($name)] - [getmmsize $name jiage ($name)]]]mm
		}
		.${name}.honmon-vsize configure -text [format "%.2f" $vsize]$vsizeunit
	}
}

proc calctextwidth {name} {
	global rjiokuri rjiokuriunit 
	global rjitume rjitumeunit 

	if {![string compare $rjitumeunit($name) ""]} {
		set width [expr [getmmsize $name rjiokuri ($name)] * $rjitume($name)]
	} else {
		set width [getmmsize $name rjitume ($name)]
	}
	return $width
}

proc getjyfonts {} {
	global fontslistfile jyfonts jycount

	set jycount 0
	if {[catch {set fd [open $fontslistfile r]}]} {
		errormsg "եȾե $fontslistfile ɤޤ"
		exit
	}
	while {[gets $fd buff] != -1} {
		if {[string first "1" $buff] == 0} {
			set font [lindex $buff 2]
			if {![string compare [string range $font [expr [string length $font] -2] end] "-H"]} {
				set jyfonts($jycount) [string range $font 0 [expr [string length $font] -3]]
				incr jycount
			}
		}
	}
}

proc getjtfonts {} {
	global fontslistfile jtfonts jtcount

	set jtcount 0
	if {[catch {set fd [open $fontslistfile r]}]} {
		errormsg "եȾե $fontslistfile ɤޤ"
		exit
	}
	while {[gets $fd buff] != -1} {
		if {[string first "2" $buff] == 0} {
			set font [lindex $buff 2]
			if {![string compare [string range $font [expr [string length $font] -2] end] "-V"]} {
				set jtfonts($jtcount) [string range $font 0 [expr [string length $font] -3]]
				incr jtcount
			}
		}
	}
}

proc getcmfonts {} {
	global fontslistfile cmfonts cmcount

	set cmcount 0
	if {[catch {set fd [open $fontslistfile r]}]} {
		errormsg "եȾե $fontslistfile ɤޤ"
		exit
	}
	while {[gets $fd buff] != -1} {
		if {[string first "0" $buff] == 0} {
			set nfss [lindex $buff 1]
			if {[string first "OT1/cm" $nfss] == 0} {
				set cmfonts($cmcount) [lindex $buff 2]
				incr cmcount
			}
		}
	}
}

proc getjefonts {} {
	global guilib fontslistfile jefonts jecount jefamily jesubcount

	set jecount 0
	if {[catch {set fd [open $fontslistfile r]}]} {
		errormsg "եȾե $fontslistfile ɤޤ"
		exit
	}
	while {[gets $fd buff] != -1} {
		if {[string first "0" $buff] == 0} {
			set nfss [lindex $buff 1]
			if {[string first "JE1/" $nfss] == 0} {
				set fontname [exec echo [lindex $buff 3] | sed -f $guilib/jefonts.sed]
				set family [string range $fontname 0 [expr [string first "-" $fontname] -1]]
				if {[string compare $family ""]} {} else {
					set family $fontname
				}
				for {set i 0} {$i < $jecount} {incr i} {
					if {[string compare $family $jefamily($i)]} {} else {
						break
					}
				}
				if {$i == $jecount} {
					set jefamily($i) $family
					incr jecount
					set jesubcount($i) 0
					global je$family
				}
				for {set j 0} {$j < $jesubcount($i)} {incr j} {
					if {[string compare $fontname [set je${family}($j)]]} {} else {
						break
					}
				}
				if {$j == $jesubcount($i)} {
					set je${family}($jesubcount($i)) $fontname
					incr jesubcount($i)
				}
			}
		}
	}
}

proc getefonts {} {
	global fontslistfile efonts ecount efamily esubcount

	set ecount 0
	if {[catch {set fd [open $fontslistfile r]}]} {
		errormsg "եȾե $fontslistfile ɤޤ"
		exit
	}
	while {[gets $fd buff] != -1} {
		if {[string first "0" $buff] == 0} {
			set nfss [lindex $buff 1]
			if {[string first "OT1/" $nfss] == 0 || [string first "U/" $nfss] == 0} {
				if {[string first "OT1/cm" $nfss] != 0} {
					set fontname [lindex $buff 3]
					set family [string range $fontname 0 [expr [string first "-" $fontname] -1]]
					if {[string compare $family ""]} {} else {
						set family $fontname
					}
					for {set i 0} {$i < $ecount} {incr i} {
						if {[string compare $family $efamily($i)]} {} else {
							break
						}
					}
					if {$i == $ecount} {
						set efamily($i) $family
						incr ecount
						set esubcount($i) 0
						global e$family
					}
					for {set j 0} {$j < $esubcount($i)} {incr j} {
						if {[string compare $fontname [set e${family}($j)]]} {} else {
							break
						}
					}
					if {$j == $esubcount($i)} {
						set e${family}($esubcount($i)) $fontname
						incr esubcount($i)
					}
				}
			}
		}
	}
}

proc selectstyle {} {
	global rootwd rootht
	global curdir filename
	global flag

	set flag 0
	set curdir ""
	set filename ""
	toplevel .selfile -width 300 -height 370 
	wm title .selfile "κۥե򳫤"
	wm geometry .selfile +[expr $rootwd / 2 - 150]+[expr $rootht /2 - 185]
	frame .selfile.f0
	frame .selfile.f1
	frame .selfile.f2
	label .selfile.lb0 -wraplength 250 -text "κۥեꤷƤ"
	entry .selfile.filename -width 40 -textvariable filename
	label .selfile.lb1 -wraplength 250 -text "ǥ쥯ȥ:"
	label .selfile.lb2 -wraplength 250 -text $curdir
	listbox .selfile.l0 -width 36 -height 12 -xscrollcommand ".selfile.s2 set" -yscrollcommand ".selfile.s1 set" -selectmode single
	scrollbar .selfile.s1 -orient vertical -command ".selfile.l0 yview"
	scrollbar .selfile.s2 -orient horizontal -command ".selfile.l0 xview"
	button .selfile.ok -text "OK" -command {
		if {[llength [.selfile.l0 curselection]]} {
			set filename ${curdir}[.selfile.l0 get [.selfile.l0 curselection]]
		}
		grab release .selfile
		set flag 1
		destroy .selfile
	}
	button .selfile.cancel -text "Cancel" -command {
		set filename ""
		grab release .selfile
		set flag 0
		destroy .selfile
	}

	bind .selfile <Destroy> {
		if {!$flag} {
			set filename ""
		}
	}

	bind .selfile.l0 <ButtonRelease> {
		if {[llength [.selfile.l0 curselection]]} {
			set filename ${curdir}[.selfile.l0 get [.selfile.l0 curselection]]
		}
	}

	bind .selfile.l0 <Double-ButtonRelease> {
		if {[llength [.selfile.l0 curselection]]} {
			set file [.selfile.l0 get [.selfile.l0 curselection]]
			if {[string compare $file ""]} {
				if {[expr [string match "*\\*" $file] || [string match "*@" $file]]} {
					set file [string range $file 0 [expr [string length $file] -2]] 
				}
				if {[string compare [file type ${curdir}${file}] "link"]} {
					set dfile ${curdir}${file}
				} else {
					set dfile [file readlink ${curdir}${file}]
				}
				set filename $dfile
				if {[file isdirectory $dfile]} {
					if {[string compare $file "./"]} {
						if {[string compare $file "../"]} {
							set file [.selfile.l0 get [.selfile.l0 curselection]]
							set curdir ${curdir}${file}
							.selfile.lb2 configure -text $curdir
							showfilelist2
						} else {
							if {[string compare $curdir ""]} {
								if {[expr [string last "/" [string range $curdir 0 [expr [string length $curdir] -2]]] == -1]} {
									set curdir ""
									.selfile.lb2 configure -text $curdir
								} else {
									set curdir [string range $curdir 0 [string last "/" [string range $curdir 0 [expr [string length $curdir] -2]]]]
									.selfile.lb2 configure -text $curdir
								}
								showfilelist2
							}
						}
					}
				}
			}
		}
	}

	showfilelist2

	grid .selfile.l0 -in .selfile.f1 -row 1 -column 0 -sticky nsew
	grid .selfile.s1 -in .selfile.f1 -row 1 -column 1 -sticky nsw
	grid .selfile.s2 -in .selfile.f1 -row 2 -column 0 -sticky new
	place .selfile.lb0 -x 10 -y 10
	place .selfile.filename -x 10 -y 40
	place .selfile.lb1 -x 10 -y 70
	place .selfile.lb2 -x 110 -y 70
	place .selfile.f1 -x 10 -y 90
	place .selfile.ok -x 70 -y 330
	place .selfile.cancel -x 120 -y 330

	grab set .selfile
	wm resizable .selfile 0 0
	tkwait window .selfile
}

# selfileɥ˥եɽ
proc showfilelist2 {} {
	global curdir filename

	.selfile.l0 delete 0 end
	if {[string compare $curdir ""]} {
		set ls [exec /bin/ls -Fa $curdir | sed -e "s/\\(.*\\)/\\\"\\1\\\"/"]
	} else {
		set ls [exec /bin/ls -Fa | sed -e "s/\\(.*\\)/\\\"\\1\\\"/"]
	}

	foreach file $ls {
		if {[expr [string match "*\\*" $file] || [string match "*@" $file]]} {
			set file [string range $file 0 [expr [string length $file] -2]] 
		}
		if {[string compare [file type ${curdir}${file}] "link"]} {
			set dfile ${curdir}${file}
		} else {
			set dfile [file readlink ${curdir}${file}]
		}
		if {[file isdirectory $dfile]} {
			if {[string compare $file "./"]} {
				if {[expr [string compare $curdir ""] || [string compare $file "../"]]} {
					.selfile.l0 insert end $file
				}
			}
		} else {
			.selfile.l0 insert end $file
		}
	}
	set filename $curdir
}

proc readcommon {filename} {
	global tcl_version
	global guilib sourcemain sourceindex
	global commonfile stylecount stype sname stedfile
	global title subject author dir
	global hsize hsizeunit vsize vsizeunit
	global urltriger urltextred urltextgreen urltextblue
	global urllinered urllinegreen urllineblue
	global urllinewidth urllinewidthunit urllinestyle
	global urldotlength urldotlengthunit urldotsep urldotsepunit
	global stridx strval
	global cchanged

	if {[catch {set fd [open $filename r]}]} {
		errormsg "ե $filename ɤޤ"
		return -1
	}
	if {[string compare $tcl_version "8.0"]} {
		fconfigure $fd -encoding euc-jp
	}

	while {1} {
		if {[gets $fd buff] == -1} break
		readline $buff
		switch $stridx {
			"̾" {set title $strval}
			"" {set subject $strval}
			"" {set author $strval}
			"" {set dir $strval}
			"Ƚ" {setparam vsize "" $strval}
			"ž夬ꥵ" {setparam vsize "" $strval}
			"Ƚ" {setparam hsize "" $strval}
			"ž夬ꥵ" {setparam hsize "" $strval}
			"URLȥꥬ" {set urltriger $strval}
			"ʸ" {set urltextred $strval}
			"ʸ" {set urltextgreen $strval}
			"ʸ" {set urltextblue $strval}
			"" {set urllinered $strval}
			"" {set urllinegreen $strval}
			"" {set urllineblue $strval}
			"" {setparam urllinewidth "" $strval}
			"" {set urllinestyle $strval}
			"Ĺ" {setparam urldotlength "" $strval}
			"ֳ" {setparam urldotsep "" $strval}
			"κۥե" {
				set tmpcount $stylecount
				set stylecount 0
				for {set i $stylecount} {1} {incr i} {
					for {set j 0} {$j < $stylecount} {incr j} {
						if {![string compare $sname($j) pssted]} {
							break
						}
					}
					if {$j >= $stylecount} {
						break
					}
				} 
				set sname($stylecount) pssted
#				if {$sourcemain} {
#					source $guilib/guisted.main
#					set sourcemain 0
#				}
				readsted $sname($stylecount) $strval
#				incr stylecount
				set stylecount $tmpcount
				flashstylelist
#				editstyle $sname([expr $stylecount - 1])
				editstyle $sname(0)
			}
			"κۥե" {
				set tmpcount $stylecount
				set stylecount 1
				for {set i $stylecount} {1} {incr i} {
					for {set j 0} {$j < $stylecount} {incr j} {
						if {![string compare $sname($j) psidxsted]} {
							break
						}
					}
					if {$j >= $stylecount} {
						break
					}
				} 
				set sname($stylecount) psidxsted
#				if {$sourceindex} {
#					source $guilib/guisted.index
#					set sourceindex 0
#				}
				readidxsted $sname($stylecount) $strval
#				incr stylecount
				set stylecount $tmpcount
				flashstylelist
#				editidxstyle $sname([expr $stylecount - 1])
				editidxstyle $sname(1)
			}
		}
	}

	close $fd
	set cchanged 0
	return 0
}

proc readline {str} {
	global stridx strval strvalunit

	set stridx ""
	set strval ""
	set strvalunit ""

	set str [string trimleft $str]
	for {set i 0} {$i < [string length $str]} {incr i} {
		if {[string compare [string index $str $i] "\t"] == 0 || [string compare [string index $str $i] " "] == 0 || [string compare [string index $str $i] "#"] == 0} {
			break
		}
	}
	set stridx [string range $str 0 [expr $i - 1]]

	if {[string compare [string index $str $i] "#"] == 0} return

	set str [string trimleft [string range $str $i end]]
	set flag 0
	for {set i 0} {$i < [string length $str]} {incr i} {
		if {[string compare [string index $str $i] "\""] == 0} {
			if {$flag} {
				set flag 0
			} else {
				set flag 1
			}
			continue
		}
		if {$flag == 0 && ([string compare [string index $str $i] "\t"] == 0 || [string compare [string index $str $i] " "] == 0 || [string compare [string index $str $i] "#"] == 0)} {
			break
		}
	}
	set strval [string trim [string range $str 0 [expr $i - 1]] "\""]
	return
}

proc setparam {var tail str} {
	global $var ${var}unit
	
	set tmpunit ""
	set unitlist "Q q pt PT Pt H  mm MM  "
	set newunitlist "Q Q pt pt pt   mm mm  "
	scan $str "%f%s" $var$tail tmpunit
	if {[lsearch -exact $unitlist $tmpunit] != -1} {
		set ${var}unit${tail} [lindex $newunitlist [lsearch -exact $unitlist $tmpunit]]
	}
}

proc writecommon {} {
	global tcl_version
	global cchanged forcewrite
	global rootwd rootht
	global commonfile stylecount stype sname stedfile wflag
	global title subject author dir
	global hsize hsizeunit vsize vsizeunit
	global urltriger urltextred urltextgreen urltextblue
	global urllinered urllinegreen urllineblue
	global urllinewidth urllinewidthunit urllinestyle
	global urldotlength urldotlengthunit urldotsep urldotsepunit

	set wflag 0
	if {!$forcewrite} {
		toplevel .writecommon -width 300 -height 100
		wm geometry .writecommon +[expr $rootwd / 2 - 150]+[expr $rootht /2 - 50]
		wm title .writecommon "ե¸"
		label .writecommon.lb0 -text "¸ե̾ϤƤ"
		button .writecommon.ok -text "OK" -command "
			writablecommon
		"
		button .writecommon.cancel -text "Cancel" -command "
			destroy .writecommon
			return
		"
		entry .writecommon.filename -textvariable commonfile -width 30

		place .writecommon.lb0 -x 10 -y 10
		place .writecommon.filename -x 10 -y 40
		place .writecommon.ok -x 100 -y 70
		place .writecommon.cancel -x 150 -y 70

		tkwait window .writecommon
	} else {
		if {[file exists $commonfile] && ![file writable $commonfile]} {
			errormsg ${commonfile}ˤϽ񤭹ߤǤޤ
		} else {
			set wflag 1
		}
	}

	if {[string length $commonfile] == 0 || $wflag == 0} {return}

	set fd [open $commonfile w]
	if {[string compare $tcl_version "8.0"]} {
		fconfigure $fd -encoding euc-jp
	}

	puts $fd "# ե"
	puts $fd "# for guisted"
	puts $fd "#"
	puts $fd "̾\t\"$title\""
	puts $fd "\t\"$subject\""
	puts $fd "\t\"$author\""
	puts $fd "\t$dir"
	puts $fd "Ƚ\t$vsize$vsizeunit"
	puts $fd "Ƚ\t$hsize$hsizeunit"
	puts $fd "URLȥꥬ\t$urltriger"
	puts $fd "ʸ\t$urltextred"
	puts $fd "ʸ\t$urltextgreen"
	puts $fd "ʸ\t$urltextblue"
	puts $fd "\t$urllinered"
	puts $fd "\t$urllinegreen"
	puts $fd "\t$urllineblue"
	puts $fd "\t$urllinewidth$urllinewidthunit"
	puts $fd "\t$urllinestyle"
	puts $fd "Ĺ\t$urldotlength$urldotlengthunit"
	puts $fd "ֳ\t$urldotsep$urldotsepunit"
	for {set i 0} {$i < $stylecount} {incr i} {
		if {$stype($sname($i))} {
			puts $fd "κۥե\t$stedfile($sname($i))"
		} else {
			puts $fd "κۥե\t$stedfile($sname($i))"
		}
	}

	close $fd
	set cchanged 0
}

proc writablecommon {} {
	global answer wflag
	global commonfile

	if {[file exists $commonfile]} {
		if {[file writable $commonfile]} {
			ynmsg ${commonfile}˾񤭤ޤ
			if {$answer} {
				exec mv -f $commonfile $commonfile~
				set wflag 1
				destroy .writecommon
			}
		} else {
			errormsg ${commonfile}ˤϽ񤭹ߤǤޤ
		}
	} else {
		set wflag 1
		destroy .writecommon
	}
}

proc writablefile {name} {
	global answer wflag
	global stedfile

	if {[file exists $stedfile($name)]} {
		if {[file writable $stedfile($name)]} {
			ynmsg $stedfile($name)˾񤭤ޤ
			if {$answer} {
				exec mv -f $stedfile($name) $stedfile($name)~
				set wflag 1
				destroy .${name}writested
			}
		} else {
			errormsg $stedfile($name)ˤϽ񤭹ߤǤޤ
		}
	} else {
		if {![file exists [file dirname $stedfile($name)]]} {
			ynmsg "ǥ쥯ȥ [file dirname $stedfile($name)] ޤ"
			if {$answer} {
				exec mkdir [file dirname $stedfile($name)]
				if {![file exists [file dirname $stedfile($name)]]} {
					errormsg "ǥ쥯ȥ [file dirname $stedfile($name)] Ǥޤ"
				} else {
					set wflag 1
					destroy .${name}writested
				}
			}
		} else {
			set wflag 1
			destroy .${name}writested
		}
	}
}

proc convstylefile {name} {
	global wflag bindir stedfile stype stylef triger pdfstyle idxstyle

	destroy .${name}makestyle
	if {$stype($name)} {
		set sflag 1
		set iflag 1
		set flags ""
		checkwritablefile $stylef($name)
		if {!$wflag} {
			set sflag 0
			set flags "-s "
		}
		checkwritablefile $idxstyle($name)
		if {!$wflag} {
			set iflag 0
			set flags "${flags}-i "
		}
		if {$sflag || $iflag} {
			catch {exec $bindir/psidxsted $flags$stedfile($name)} tmp
			if {[string length $tmp]} {
				errormsg $tmp
			} else {
				errormsg ե뤬ޤ
			}
		} else {
			errormsg եϺޤǤ
			return
		}
	} else {
		set sflag 1
		set tflag 1
		set pflag 1
		set flags ""
		checkwritablefile $stylef($name)
		if {!$wflag} {
			set sflag 0
			set flags "-s "
		}
		checkwritablefile $triger($name)
		if {!$wflag} {
			set tflag 0
			set flags "${flags}-t "
		}
		checkwritablefile $pdfstyle($name)
		if {!$wflag} {
			set pflag 0
			set flags "${flags}-p "
		}
		if {$sflag || $tflag || $pflag} {
			catch {exec $bindir/pssted $flags$stedfile($name)} tmp
			if {[string length $tmp]} {
				errormsg $tmp
			} else {
				errormsg ʸե뤬ޤ
			}
		} else {
			errormsg ʸեϺޤǤ
			return
		}
	}
}

proc checkwritablefile {filename} {
	global forcewrite
	global wflag answer

	set wflag 0
	if {[file exists $filename]} {
		if {[file writable $filename]} {
			if {!$forcewrite} {
				ynmsg "$filename ˾񤭤ޤ"
				if {$answer} {
					set wflag 1
					return
				}
			} else {
				set wflag 1
				return
			}
		} else {
			errormsg "$filename ˤϽ񤭹ߤǤޤ"
			return
		}
	} else {
		if {![file exists [file dirname $filename]]} {
			ynmsg "ǥ쥯ȥ [file dirname $filename] ޤ"
			if {$answer} {
				exec mkdir [file dirname $filename]
				if {![file exists [file dirname $filename]]} {
					errormsg "ǥ쥯ȥ [file dirname $filename] Ǥޤ"
					return
				} else {
					set wflag 1
					return
				}
			} else {
				return
			}
		} else {
			set wflag 1
			return
		}
	}
}

proc makefontmenu {win name head tail winlabel flag} {
	global schanged
	global stedfile
	global rootwd rootht
	global jyfonts jycount jtyfonts jtcount cmfonts cmcount jefamily jecount jesubcount ecount efamily esubcount

	global ${head}jfont ${head}jhenkei ${head}jsize ${head}efont ${head}esize ${head}ebase ${head}jiokuri
	global ${head}jsizeunit ${head}esizeunit ${head}ebaseunit ${head}jiokuriunit
	global ${head}cyan ${head}magenta ${head}yellow ${head}black

	if {[winfo exists .$win]} {
		raise .$win
	} else {
		toplevel .$win -width 550 -height 270
		wm title .$win "$stedfile($name) $winlabel"

		button .$win.close -text "Ĥ" -command "
			destroy .$win
		"
		label .$win.lb0 -text $winlabel
		label .$win.rule0 -text "--------------------------------------------------------------------------------------------------------------------------------"

		if {$flag != 3} {
			label .$win.lb1 -text "ʸ"
			menubutton .$win.jfont -text [set ${head}jfont${tail}] -relief raised -width 30 -menu .$win.jfont.m0
			menu .$win.jfont.m0 -tearoff false
			for {set i 0} {$i < $jycount} {incr i} {
				.$win.jfont.m0 add command -label $jyfonts($i) -command "
					.$win.jfont configure -text $jyfonts($i)
					set ${head}jfont${tail} $jyfonts($i)
					.$win.efont configure -text $jyfonts($i)-83pv-RKSJ-H
					set ${head}efont${tail} $jyfonts($i)-83pv-RKSJ-H
					set schanged($name) 1
				"
			}
			label .$win.lb2 -text "ʸѷ"
			if {![string compare [set ${head}jhenkei${tail}] ""]} {
				set henkei ʤĤ
			} else {
				set henkei [set ${head}jhenkei${tail}]
			}
			menubutton .$win.jhenkei -text $henkei -relief raised -width 12 -menu .$win.jhenkei.m0
			menu .$win.jhenkei.m0 -tearoff false
			.$win.jhenkei.m0 add command -label "" -command "
				.$win.jhenkei configure -text 
				set ${head}jhenkei${tail} 
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "ʤĤ" -command "
				.$win.jhenkei configure -text ʤĤ
				set ${head}jhenkei${tail} 
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "Ĺ1" -command "
				.$win.jhenkei configure -text Ĺ1
				set ${head}jhenkei${tail} Ĺ1
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "Ĺ2" -command "
				.$win.jhenkei configure -text Ĺ2
				set ${head}jhenkei${tail} Ĺ2
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "Ĺ3" -command "
				.$win.jhenkei configure -text Ĺ3
				set ${head}jhenkei${tail} Ĺ3
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "Ĺ4" -command "
				.$win.jhenkei configure -text Ĺ4
				set ${head}jhenkei${tail} Ĺ4
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "ʿ1" -command "
				.$win.jhenkei configure -text ʿ1
				set ${head}jhenkei${tail} ʿ1
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "ʿ2" -command "
				.$win.jhenkei configure -text ʿ2
				set ${head}jhenkei${tail} ʿ2
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "ʿ3" -command "
				.$win.jhenkei configure -text ʿ3
				set ${head}jhenkei${tail} ʿ3
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "ʿ4" -command "
				.$win.jhenkei configure -text ʿ4
				set ${head}jhenkei${tail} ʿ4
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "1" -command "
				.$win.jhenkei configure -text 1
				set ${head}jhenkei${tail} 1
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "2" -command "
				.$win.jhenkei configure -text 2
				set ${head}jhenkei${tail} 2
				set schanged($name) 1
			"
			.$win.jhenkei.m0 add command -label "3" -command "
				.$win.jhenkei configure -text 3
				set ${head}jhenkei${tail} 3
				set schanged($name) 1
			"
			if {$flag != 4} {
				label .$win.lb3 -text "ʸ"
				entry .$win.jsize -width 8 -textvariable ${head}jsize${tail}
				unitmenu .$win.lb3a $name ${head}jsize $tail
				label .$win.lb4 -text ""
				entry .$win.jiokuri -width 8 -textvariable ${head}jiokuri${tail}
				okuriunitmenu .$win.lb4a $name ${head}jiokuri $tail

				bind .$win.jsize <KeyRelease> "
					set schanged($name) 1
				"
				bind .$win.jiokuri <KeyRelease> "
					set schanged($name) 1
				"
			}
		}

		label .$win.lb5 -text "ʸ"
		if {$flag != 2} {
			menubutton .$win.efont -relief raised -width 30 -menu .$win.efont.m0
			menu .$win.efont.m0 -tearoff false
			.$win.efont.m0 add cascade -label "CMե" -menu .$win.efont.m0.cm
			menu .$win.efont.m0.cm -tearoff false
			for {set i 0} {$i < $cmcount} {incr i} {
				.$win.efont.m0.cm add command -label $cmfonts($i) -command "
					.$win.efont configure -text $cmfonts($i)
					set ${head}efont${tail} $cmfonts($i)
					set schanged($name) 1
				"
			}

			.$win.efont.m0 add cascade -label "°ʸե" -menu .$win.efont.m0.je
			menu .$win.efont.m0.je -tearoff false
			for {set i 0} {$i < $jecount} {incr i} {
				.$win.efont.m0.je add cascade -label $jefamily($i) -menu .$win.efont.m0.je.je$jefamily($i)
				global je$jefamily($i)
				menu .$win.efont.m0.je.je$jefamily($i) -tearoff false
				for {set j 0} {$j < $jesubcount($i)} {incr j} {
					.$win.efont.m0.je.je$jefamily($i) add command -label [set je$jefamily($i)($j)] -command "
						.$win.efont configure -text [set je$jefamily($i)($j)]
						set ${head}efont${tail} [set je$jefamily($i)($j)]
						set schanged($name) 1
					"
				}
			}

			.$win.efont.m0 add cascade -label "PSʸե" -menu .$win.efont.m0.e
			menu .$win.efont.m0.e -tearoff false
			for {set i 0} {$i < $ecount} {incr i} {
				.$win.efont.m0.e add cascade -label $efamily($i) -menu .$win.efont.m0.e.e$efamily($i)
				global e$efamily($i)
				menu .$win.efont.m0.e.e$efamily($i) -tearoff false
				for {set j 0} {$j < $esubcount($i)} {incr j} {
					.$win.efont.m0.e.e$efamily($i) add command -label [set e$efamily($i)($j)] -command "
						.$win.efont configure -text [set e$efamily($i)($j)]
						set ${head}efont${tail} [set e$efamily($i)($j)]
						set schanged($name) 1
					"
				}
			}
			.$win.efont configure -text [set ${head}efont${tail}]
		} else {
			if {![string compare $head "lg"]} {
				label .$win.efont -text "Cmtt10-Bold"
			} else {
				label .$win.efont -text "cmtt10"
			}
		}
		if {$flag != 4} {
			label .$win.lb6 -text "ʸ"
			entry .$win.esize -width 8 -textvariable ${head}esize${tail}
			unitmenu .$win.lb6a $name ${head}esize $tail
			bind .$win.esize <KeyRelease> "
				set schanged($name) 1
			"
		}
		label .$win.lb7 -text "ʸbaseline"
		entry .$win.ebase -width 8 -textvariable ${head}ebase${tail}
		label .$win.lb7a -text "ʸ"
		bind .$win.ebase <KeyRelease> "
			set schanged($name) 1
		"

		if {$flag != 1 && $flag != 4} {
			label .$win.lb8 -text "ʸ"
			scale .$win.cyan -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}cyan${tail} -label "" -showvalue 0 -command "textcolor $win $head $tail"
			scale .$win.magenta -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}magenta${tail} -label "ޥ" -showvalue 0 -command "textcolor $win $head $tail"
			scale .$win.yellow -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}yellow${tail} -label "" -showvalue 0 -command "textcolor $win $head $tail"
			scale .$win.black -orient h -from 0.0 -to 1.0 -resolution 0.01 -var ${head}black${tail} -label "֥å" -showvalue 0 -command "textcolor $win $head $tail"
			label .$win.lbcyan -text [set ${head}cyan${tail}]
			label .$win.lbmagenta -text [set ${head}magenta${tail}]
			label .$win.lbyellow -text [set ${head}yellow${tail}]
			label .$win.lbblack -text [set ${head}black${tail}]

			canvas .$win.image -width 50 -height 30
			.$win.image create rectangle 1 1 50 30 -outline black
			textcolor $win $head $tail 0

			bind .$win.cyan <ButtonRelease> "
				set schanged($name) 1
			"
			bind .$win.magenta <ButtonRelease> "
				set schanged($name) 1
			"
			bind .$win.yellow <ButtonRelease> "
				set schanged($name) 1
			"
			bind .$win.black <ButtonRelease> "
				set schanged($name) 1
			"
			place .$win.lb8 -x 380 -y 50
			place .$win.image -x 450 -y 50
			place .$win.cyan -x 400 -y 90
			place .$win.magenta -x 400 -y 130
			place .$win.yellow -x 400 -y 170
			place .$win.black -x 400 -y 210
			place .$win.lbcyan -x 500 -y 110
			place .$win.lbmagenta -x 500 -y 150
			place .$win.lbyellow -x 500 -y 190
			place .$win.lbblack -x 500 -y 230
		}

		place .$win.close -x 430 -y 1
		place .$win.lb0 -x 10 -y 10
		place .$win.rule0 -x 0 -y 30
		if {$flag != 3} {
			place .$win.lb1 -x 10 -y 50
			place .$win.jfont -x 100 -y 50
			place .$win.lb2 -x 10 -y 80
			place .$win.jhenkei -x 100 -y 80
			if {$flag !=4} {
				place .$win.lb3 -x 10 -y 110
				place .$win.jsize -x 100 -y 110
				place .$win.lb3a -x 170 -y 110
				place .$win.lb4 -x 10 -y 140
				place .$win.jiokuri -x 100 -y 140
				place .$win.lb4a -x 170 -y 140
			}
			place .$win.lb5 -x 10 -y 180
			place .$win.efont -x 100 -y 180
			if {$flag !=4} {
				place .$win.lb6 -x 10 -y 210
				place .$win.esize -x 100 -y 210
				place .$win.lb6a -x 170 -y 210
			}
			place .$win.lb7 -x 10 -y 240
			place .$win.ebase -x 100 -y 240
			place .$win.lb7a -x 170 -y 240
		} else {
			place .$win.lb5 -x 10 -y 50
			place .$win.efont -x 100 -y 50
			place .$win.lb6 -x 10 -y 80
			place .$win.esize -x 100 -y 80
			place .$win.lb6a -x 170 -y 80
			place .$win.lb7 -x 10 -y 110
			place .$win.ebase -x 100 -y 110
			place .$win.lb7a -x 170 -y 110
		}

		wm resizable .$win 0 0

		if {![string compare $head "r"] && [winfo exists .$win]} {
			bind .$win.jiokuri <KeyRelease> "
				calckoguchimargin $name
				calcbottommargin $name
			"
		}
	}
}

proc textcolor {win head tail dummy} {
	global ${head}cyan ${head}magenta ${head}yellow ${head}black

	.$win.lbcyan configure -text [format " %.0f%%" [expr [set ${head}cyan${tail}] * 100]]
	.$win.lbmagenta configure -text [format " %.0f%%" [expr [set ${head}magenta${tail}] * 100]]
	.$win.lbyellow configure -text [format " %.0f%%" [expr [set ${head}yellow${tail}] * 100]]
	.$win.lbblack configure -text [format " %.0f%%" [expr [set ${head}black${tail}] * 100]]

	set red [expr 1.0-[set ${head}cyan${tail}]-[set ${head}black${tail}]]
	set green [expr 1.0-[set ${head}magenta${tail}]-[set ${head}black${tail}]]
	set blue [expr 1.0-[set ${head}yellow${tail}]-[set ${head}black${tail}]]

	if {$red < 0} {set red 0}
	if {$green < 0} {set green 0}
	if {$blue < 0} {set blue 0}

	.${win}.image itemconfigure 1 -fill [format "#%02x%02x%02x" [format "%.0f" [expr $red * 255]] [format "%.0f" [expr $green * 255]] [format "%.0f" [expr $blue * 255]]]
}

proc errormsg {msg} {
	global rootwd rootht

	toplevel .errlog
	wm title .errlog "å"
	wm geometry .errlog +[expr $rootwd / 2 - 250]+[expr $rootht /2 - 100]
	message .errlog.m0 -width 500 -text $msg
	button .errlog.b0 -text "OK" -command {
		grab release .errlog
		destroy .errlog
	}
	bind .errlog <Destroy> {
		grab release .errlog
	}
	pack .errlog.m0 -padx 10 -pady 10
	pack .errlog.b0
	update
	grab set .errlog
	wm resizable .errlog 0 0
	tkwait window .errlog
}

proc clearcanvas {win} {
	set id [.$win find all]
	foreach i $id {
			.$win delete $i
	}
}

proc numcheck {str} {
	if {[string length $str] == 0} {return 0}

	for {set i 0} {$i < [string length $str]} {incr i} {
		if {[string match \[0-9\] [string index $str $i]]} {} else {
			if {[string match \. [string index $str $i]]} {} else {
				if {[string match - [string index $str $i]]} {} else break
			}
		}
	}
	if {$i < [string length $str]} {
		return 0
	} else {
		return 1
	}
}

proc unitmenu {win name var tail} {
	global schanged
	global $var ${var}unit

	menubutton $win -relief raised -padx 2 -pady 2 -text [set ${var}unit$tail] -width 2 -menu $win.m0
	menu $win.m0 -tearoff false
	$win.m0 add command -label Q -command "
		toQ {} $var {$tail}
		$win configure -text Q
		set schanged($name) 1
	"
	$win.m0 add command -label pt -command "
		topt {} $var {$tail}
		$win configure -text pt
		set schanged($name) 1
	"
}

proc paperunitmenu {win var} {
	global cchanged
	global $var ${var}unit

	menubutton $win -relief raised -padx 2 -pady 2 -text [set ${var}unit] -width 2 -menu $win.m0
	menu $win.m0 -tearoff false
	$win.m0 add command -label  -command "
		toH {} $var {}
		$win configure -text 
		allcalcmargin
		set cchanged 1
		checkpapersize .common.papersize
	"
	$win.m0 add command -label mm -command "
		tomm {} $var {}
		$win configure -text mm
		allcalcmargin
		set cchanged 1
		checkpapersize .common.papersize
	"
	$win.m0 add command -label pt -command "
		topt {} $var {}
		$win configure -text pt
		allcalcmargin
		set cchanged 1
		checkpapersize .common.papersize
	"
}

proc okuriunitmenu {win name var tail} {
	global schanged
	global $var ${var}unit

	menubutton $win -relief raised -padx 2 -pady 2 -text [set ${var}unit$tail] -width 2 -menu $win.m0
	menu $win.m0 -tearoff false
	$win.m0 add command -label  -command "
		toH {$name} $var {$tail}
		$win configure -text 
		set schanged($name) 1
	"
	$win.m0 add command -label mm -command "
		tomm {$name} $var {$tail}
		$win configure -text mm
		set schanged($name) 1
	"
	$win.m0 add command -label pt -command "
		topt {$name} $var {$tail}
		$win configure -text pt
		set schanged($name) 1
	"
}

proc jiageunitmenu {win name var tail} {
	global schanged
	global $var ${var}unit

	menubutton $win -relief raised -padx 2 -pady 2 -text [set ${var}unit$tail] -width 2 -menu $win.m0
	menu $win.m0 -tearoff false
	$win.m0 add command -label "()" -command "
		toji $name $var {$tail}
		$win configure -text 
		set schanged($name) 1
	"
	$win.m0 add command -label  -command "
		toH $name $var {$tail}
		$win configure -text 
		set schanged($name) 1
	"
	$win.m0 add command -label mm -command "
		tomm $name $var {$tail}
		$win configure -text mm
		set schanged($name) 1
	"
	$win.m0 add command -label pt -command "
		topt $name $var {$tail}
		$win configure -text pt
		set schanged($name) 1
	"
}

proc jiageunitmenu2 {win name var tail} {
	global schanged
	global $var ${var}unit

	menubutton $win -relief raised -padx 2 -pady 2 -text [set ${var}unit$tail] -width 2 -menu $win.m0
	menu $win.m0 -tearoff false
	$win.m0 add command -label "" -command "
		toji $name $var {$tail}
		$win configure -text 
		set schanged($name) 1
	"
	$win.m0 add command -label  -command "
		toH $name $var {$tail}
		$win configure -text 
		set schanged($name) 1
	"
	$win.m0 add command -label mm -command "
		tomm $name $var {$tail}
		$win configure -text mm
		set schanged($name) 1
	"
	$win.m0 add command -label pt -command "
		topt $name $var {$tail}
		$win configure -text pt
		set schanged($name) 1
	"
}

proc kaigyounitmenu {win name var tail} {
	global schanged
	global $var ${var}unit

	menubutton $win -relief raised -padx 2 -pady 2 -text [set ${var}unit$tail] -width 2 -menu $win.m0
	menu $win.m0 -tearoff false
	$win.m0 add command -label "()" -command "
		togyo $name $var {$tail}
		$win configure -text 
		set schanged($name) 1
	"
	$win.m0 add command -label  -command "
		toH $name $var {$tail}
		$win configure -text 
		set schanged($name) 1
	"
	$win.m0 add command -label mm -command "
		tomm $name $var {$tail}
		$win configure -text mm
		set schanged($name) 1
	"
	$win.m0 add command -label pt -command "
		topt $name $var {$tail}
		$win configure -text pt
		set schanged($name) 1
	"
}

proc toQ {name var tail} {
	global $var ${var}unit

	if {[string compare [set ${var}unit$tail] "pt"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/72.27*25.4*4.0]]
	}
	if {[string compare [set ${var}unit$tail] "mm"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]*4.0]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set jiokuri [getrjiokuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$jiokuri*4.0]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set gyookuri [getrgyookuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$gyookuri*4.0]]
	}
	set ${var}unit$tail "Q"
	return [set $var$tail]
}

proc toH {name var tail} {
	global $var ${var}unit

	if {[string compare [set ${var}unit$tail] "pt"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/72.27*25.4*4.0]]
	}
	if {[string compare [set ${var}unit$tail] "mm"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]*4.0]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set jiokuri [getrjiokuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$jiokuri*4.0]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set gyookuri [getrgyookuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$gyookuri*4.0]]
	}
	set ${var}unit$tail ""
	return [set $var$tail]
}

proc tomm {name var tail} {
	global $var ${var}unit

	if {[string compare [set ${var}unit$tail] "Q"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0]]
	}
	if {[string compare [set ${var}unit$tail] "H"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0]]
	}
	if {[string compare [set ${var}unit$tail] "pt"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/72.27*25.4]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set jiokuri [getrjiokuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$jiokuri]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set gyookuri [getrgyookuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$gyookuri]]
	}
	set ${var}unit$tail "mm"
	return [set $var$tail]
}

proc topt {name var tail} {
	global $var ${var}unit

	if {[string compare [set ${var}unit$tail] "Q"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/25.4*72.27]]
	}
	if {[string compare [set ${var}unit$tail] "H"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/25.4*72.27]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/25.4*72.27]]
	}
	if {[string compare [set ${var}unit$tail] "mm"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/25.4*72.27]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set jiokuri [getrjiokuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$jiokuri/25.4*72.27]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set gyookuri [getrgyookuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$gyookuri/25.4*72.27]]
	}
	set ${var}unit$tail "pt"
	return [set $var$tail]
}

proc toji {name var tail} {
	global $var ${var}unit

	set jiokuri [getrjiokuri $name]

	if {[string compare [set ${var}unit$tail] "H"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/$jiokuri]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/$jiokuri]]
	}
	if {[string compare [set ${var}unit$tail] "Q"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/$jiokuri]]
	}
	if {[string compare [set ${var}unit$tail] "mm"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/$jiokuri]]
	}
	if {[string compare [set ${var}unit$tail] "pt"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/72.27*25.4/$jiokuri]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set gyookuri [getrgyookuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$gyookuri/$jiokuri]]
	}
	set ${var}unit$tail ""
	return [set $var$tail]
}

proc togyo {name var tail} {
	global $var ${var}unit

	set gyookuri [getrgyookuri $name]

	if {[string compare [set ${var}unit$tail] "H"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/$gyookuri]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/$gyookuri]]
	}
	if {[string compare [set ${var}unit$tail] "Q"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/4.0/$gyookuri]]
	}
	if {[string compare [set ${var}unit$tail] "mm"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/$gyookuri]]
	}
	if {[string compare [set ${var}unit$tail] "pt"] == 0} {
		set $var$tail [format "%.2f" [expr [set $var$tail]/72.27*25.4/$gyookuri]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set jiokuri [getrjiokuri $name]
		set $var$tail [format "%.2f" [expr [set $var$tail]*$jiokuri/$gyookuri]]
	}
	set ${var}unit$tail ""
	return [set $var$tail]
}

proc getrjiokuri {name} {
	global rjiokuri rjiokuriunit

	set jiokuri $rjiokuri($name)

	if {[string compare $rjiokuriunit($name) "H"] == 0} {
		set jiokuri [format "%.2f" [expr $rjiokuri($name)/4.0]]
	}
	if {[string compare $rjiokuriunit($name) ""] == 0} {
		set jiokuri [format "%.2f" [expr $rjiokuri($name)/4.0]]
	}
	if {[string compare $rjiokuriunit($name) "pt"] == 0} {
		set jiokuri [format "%.2f" [expr $rjiokuri($name)/4.0/25.4*72.27]]
	}
	return [set jiokuri]
}

proc getrgyookuri {name} {
	global rgyookuri rgyookuriunit

	set gyookuri $rgyookuri($name)

	if {[string compare $rgyookuriunit($name) "H"] == 0} {
		set gyookuri [format "%.2f" [expr $rgyookuri($name)/4.0]]
	}
	if {[string compare $rgyookuriunit($name) ""] == 0} {
		set gyookuri [format "%.2f" [expr $rgyookuri($name)/4.0]]
	}
	if {[string compare $rgyookuriunit($name) "pt"] == 0} {
		set gyookuri [format "%.2f" [expr $rgyookuri($name)/4.0/25.4*72.27]]
	}
	return [set gyookuri]
}

proc getmmsize {name var tail} {
	global $var ${var}unit

	set size [set $var$tail]
	if {[string compare [set ${var}unit$tail] "Q"] == 0} {
		set size [format "%.2f" [expr [set $var$tail]/4.0]]
	}
	if {[string compare [set ${var}unit$tail] "H"] == 0} {
		set size [format "%.2f" [expr [set $var$tail]/4.0]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set size [format "%.2f" [expr [set $var$tail]/4.0]]
	}
	if {[string compare [set ${var}unit$tail] "pt"] == 0} {
		set size [format "%.2f" [expr [set $var$tail]/72.27*25.4]]
	}
	if {[string compare [set ${var}unit$tail] "mm"] == 0} {
		set size [format "%.2f" [set $var$tail]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set jiokuri [getrjiokuri $name]
		set size [format "%.2f" [expr [set $var$tail]*$jiokuri]]
	}
	if {[string compare [set ${var}unit$tail] ""] == 0} {
		set gyookuri [getrgyookuri $name]
		set size [format "%.2f" [expr [set $var$tail]*$gyookuri]]
	}
	return [set size]
}

proc ynmsg {msg} {
	global rootwd rootht
	global answer

	toplevel .yn
	wm title .yn ""
	wm geometry .yn +[expr $rootwd / 2 - 200]+[expr $rootht /2 - 100]
	frame .yn.f0
	label .yn.lb0 -wraplength 300 -text $msg
	button .yn.b0 -text "Ϥ" -command {
		grab release .yn
		set answer 1
		destroy .yn
	}
	button .yn.b1 -text "" -command {
		grab release .yn
		set answer 0
		destroy .yn
	}
	pack .yn.b0 .yn.b1 -in .yn.f0 -side left
	pack .yn.lb0 .yn.f0 -padx 10 -pady 10 -side top
	grab set .yn
	wm resizable .yn 0 0
	tkwait window .yn
}

# arabic  roman ءñi
proc a2r {num} {
	set rom ""

	for {set i 0} {$i < $num} {incr i} {
		set rom ${rom}i
	}

	return $rom
}

# κۥꥹȤλҥɥĤ
proc closewins {name win count} {
	for {set i 0} {$i < $count} {incr i} {
		closewin $name$win$i
	}
}

# ɥĤ
proc closewin {win} {
	if {[winfo exists .$win]} {
		destroy .$win
	}
}

set preformat ppm
set predir "previewdir"
set epspre 1
set curdir ""
set epsfile ""

# EPSե
proc selectfile {filename} {
	global rootwd rootht
	global curdir epsfile
	global flag epspre

	set flag 1
	set file ""
	if {[string length $filename] > 0} {
		set curdir [file dirname $filename]
		if {![string compare $curdir "."]} {
			set curdir ""
		}
		if {[string length $curdir] > 0} {
			set curdir ${curdir}/
		}
		set file [file tail $filename]
	}
	toplevel .selfile -width 600 -height 400 
	wm geometry .selfile +[expr $rootwd / 2 - 300]+[expr $rootht /2 - 200]
	frame .selfile.f0
	frame .selfile.f1
	frame .selfile.f2
	label .selfile.lb0 -wraplength 250 -text "EPSեꤷƤ"
	label .selfile.lb1 -wraplength 250 -text "ǥ쥯ȥ:"
	label .selfile.lb2 -wraplength 250 -text $curdir
	listbox .selfile.l0 -width 36 -height 13 -yscrollcommand ".selfile.s1 set" -selectmode single
	scrollbar .selfile.s1 -orient vertical -command ".selfile.l0 yview"
	checkbutton .selfile.prebutton -text "ץӥ塼" -variable epspre -onvalue "1" -offvalue "0" -command {
		if {[llength [.selfile.l0 curselection]]} {
			set file [.selfile.l0 get [.selfile.l0 curselection]]
			if {[string match "*.eps" $file] || [string match "*.EPS" $file]} {
				epspreview $curdir$file
			}
		} else {
			clearpreview
		}
	}
	image create photo preview
	canvas .selfile.preview -width 256 -height 256

	frame .selfile.pref0
	listbox .selfile.prel0 -width 38 -height 14 -xscrollcommand ".selfile.pres2 set" -yscrollcommand ".selfile.pres1 set" -selectmode browse
	scrollbar .selfile.pres1 -orient vertical -command ".selfile.prel0 yview"
	scrollbar .selfile.pres2 -orient horizontal -command ".selfile.prel0 xview"

	button .selfile.ok -text "OK" -command {
		if {[llength [.selfile.l0 curselection]]} {
			set epsfile ${curdir}[.selfile.l0 get [.selfile.l0 curselection]]
		}
		grab release .selfile
		set flag 0
		destroy .selfile
	}
	button .selfile.cancel -text "Cancel" -command {
		set epsfile ""
		grab release .selfile
		set flag 1
		destroy .selfile
	}

	bind .selfile <Destroy> {
		if {$flag} {
			set epsfile ""
		}
	}

	bind .selfile.l0 <ButtonRelease> {
		if {[llength [.selfile.l0 curselection]]} {
			set file [.selfile.l0 get [.selfile.l0 curselection]]
			if {[string compare $file ""]} {
				if {[string match "*.eps" $file] || [string match "*.EPS" $file]} {
					epspreview $curdir$file
				} else {
					clearpreview
				}
			} else {
				clearpreview
			}
		}
	}

	bind .selfile.l0 <Double-ButtonRelease> {
		if {[llength [.selfile.l0 curselection]]} {
			set file [.selfile.l0 get [.selfile.l0 curselection]]
			if {[string compare $file ""]} {
				if {[string match "*\\*" $file] || [string match "*@" $file]} {
					set file [string range $file 0 [expr [string length $file] -2]] 
				}
				if {[string compare [file type ${curdir}${file}] "link"]} {
					set dfile ${curdir}${file}
				} else {
					set dfile [file readlink ${curdir}${file}]
				}
				if {[file isdirectory $dfile]} {
					if {[string compare $file "./"]} {
						if {[string compare $file "../"]} {
							set file [.selfile.l0 get [.selfile.l0 curselection]]
							set curdir ${curdir}${file}
							.selfile.lb2 configure -text $curdir
							showfilelist
						} else {
							if {[string compare $curdir ""]} {
								if {[string last "/" [string range $curdir 0 [expr [string length $curdir] -2]]] == -1} {
									set curdir ""
									.selfile.lb2 configure -text $curdir
								} else {
									set curdir [string range $curdir 0 [string last "/" [string range $curdir 0 [expr [string length $curdir] -2]]]]
									.selfile.lb2 configure -text $curdir
								}
								showfilelist
							}
						}
					}
				}
			}
		}
	}

	showfilelist
	if {[string length $file] > 0} {
		for {set i 1} {$i <= [.selfile.l0 index end]} {incr i} {
			if {![string compare $file [.selfile.l0 get $i]]} {
				.selfile.l0 selection set $i $i
				.selfile.l0 see $i
				break
			}
		}
		if {[llength [.selfile.l0 curselection]]} {
			set file [.selfile.l0 get [.selfile.l0 curselection]]
			if {[string compare $file ""]} {
				if {[string match "*.eps" $file] || [string match "*.EPS" $file]} {
					epspreview $curdir$file
				} else {
					clearpreview
				}
			} else {
				clearpreview
			}
		}
	}

	grid .selfile.l0 -in .selfile.f1 -row 1 -column 0 -sticky nsew
	grid .selfile.s1 -in .selfile.f1 -row 1 -column 1 -sticky nsw
	place .selfile.lb0 -x 10 -y 10
	place .selfile.lb1 -x 10 -y 30
	place .selfile.lb2 -x 110 -y 30
	place .selfile.prebutton -x 100 -y 70
	place .selfile.f1 -x 10 -y 120
	place .selfile.preview -x 300 -y 120
	place .selfile.ok -x 70 -y 360
	place .selfile.cancel -x 120 -y 360

	update
	grab set .selfile
	wm resizable .selfile 0 0
	tkwait window .selfile
}

# selfileɥ˥եɽ
proc showfilelist {} {
	global curdir predir

	.selfile.l0 delete 0 end
	if {[string compare $curdir ""]} {
		set ls [exec /bin/ls -Fa $curdir | sed -e "s/\\(.*\\)/\\\"\\1\\\"/"]
	} else {
		set ls [exec /bin/ls -Fa | sed -e "s/\\(.*\\)/\\\"\\1\\\"/"]
	}
	foreach file $ls {
		if {[string match "*\\*" $file] || [string match "*@" $file]} {
			set file [string range $file 0 [expr [string length $file] -2]] 
		}
		if {[string compare [file type ${curdir}${file}] "link"]} {
			set dfile ${curdir}${file}
		} else {
			set dfile [file readlink ${curdir}${file}]
		}
		if {[file isdirectory $dfile]} {
			if {[string compare $file "./"] && [string compare $dfile ${predir}/]} {
				if {[string compare $curdir ""] || [string compare $file "../"]} {
					.selfile.l0 insert end $file
				}
			}
		} else {
			set ext [string tolower [file extension $dfile]]
			if {![string compare ".eps" $ext]} {
				.selfile.l0 insert end $file
			}
		}
	}
}

# ץӥ塼ξõ
proc clearpreview {} {
	set id [.selfile.preview find all]
	foreach i $id {
		.selfile.preview delete $i
	}
}


# ǤΥץӥ塼
proc epspreview {file} {
	global bindir rootwd rootht
	global epspre predir preformat

	set id [.selfile.preview find all]
	foreach i $id {
		.selfile.preview delete $i
	}

	if {$epspre} {
		if {[file exists $predir]} {
			if {![file isdirectory $predir]} {
				errormsg "ץӥ塼Ǥޤ"
				set epspre 0
			}
		} else {
			exec mkdir $predir
		}
	}

	if {$epspre} {
		exec mkdir -p $predir/[file dirname $file]
	}

	if {$epspre} {
		if {[file exists $predir/$file.$preformat]} {
			if {[file mtime $file] > [file mtime $predir/$file.$preformat]} {
				toplevel .makepreview
				wm title .makepreview "EPSץӥ塼"
				wm geometry .makepreview +[expr $rootwd / 2 - 100]+[expr $rootht / 2 - 50]
				label .makepreview.lb0 -text "ץӥ塼"
				pack .makepreview.lb0 -padx 50 -pady 50
				wm resizable .makepreview 0 0
				update

				catch {exec $bindir/eps2$preformat $file $predir/$file.$preformat} tmp

				destroy .makepreview
				update
			}
		} else {
			toplevel .makepreview
			wm title .makepreview "EPSץӥ塼"
			wm geometry .makepreview +[expr $rootwd / 2 - 100]+[expr $rootht /2 - 50]
			label .makepreview.lb0 -text "ץӥ塼"
			pack .makepreview.lb0 -padx 50 -pady 50
			wm resizable .makepreview 0 0
			update

			catch {exec $bindir/eps2$preformat $file $predir/$file.$preformat} tmp

			destroy .makepreview
			update
		}
		if {[file exists $predir/$file.$preformat]} {
			set fd [open $predir/$file.$preformat "r"]
			read $fd 1
			if {[eof $fd]} {
				close $fd
				errormsg "ץӥ塼Ǥޤ\nEPSե뤬ʤǽޤ"
			} else {
				close $fd
				image create photo preview -file $predir/$file.$preformat
				.selfile.preview create image 128 128 -anchor center -image preview
			}
		} else {
			errormsg "ץӥ塼Ǥޤ"
		}
	} else {
		image create photo preview
		.selfile.preview create image 128 128 -anchor center -image preview
	}
}

getjyfonts
getjtfonts
getcmfonts
getjefonts
getefonts

set commonfile "common.dat"
set title "ν"
set subject ""
set author ""
set dir 
set hsize 182
set hsizeunit mm
set vsize 257
set vsizeunit mm

proc makenewkinsoku {name} {
	global kinsoku xspace

	set kinsoku($name) ̵
	set xspace($name) ͭ
}

proc makenewtab {name} {
	global honmontab
	set honmontab($name) 2
}

proc makenewyen {name} {
	global yen
	set yen($name) ̵
}

proc makenewpagestyleelem {head name level num} {
	global ${head}elemcount ${head}elemhoffset ${head}elemhoffsetunit ${head}elemvoffset ${head}elemvoffsetunit ${head}elem
	global ${head}epsfile ${head}epsscale ${head}epsxsize ${head}epsxsizeunit ${head}epsysize ${head}epsysizeunit
	global ${head}linewidth ${head}linewidthunit ${head}lineheight ${head}lineheightunit ${head}linecyan ${head}linemagenta ${head}lineyellow ${head}lineblack

	set a ${name}-${level}-$num

	set ${head}elemhoffset($a) 0.0
	set ${head}elemhoffsetunit($a) mm
	set ${head}elemvoffset($a) 0.0
	set ${head}elemvoffsetunit($a) mm
	set ${head}elem($a) 
	set ${head}epsfile($a) ""
	set ${head}epsscale($a) 0
	set ${head}epsxsize($a) 0.0
	set ${head}epsxsizeunit($a) mm
	set ${head}epsysize($a) 0.0
	set ${head}epsysizeunit($a) mm
	set ${head}linewidth($a) 0.0
	set ${head}linewidthunit($a) mm
	set ${head}lineheight($a) 0.0
	set ${head}lineheightunit($a) mm
	set ${head}linecyan($a) 0.0
	set ${head}linemagenta($a) 0.0
	set ${head}lineyellow($a) 0.0
	set ${head}lineblack($a) 1.0
}

proc delpagestyle {name num} {
	global lhpos lhhoffset lhvoffset lhsoroe lhjfont lhjhenkei lhjsize lhefont lhesize lhebase lhjiokuri lhstr lhcyan lhmagenta lhyellow lhblack
	global lnpos lnhoffset lnvoffset lnsoroe lnjfont lnjhenkei lnjsize lnefont lnesize lnebase lnjiokuri lnstr lncyan lnmagenta lnyellow lnblack
	global rhpos rhhoffset rhvoffset rhsoroe rhjfont rhjhenkei rhjsize rhefont rhesize rhebase rhjiokuri rhstr rhcyan rhmagenta rhyellow rhblack
	global rnpos rnhoffset rnvoffset rnsoroe rnjfont rnjhenkei rnjsize rnefont rnesize rnebase rnjiokuri rnstr rncyan rnmagenta rnyellow rnblack
	global lhhoffsetunit lhvoffsetunit lhjsizeunit lhesizeunit lhebaseunit lhjiokuriunit lnhoffsetunit lnvoffsetunit lnjsizeunit lnesizeunit lnebaseunit lnjiokuriunit
	global rhhoffsetunit rhvoffsetunit rhjsizeunit rhesizeunit rhebaseunit rhjiokuriunit rnhoffsetunit rnvoffsetunit rnjsizeunit rnesizeunit rnebaseunit rnjiokuriunit
	global lhelemcount lhelemhoffset lhelemhoffsetunit lhelemvoffset lhelemvoffsetunit lhelem
	global lhepsfile lhepsscale lhepsxsize lhepsxsizeunit lhepsysize lhepsysizeunit
	global lhlinewidth lhlinewidthunit lhlineheight lhlineheightunit lhlinecyan lhlinemagenta lhlineyellow lhlineblack
	global lnelemcount lnelemhoffset lnelemhoffsetunit lnelemvoffset lnelemvoffsetunit lnelem
	global lnepsfile lnepsscale lnepsxsize lnepsxsizeunit lnepsysize lnepsysizeunit
	global lnlinewidth lnlinewidthunit lnlineheight lnlineheightunit lnlinecyan lnlinemagenta lnlineyellow lnlineblack
	global rhelemcount rhelemhoffset rhelemhoffsetunit rhelemvoffset rhelemvoffsetunit rhelem
	global rhepsfile rhepsscale rhepsxsize rhepsxsizeunit rhepsysize rhepsysizeunit
	global rhlinewidth rhlinewidthunit rhlineheight rhlineheightunit rhlinecyan rhlinemagenta rhlineyellow rhlineblack
	global rnelemcount rnelemhoffset rnelemhoffsetunit rnelemvoffset rnelemvoffsetunit rnelem
	global rnepsfile rnepsscale rnepsxsize rnepsxsizeunit rnepsysize rnepsysizeunit
	global rnlinewidth rnlinewidthunit rnlineheight rnlineheightunit rnlinecyan rnlinemagenta rnlineyellow rnlineblack
	global lhsymbol rhsymbol lnsymbol rnsymbol

	set a ${name}-$num

	set hlist {lh ln rh rn}

	foreach head $hlist {
		unset ${head}pos($a)
		unset ${head}hoffset($a)
		unset ${head}hoffsetunit($a)
		unset ${head}voffset($a)
		unset ${head}voffsetunit($a)
		unset ${head}soroe($a)
		unset ${head}jfont($a)
		unset ${head}jhenkei($a)
		unset ${head}jsize($a)
		unset ${head}jsizeunit($a)
		unset ${head}efont($a)
		unset ${head}esize($a)
		unset ${head}esizeunit($a)
		unset ${head}ebase($a)
		unset ${head}ebaseunit($a)
		unset ${head}jiokuri($a)
		unset ${head}jiokuriunit($a)
		unset ${head}cyan($a)
		unset ${head}magenta($a)
		unset ${head}yellow($a)
		unset ${head}black($a)
		unset ${head}symbol($a)
		unset ${head}str($a)
		for {set i 0} {$i < [set ${head}elemcount($a)]} {incr i} {
			delpagestyleelem $head $name $num $i
		}
		unset ${head}elemcount($a)
	}
}

proc delpagestyleelem {head name level num} {
	global ${head}elemcount ${head}elemhoffset ${head}elemhoffsetunit ${head}elemvoffset ${head}elemvoffsetunit ${head}elem
	global ${head}epsfile ${head}epsscale ${head}epsxsize ${head}epsxsizeunit ${head}epsysize ${head}epsysizeunit
	global ${head}linewidth ${head}linewidthunit ${head}lineheight ${head}lineheightunit ${head}linecyan ${head}linemagenta ${head}lineyellow ${head}lineblack

	set a ${name}-${level}-$num

	unset ${head}elemhoffset($a)
	unset ${head}elemhoffsetunit($a)
	unset ${head}elemvoffset($a)
	unset ${head}elemvoffsetunit($a)
	unset ${head}elem($a)
	unset ${head}epsfile($a)
	unset ${head}epsscale($a)
	unset ${head}epsxsize($a)
	unset ${head}epsxsizeunit($a)
	unset ${head}epsysize($a)
	unset ${head}epsysizeunit($a)
	unset ${head}linewidth($a)
	unset ${head}linewidthunit($a)
	unset ${head}linecyan($a)
	unset ${head}linemagenta($a)
	unset ${head}lineyellow($a)
	unset ${head}lineblack($a)
}

proc delkinsoku {name} {
	global kinsoku xspace honmontab yen

	unset kinsoku($name)
	unset xspace($name)
	unset honmontab($name)
	unset yen($name)
}

proc copypagestyle {a b} {
	global lhpos lhhoffset lhvoffset lhsoroe lhjfont lhjhenkei lhjsize lhefont lhesize lhebase lhjiokuri lhstr lhcyan lhmagenta lhyellow lhblack
	global lnpos lnhoffset lnvoffset lnsoroe lnjfont lnjhenkei lnjsize lnefont lnesize lnebase lnjiokuri lnstr lncyan lnmagenta lnyellow lnblack
	global rhpos rhhoffset rhvoffset rhsoroe rhjfont rhjhenkei rhjsize rhefont rhesize rhebase rhjiokuri rhstr rhcyan rhmagenta rhyellow rhblack
	global rnpos rnhoffset rnvoffset rnsoroe rnjfont rnjhenkei rnjsize rnefont rnesize rnebase rnjiokuri rnstr rncyan rnmagenta rnyellow rnblack
	global lhhoffsetunit lhvoffsetunit lhjsizeunit lhesizeunit lhebaseunit lhjiokuriunit lnhoffsetunit lnvoffsetunit lnjsizeunit lnesizeunit lnebaseunit lnjiokuriunit
	global rhhoffsetunit rhvoffsetunit rhjsizeunit rhesizeunit rhebaseunit rhjiokuriunit rnhoffsetunit rnvoffsetunit rnjsizeunit rnesizeunit rnebaseunit rnjiokuriunit
	global lhelemcount lhelemhoffset lhelemhoffsetunit lhelemvoffset lhelemvoffsetunit lhelem
	global lhepsfile lhepsscale lhepsxsize lhepsxsizeunit lhepsysize lhepsysizeunit
	global lhlinewidth lhlinewidthunit lhlineheight lhlineheightunit lhlinecyan lhlinemagenta lhlineyellow lhlineblack
	global lnelemcount lnelemhoffset lnelemhoffsetunit lnelemvoffset lnelemvoffsetunit lnelem
	global lnepsfile lnepsscale lnepsxsize lnepsxsizeunit lnepsysize lnepsysizeunit
	global lnlinewidth lnlinewidthunit lnlineheight lnlineheightunit lnlinecyan lnlinemagenta lnlineyellow lnlineblack
	global rhelemcount rhelemhoffset rhelemhoffsetunit rhelemvoffset rhelemvoffsetunit rhelem
	global rhepsfile rhepsscale rhepsxsize rhepsxsizeunit rhepsysize rhepsysizeunit
	global rhlinewidth rhlinewidthunit rhlineheight rhlineheightunit rhlinecyan rhlinemagenta rhlineyellow rhlineblack
	global rnelemcount rnelemhoffset rnelemhoffsetunit rnelemvoffset rnelemvoffsetunit rnelem
	global rnepsfile rnepsscale rnepsxsize rnepsxsizeunit rnepsysize rnepsysizeunit
	global rnlinewidth rnlinewidthunit rnlineheight rnlineheightunit rnlinecyan rnlinemagenta rnlineyellow rnlineblack
	global lhsymbol rhsymbol lnsymbol rnsymbol

	set hlist {lh ln rh rn}

	foreach head $hlist {
		set ${head}pos($a) [set ${head}pos($b)]
		set ${head}hoffset($a) [set ${head}hoffset($b)]
		set ${head}hoffsetunit($a) [set ${head}hoffsetunit($b)]
		set ${head}voffset($a) [set ${head}voffset($b)]
		set ${head}voffsetunit($a) [set ${head}voffsetunit($b)]
		set ${head}soroe($a) [set ${head}soroe($b)]
		set ${head}jfont($a) [set ${head}jfont($b)]
		set ${head}jhenkei($a) [set ${head}jhenkei($b)]
		set ${head}jsize($a) [set ${head}jsize($b)]
		set ${head}jsizeunit($a) [set ${head}jsizeunit($b)]
		set ${head}efont($a) [set ${head}efont($b)]
		set ${head}esize($a) [set ${head}esize($b)]
		set ${head}esizeunit($a) [set ${head}esizeunit($b)]
		set ${head}ebase($a) [set ${head}ebase($b)]
		set ${head}ebaseunit($a) [set ${head}ebaseunit($b)]
		set ${head}jiokuri($a) [set ${head}jiokuri($b)]
		set ${head}jiokuriunit($a) [set ${head}jiokuriunit($b)]
		set ${head}cyan($a) [set ${head}cyan($b)]
		set ${head}magenta($a) [set ${head}magenta($b)]
		set ${head}yellow($a) [set ${head}yellow($b)]
		set ${head}black($a) [set ${head}black($b)]
		set ${head}symbol($a) [set ${head}symbol($b)]
		set ${head}str($a) [set ${head}str($b)]
		for {set i 0} {$i < [set ${head}elemcount($b)]} {incr i} {
			copypagestyleelem $head $a-$i $b-$i
		}
		set ${head}elemcount($a) [set ${head}elemcount($b)]
	}
}

proc copypagestyleelem {head a b} {
	global ${head}elemcount ${head}elemhoffset ${head}elemhoffsetunit ${head}elemvoffset ${head}elemvoffsetunit ${head}elem
	global ${head}epsfile ${head}epsscale ${head}epsxsize ${head}epsxsizeunit ${head}epsysize ${head}epsysizeunit
	global ${head}linewidth ${head}linewidthunit ${head}lineheight ${head}lineheightunit ${head}linecyan ${head}linemagenta ${head}lineyellow ${head}lineblack

	set ${head}elemhoffset($a) [set ${head}elemhoffset($b)]
	set ${head}elemhoffsetunit($a) [set ${head}elemhoffsetunit($b)]
	set ${head}elemvoffset($a) [set ${head}elemvoffset($b)]
	set ${head}elemvoffsetunit($a) [set ${head}elemvoffsetunit($b)]
	set ${head}elem($a) [set ${head}elem($b)]
	set ${head}epsfile($a) [set ${head}epsfile($b)]
	set ${head}epsscale($a) [set ${head}epsscale($b)]
	set ${head}epsxsize($a) [set ${head}epsxsize($b)]
	set ${head}epsxsizeunit($a) [set ${head}epsxsizeunit($b)]
	set ${head}epsysize($a) [set ${head}epsysize($b)]
	set ${head}epsysizeunit($a) [set ${head}epsysizeunit($b)]
	set ${head}linewidth($a) [set ${head}linewidth($b)]
	set ${head}linewidthunit($a) [set ${head}linewidthunit($b)]
	set ${head}lineheight($a) [set ${head}lineheight($b)]
	set ${head}lineheightunit($a) [set ${head}lineheightunit($b)]
	set ${head}linecyan($a) [set ${head}linecyan($b)]
	set ${head}linemagenta($a) [set ${head}linemagenta($b)]
	set ${head}lineyellow($a) [set ${head}lineyellow($b)]
	set ${head}lineblack($a) [set ${head}lineblack($b)]
}

proc copykinsoku {name1 name2} {
	global kinsoku xspace

	set kinsoku($name1) $kinsoku($name2)
	set xspace($name1) $xspace($name2)
}

proc copytab {name1 name2} {
	global honmontab

	set honmontab($name1) $honmontab($name2)
}

proc copyyen {name1 name2} {
	global yen

	set yen($name1) $yen($name2)
}

# ǿΥ١ѥåֹ
proc getpatchversion {} {
	global patchfile

	if {[file exists $patchfile]} {
		set tmp [exec grep "^\\\\def\\\\fileversion\{" $patchfile | sed -e "s/.*\{3\\.3\\.\\(.*\\)\}/\\1/"]
		if {[string length $tmp]==0} {
			return "̵"
		} else {
			return $tmp
		}
	} else {
		return "̵"
	}
}

# եΥ١ѥåֹ
proc getcurpatchversion {stylefile} {
	if {[file exists $stylefile]} {
		catch {exec grep "^\\\\usepackage\\\[.*\\\]\{patch2ewb3_3\}" $stylefile | sed -e "s/.*\\\[3\\.3\\.\\(.*\\)\\\].*/\\1/"} tmp
		if {[string length $tmp]==0 || [string length $tmp]>5} {
			return "̵"
		} else {
			return $tmp
		}
	} else {
		return "̵"
	}
}

# ١ѥåֹ
proc makesonotapatchmenu {win name} {
	set version [getpatchversion]

	.${win}-patchno.m0 delete 0 end
	.${win}-patchno.m0 add command -label "̵" -command "
		set patchno($name) 
		set curpatchno($name) ̵
		.${win}-patchno configure -text ̵
		set schanged($name) 1
	"
	for {set i 1} {$i <= $version} {incr i} {
		.${win}-patchno.m0 add command -label $i -command "
			set patchno($name) 
			set curpatchno($name) $i
			.${win}-patchno configure -text $i
			set schanged($name) 1
		"
	}
}

set urltriger url
set urltextred 0.0
set urltextgreen 0.0
set urltextblue 1.0
set urllinered 0.0
set urllinegreen 0.0
set urllineblue 1.0
set urllinewidth 0.0
set urllinewidthunit pt
set urllinestyle ""
set urldotlength 3.0
set urldotlengthunit pt
set urldotsep 3.0
set urldotsepunit pt

set cchanged 1

# κ
source $guilib/guisted.main
set sourcemain 0

for {set i $stylecount} {1} {incr i} {
	for {set j 0} {$j < $stylecount} {incr j} {
		if {![string compare $sname($j) pssted]} {
			break
		}
	}
	if {$j >= $stylecount} {
		break
	}
} 
set sname($stylecount) pssted
makenewsted $sname($stylecount)
set schanged($sname($stylecount)) 1
incr stylecount

# κ
source $guilib/guisted.index
set sourceindex 0

for {set i $stylecount} {1} {incr i} {
	for {set j 0} {$j < $stylecount} {incr j} {
		if {![string compare $sname($j) psidxsted]} {
			break
		}
	}
	if {$j >= $stylecount} {
		break
	}
} 
set sname($stylecount) psidxsted
makenewidxsted $sname($stylecount)
set schanged($sname($stylecount)) 1
incr stylecount

flashstylelist

wm resizable . 0 0
