Re: Wikipadiaリンクの自動作成

名前: 本田
日時: 2007-05-24 23:29:58
IPアドレス: 220.147.90.*

>>48090 TeXソースをまるごと変換するのではだめなんですか? それと・・・48088の 「変換結果」のURLも違いますよね. 「温室効果ガス」は %E6%B8%A9%E5%AE%A4%E5%8A%B9%E6%9E%9C%E3%82%AC%E3%82%B9 なるはずですので。。。 ということで,まるごと変換を試みます. 変換対象のTeXソースは cp932 ととりあえずしてますが, それは適宜変更してください. TeXソース中にある \wikipedia{ほげほげ} を変換します. とりあえず手元では動いてます. ## henkan.pl ## perl henkan.pl mae.tex ato.tex ###Perlのソースコードそのものは utf8 で保存する. use strict; use warnings; use utf8; use Encode; ##本当なら,ここらでキャッシュを作って効率化すべきかも. sub hyperTeXWikipediahref{ my $word = shift; my $URLencoded = encode('utf8', $word); $URLencoded =~s<([^\w ])><"%" . unpack('H2', $1)>egx; $URLencoded=uc $URLencoded; return '\href{http://ja.wikipedia.org/wiki/'. $URLencoded .'}{' . $word . '}'; } open my $in, "<:encoding(cp932)", $ARGV[0] ; ## cp932は適当に変える open my $out, ">:encoding(cp932)", $ARGV[1] ; ## cp932は適当に変える while (my $line = <$in>){ $line =~ s<\\wikipedia\{([^}]+)\}><hyperTeXWikipediahref($1)>eg ; print $out $line; } ============= 全部 TeX で処理するのも可能ですけど sjis/jis/eucなら機械的に計算できるからともかく, UTF8というかUnicodeの場合, 膨大なテーブルを保持する必要があるので 現実的でないと思います.

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)