PerlスクリプトのExe化(Active Perl 5.16.3)
PerlスクリプトをExe化して(実行に必要なライブラリをまとめてくれる)、Active PerlがないWindows環境下でも実行できる様にしてくれるPerlパッケージャ(pp)に関するエントリ。Perlを扱うエントリ関連で時折見かける定番めいたもの。
PAR::Packerなるモジュールを導入すればお終いであるけれども、筆者と同じ様な環境(Active Perl 5.16.3)で導入した事例を見つけられなかったので書いておく。
必要なモジュールを入れる。
いきなり、PAR::Packerを導入したいのであれば以下のコマンドを実行すればよいが、
cpan isntall PAR::Packer
大抵の場合、必要なモジュールがないと警告が出てインストールに失敗するので、最初にPAR::Packerが必要とするモジュールをcpanなりppmなりでインストールする。
- Getopt::ArgvFile 1.07
- Module::ScanDeps 1.15
- PAR 1.005
- PAR::Dist 0.22
- Win32::ShellQuote 0.002
- Win32::Exe 0.17
実行コマンドは、
ppm install [module_name]或いは、
cpan isntall [module_name]
インストールの確認
以下のコマンドを実行して、下記の様に出力されれば導入は無事成功した。
$ pp
Set up gcc environment - 3.4.5 (mingw-vista special r3)
C:\Perl\site\bin/pp: No input files specified
単純な使用方法は以下の通り。スクリプトの実行に必要なパッケージなどを全部自動的に探して、一つのファイルにまとめてくれる(出力されるファイルのサイズは単純なスクリプトでも数MBになる)。
pp -o [output] [input]
参考リンク
InDesignの文字組アキ量と行頭における始め括弧類の組方
InDesignの文字組みアキ量設定による段落1字下げ - なんでやねんDTPで解説されているものの二番煎じであるが、行頭の始め括弧類について今日は考えたい。
今日々、多くの書籍は段落行頭を字下げする組版、それも本文一字分を下げる組版である。この段落行頭における字下げであるが、始め括弧類が行頭に来たときは少し注意が必要で、行頭における始め括弧類の組方として三通りにわけられる。
- 段落行頭:全角二分下げ/折返行頭:二分下げ
- 段落行頭:全角下げ/折返行頭:ベタ
- 段落行頭:二分下げ/折返行頭:ベタ
どの組方を採用するかは自由であるけれども、一般的には(1)の組方は雑誌や新聞を中心に採用されており、(2)は一般書籍で広く採用されており、最後の(3)は小説といった文藝で最も広く採用されている。これらの組方が本文中に混在させないのが、行頭における始め括弧類の組方の基本。
さて、ここで漸く本題に入れる。InDesignでは文字組みアキ量が既定では14種類あるが、自動字下げする設定と自動字下げしない設定とがあり、各設定において行頭の始め括弧類がどう組まれるのかを見てみたい。また、行頭の字下げを実現する方法としては、原稿の段階でテキストデータとして全角スペース「 」が挿入される場合と、DTPソフトウェアの段階で自動字下げする場合との二つが考えられるので*1、今回はその二つの場合においても比較する。尚、比較に利用するのはInDesign CS6(Windows版)である。
比較結果としては以下の様になって、行頭における始め括弧の組方として妥当なものは○を、妥当でないものは×とした。△については、文字組版を解説する書籍によっては是とすることもある組方である(実際にお目にかかった経験はない……)。
適切な組方は設定数の半分にも満たない有様である。テキスト段階で全角スペースがあるのに文字組アキ量設定で自動字下げする場合と、その逆の場合とにおいては、どれも不適切な組方となってしまったが、それに当てはまらない場合でも不適切な組方が結構あることがよくわかる*2。
始め括弧類の字下げ量(テキストで行頭に全角スペースを挿入しない場合)
文字組みアキ量 | 段落行頭 | 折返行頭 | 評価 |
---|---|---|---|
行末約物半角 | ベタ | ベタ | × |
行末受け約物半角・段落1字下げ(起こし全角) | 全角二分 | ベタ | × |
行末受け約物半角・段落1字下げ(起こし食い込み) | 半角 | ベタ | ○ |
約物全角・段落1字下げ | 全角 | 半角 | △ |
約物全角・段落1字下げ(起こし全角) | 全角二分 | 半角 | ○ |
行末約物全角/半角・段落1字下げ | 全角 | ベタ | ○ |
行末受け約物全角/半角・段落1字下げ(起こし全角) | 全角二分 | ベタ | × |
行末受け約物全角/半角・段落1字下げ(起こし食い込み) | 半角 | ベタ | ○ |
行末約物半角・段落1字下げ | 全角 | ベタ | ○ |
約物全角 | 半角 | 半角 | × |
行末受け約物全角/半角 | ベタ | ベタ | × |
行末句点全角・段落1字下げ | 全角 | ベタ | × |
行末句点全角・段落1字下げ(起こし全角) | 全角二分 | 半角 | ○ |
行末句点全角 | ベタ | ベタ | × |
始め括弧類の字下げ量(テキストで行頭に全角スペースを挿入する場合)
文字組みアキ量 | 段落行頭 | 折返行頭 | 評価 |
---|---|---|---|
行末約物半角 | 全角 | ベタ | ○ |
行末受け約物半角・段落1字下げ(起こし全角) | 二倍 | ベタ | × |
行末受け約物半角・段落1字下げ(起こし食い込み) | 二倍 | ベタ | × |
約物全角・段落1字下げ | 二倍 | 半角 | × |
約物全角・段落1字下げ(起こし全角) | 二倍 | 半角 | × |
行末約物全角/半角・段落1字下げ | 二倍 | ベタ | × |
行末受け約物全角/半角・段落1字下げ(起こし全角) | 二倍 | ベタ | × |
行末受け約物全角/半角・段落1字下げ(起こし食い込み) | 二倍 | ベタ | × |
行末約物半角・段落1字下げ | 二倍 | ベタ | × |
約物全角 | 全角 | 半角 | △ |
行末受け約物全角/半角 | 全角 | ベタ | ○ |
行末句点全角・段落1字下げ | 二倍 | ベタ | × |
行末句点全角・段落1字下げ(起こし全角) | 二倍 | 半角 | × |
行末句点全角 | 全角 | ベタ | ○ |
実際の組版結果については外部リンクを参照(各設定ごとの行頭における始め括弧類)。
※ファイルをGoogleドライブに移管。(H26-09-09追記)
※無料版ではPDFをはてなブログに置けないので、筆者が放置気味のウェブサイトを一時的にファイル置き場とした。
InDesignの既定の文字組みアキ量設定は評判が悪いが、行頭の始め括弧類の組方から見ても、よろしくないことがよくわかった。やはり、利用する前に色々と調整しないといけない(この調整については後日時間があれば書きたい)。
Adobe Reader XIのオンラインサービスを無効にする
Adobe Reader XIを起動すると、毎回々々次の様なダイアログが出る。これはAdobe Reader XIの関連オンラインサービス(acrobat.com関連サービスとも)の一つ、Adobe SendNowの機能らしい。
このダイアログは起動してから時間差で表示されることもあり、この機能を利用することがない筆者としてははっきり言って邪魔であった。それで無効にする方法はないかと環境設定を見廻すもそれらしき項目がない……。調べてみたところ、無効にする方法がAdobeの公式ページに掲載されて居たが、
の二通りしかなく、既にインストール済みであると後者の方法で無効にするしかない。
レジストリ編集については、引用の通り単純にレジストリキーの追加するだけである。
以下のレジストリキーにアクセスします。Workflows キーが存在しない場合は作成します。
Adobe Reader のオンラインサービスを無効にする方法
- HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\11.0\Workflows
- Workflows キーに bEnableAcrobatHS という DWORD 値を追加します。値は「0」にします。
この設定を適用させるにはOSの再起動は必要はなく、アプリケーションの再起動だけでよい。尚、この機能を再度有効にする場合は、上記の追加キーを「1」にするか、或いはキーごと削除する。
cronで起動したスクリプトの出力ログの文字化けとその対処
結論から書くとターミナルの環境変数の引継ぎがされないため。
使用中のCent OSで、rsyncを用いたバックアップスクリプトを定時に動作させている。このときにどの様なファイルが転送/削除せられたかを把握するために、ログを出力する様にしていた(単純にrsyncコマンドに-vオプションを付加しただけであるが)。
しかし、出力されたログを見ると、ものの見事に文字化けが発生しており、これでは全くログの意味をなさない状態であった。
スクリプト自体の文字コードがShift JISであったため、それが原因かと疑って、OS既定の文字コードに保存し直すも、結局文字化けが再発した。
この原因は至極単純なことであって、環境変数の引継ぎがないためである。ログインしたシェルでは通常文字コードは次の様に表示される。
$ echo $LANG
ja_JP.UTF-8
しかしながら、cronで起動された場合、この環境変数LANGが設定されない状態であるため文字化けが発生する様である。