bin/privatize_changelog

ChangeLog の特定カテゴリのエントリに"p:"の印を付けるプログラム。

#! /usr/bin/perl
use strict;
use warnings;
use Getopt::Long;

my @priv_categories;
GetOptions('private=s@' => \@priv_categories);

print STDERR "privatizing ", map("[$_]",@priv_categories), " ...\n";

my %priv_table;
@priv_table{@priv_categories} = map 1, (1 .. scalar @priv_categories);

foreach my $line (<>) {
  my $priv = 0;

  if ( $line =~ m/^\s*\*\s*([^\[]+)(.*)\s*:\s*$/ ) { # match to a title line
    my($title, $cat) = ($1, $2);
    my @categories = ($cat =~ m/\[(.*?)\]/g);
    foreach (@categories ) {
      $priv = 1, last  if $priv_table{$_};
    }
    if ( $priv ) {
      print "\t* Latex Beamer [latex][presentation]:
<a href="http://www.stud.math.ntnu.no/kurs/etc/beameruserguide.pdf">User’s Guide to the Beamer Class, Version 3.01</a>
が、長いが丁寧で参考になる。
ただし、対象バージョンがPortageで入るbeamerより新しく、機能がまだなかったりする。

コンパイルは通常どおりでよい。
スライドのPDF生成は
>>
dvipdf presen.dvi
<<

handout の生成はちょっとややこしい。
流れは、スライドのサイズ(カードサイズ?)から A4 への引きのばし、さらに複数ページの結合、という順序。
まずLaTeXのソースで
>>
\documentclass[handout]{beamer}
<<
として、アニメーションを停止。

[src]
dvips -P pdf -ta4 $1.dvi
psnup -1 -W128mm -H96mm -pa4 $1.ps  $1.0.ps
psnup -6 -l $1.0.ps $1.1.ps
pstops "1:0@.95(6mm,0mm)" $1.1.ps > $1.ps

大きな紙に印刷し、
印字部分を紙いっぱいに引きのばし、
1ページに6ページを配置し、
余白を調整。