ExcelデータをPerlで整形してTeXで印刷

久しぶりにTeXを使った。Excelで整理した問題集のデータ。だんだんデータ量が増えてくると,Excelでは内容が見づらい。そこで,そのデータをタブテキストに出力し,PerlTeXのソースに整形してTeXでPDFにしてみた。

以前からよくやってきた方法なので,それほど悩むことはない。ただ,最近のわたしの標準文字コードUTF-8。これはPerlで日本語を処理する場合に便利だ。でも,TeXはShift-JIS版を使っている。はじめ,この文字コードの変換で,「〜」「ー(長音)」に問題が。

問題があった方法は次の通り。

  1. Excelからタブテキストに出力(Shift-JIS)
  2. mi(MacOS用のエディタ)で,念のため確認するついでに,Shift-JISからUTF-8に変換
  3. Perlで次のようにして,出力だけをcp932に
use utf8;
use open IN  => ":utf8";
use open OUT  => ":encoding(cp932)";

このようにすると,「〜」「ー(長音)」が変換できない。

もっとシンプルに,Excelから出力したタブテキストをShift-JISのままにし,Perlの入出力をcp932にしてみた。

use utf8;
use open ":encoding(cp932)";
use open ":std";

このようにしたら,「〜」「ー(長音)」も処理された。これらの文字をPerlで置換などの処理をしていないので,まったく問題がないかどうかはわからないが,とにかくエラーは出さず,目的は達せられた。