2009年01月06日

[LaTeX] include しているファイルを全て1つのtexファイルにまとめる

  • \include{〜}で挿入されたファイルを実際に読み込み、1つのファイルにまとめる。
  • まとめたファイルは標準出力ないし新規ファイルに書き出す。
  • ソースはこちら (Perl スクリプトです)

使い方

標準出力に出力する場合

% perl matometex.pl main.tex
または
% ./matometex.pl main.tex

別ファイルに出力する場合

% perl matometex.pl main.tex output.tex
または
% ./matometex.pl main.tex output.tex

matometex.pl

#!/usr/bin/perl

my $infile = $ARGV[0];
my $outfile = "";

if (defined($ARGV[1])) {
	$outfile = $ARGV[1];
}	


open IN, $infile;

if ($outfile ne "") {
	open OUT, ">" . $outfile;
}

while (<IN>) {
	$_ =~ s/[\r,\n]//g;
	$_ =~ s/\\input\{(.+)\}/&file2str($1)/ge;
	if ($outfile ne "") {
		print OUT $_ . "\n";
	} else {
		print $_ . "\n";
	}
}

close IN;

if ($outfile ne "") {
	close OUT;
}

exit;

sub file2str {
	my $file = $_[0];
	open FILE, $file;
	my $str = "";
	while (<FILE>) {
		$_ =~ s/[\r,\n]//g;
		$str .= $_ . "\n";
	}
	return $str;
}
posted by dev-man at 18:06| Comment(0) | TrackBack(0) | LaTeX | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック