#!/usr/local/bin/perl
#!/usr/local/bin/jperl

# jumanνϤTeX(LaTeX)ˤ롥

# "juman -e"νϤΤ1,2,3,4,65ԥååפ
# TeX(LaTeX?)Ѵ롥顼ݤϤߤʤ
# *1:2ब̤ξ硤ʻ(ʻʬ)ʸǤɤ
#    롥(н褹륽;elegantǤʤʤäƤޤ....)
# *2:ʸβϷ̤κǽɽʸޤ֤ϤǤʤ

# 1994.11.26. logtotex򸵤˺
# 1994.11.28. @wordsνɲá

# ޥ̾(ޥ̾ѹϤѤФ褤)

$normalheight = '\normalheight'; # ̾\textheight
$normalwidth  = '\normalwidth';  # ̾\textwidth
$lognumber    = 'lognumber';	 # ʸֹ
$numlen       = '\numlen';	 # ʸֹΰĹ
$log1         = '\logfirst';	 # tabular1
$log2         = '\logsecond';	 # tabular2
$log3         = '\logthird';	 # tabular3
$log4         = '\logfourth';	 # tabular4
$log5         = '\logfifth' ;    # tabular5
$logtabular   = 'logtabular';	 # logʸɽĶ̾

$txt = "";    # ʸɽѡ
undef @words; # (1ʸʬξ)ǰΤ(м?)
undef @wrk;   # (1ʬξ)ǰΤ

# ޥν(ˤƤ)

print "%%%%% Macros\n\n";

print '\newcounter{', $lognumber, "}\n";
print '\renewcommand{\the', $lognumber, '}{[\arabic{', $lognumber, "}]}\n\n";

print '\newlength{', $numlen, "}\n";	 # ʸֹĹ̰
print '\settowidth{', $numlen, '}{[9999]x}', "\n\n";

print '\newlength{', $normalheight, "}\n";
print '\setlength{', $normalheight, '}{\textheight}', "\n";
print '\setlength{\textheight}{240mm}', "\n\n"; # \textheight

print '\newlength{', $normalwidth, "}\n";
print '\setlength{', $normalwidth, '}{\textwidth}', "\n";
print '\setlength{\textwidth}{160mm}', "\n\n"; # \textwidth

&setlength($log1,20); # ꡥߤ˱ͤѤơ
&setlength($log2,30);
&setlength($log3,20);
&setlength($log4,50);
&setlength($log5,50);

print '\newenvironment{', $logtabular, '}%', "\n";
print '{\begin{tabular}[t]%', "\n";
print '{p{', $log1, '}p{', $log2, '}p{', $log3, '}%', "\n";
print 'p{', $log4, '}p{', $log5, '}}%', "\n";
print '{\refstepcounter{', $lognumber, '}}}%', "\n"; # refǤʤƤ⤤
print '{\end{tabular}\vspace{1ex}}', "\n\n";

print "%%%%%\n\n";

print '\newpage', "\n";
print '\small', "\n";
print '\twocolumn', "\n\n";

print "%%%%%\n\n";

# jumanϷ̤Ѵ

while (<>) {

    # 1ʸν
    if (/EOS/) {
	print '\begin{logtabular}', " \\\\\n";
	print '\multicolumn{5}{@{}l}%', "\n";
        print '{\underline {\makebox[\numlen][l]{\the', $lognumber, '}%',"\n";
        print '{\bf ', $txt, "}}}\\\\\n";

	$words[$#words] =~ s/ +\\\\$//; # ǽԤβԵ

	while(@words) {
	    print join(' & ', splice(@words,0,5)), "\n"; 
	}

	print '\end{logtabular}', "\n\n";

	$txt = ""; # 
	undef @words;
	next;
    }

    # 1ʸνʳ
    @wrk = split(' ',$_,7); # awkήʬ䡥
	# 2̤ϿפǷʻ줬ʸʤ夺4ϿȦ
	# ;elegantǤʤƤäȷʡ
    if($wrk[1] =~ /^̤$/ && $wrk[3] =~ /^[0-9]+$/) {
	splice(@wrk,3,0,""); # 4˶ʸιܤߤ롥
    }
    @wrk = @wrk[0 .. 5]; # 7ʹߤΤƤ롥()
#    pop(@wrk); # 7ʹߤΤƤ롥
    $txt .= $wrk[0]; # ʸɽʸίࡥ
    splice(@wrk,4,1); # 5ΤƤƵͤ롥
    push (@wrk, pop(@wrk) . " \\\\"); # tabularѲԡȤ
    push(@words,@wrk); # 1ʬξɲá
}

print '\setlength{\textheight}{', $normalheight, "}\n";
print '\setlength{\textwidth}{', $normalwidth, "}\n\n";

print '\normalsize', "\n";
print '\onecolumn', "\n\n";

print "%%%%%\n\n";

#### subroutine ####

sub setlength {	# ꡥ
    local($name,$value) = @_;

    print '\newlength{', $name, "}\n";
    print '\setlength{', $name, '}{', $value, "pt}\n\n"; # ñ:pt
}
