+ local zero = function() return 0 end
+ dir_node_aux = {
+ [dir_yoko] = { -- yoko を
+ [dir_tate] = { -- tate 中で組む
+ width = get_h_d,
+ height = get_w_half,
+ depth = get_w_half_rem,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'kern', function(w,h,d,nw,nh,nd) return -nd end },
+ { 'box' , get_h},
+ { 'kern', function(w,h,d,nw,nh,nd) return nd-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'kern' , zero },
+ { 'box' , function(w,h,d,nw,nh,nd) return -nh-nd end },
+ { 'kern', get_h_d_neg},
+ { 'whatsit', sid_restore },
+ },
+ },
+ [dir_dtou] = { -- dtou 中で組む
+ width = get_h_d,
+ height = get_w,
+ depth = zero,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', function(w,h,d,nw,nh,nd) return -nh end },
+ { 'box', get_d_neg },
+ { 'kern', function(w,h,d,nw,nh,nd) return nh-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', get_h_d_neg },
+ { 'box', zero },
+ { 'whatsit', sid_restore },
+ },
+ },
+ },
+ [dir_tate] = { -- tate を
+ [dir_yoko] = { -- yoko 中で組む
+ width = get_h_d,
+ height = get_w,
+ depth = zero,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', function (w,h,d,nw,nh,nd) return -nh end },
+ { 'box' , get_d_neg },
+ { 'kern', function (w,h,d,nw,nh,nd) return nh-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', get_h_d_neg },
+ { 'box', zero },
+ { 'whatsit', sid_restore },
+ },
+ },
+ [dir_dtou] = { -- dtou 中で組む
+ width = get_w,
+ height = get_d,
+ depth = get_h,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '-1 0 0 -1' },
+ { 'kern', get_w_neg },
+ { 'box', function (w,h,d,nw,nh,nd) return h-nd end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '-1 0 0 -1' },
+ { 'kern', get_h_d_neg },
+ { 'box', get_w_neg },
+ { 'whatsit', sid_restore },
+ },
+ },
+ },
+ [dir_dtou] = { -- dtou を
+ [dir_yoko] = { -- yoko 中で組む
+ width = get_h_d,
+ height = get_w,
+ depth = zero,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'kern', function (w,h,d,nw,nh,nd) return -nd end },
+ { 'box', get_h },
+ { 'kern', function (w,h,d,nw,nh,nd) return nd-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'kern', zero },
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'box', function (w,h,d,nw,nh,nd) return -nd-nh end },
+ { 'kern', get_h_d_neg },
+ { 'whatsit', sid_restore },
+ },