Ubuntuではtexlive-fonts-extraも入れて):listings-arduino-sample背景:うちの研究室の卒業論文はソースコードも掲載してもらうことにしています。Arduinoを使う研究も多いのでそのソースコードも良く載せるのですが,その際listingsではlanguage=Cかlanguage=C++を使っていました。IDEと同じ見た目の方がカッコ良いので,作ってみることにしました。IDEのソースコードには,シンタックスハイライトのためのルールファイルのようなものが含まれているようです。TSV形式で以下のように書かれています。constantsHIGHLITERAL1ConstantsRESERVED_WORD_2LOWLITERAL1ConstantsRESERVED_WORD_2INPUTLITERAL1ConstantsRESERVED_WORD_2INPUT_PULLUPLITERAL1ConstantsRESERVED_WORD_2OUTPUTLITERAL1ConstantsRESERVED_WORD_2...delayKEYWORD2DelaydelayMicrosecondsKEYWORD2DelayMicrosecondsdigitalWriteKEYWORD2DigitalWritedigitalReadKEYWORD2DigitalReadこれを見ると第1コラムが終端記号で,第2コラムがその種類のようです。これらを機械的に抽出して色付けをしました。いうファイルは複数個存在します。時点では以下の個数あるようです。IDEがバージョンアップして標準ライブラリが増えるたびにこのlistings-arduino.styも同期させる必要があります。IDEのバージョンと同じにしておきます。IDEはユーザが後から入れたライブラリにも色をつけてくれます。同梱すればそれを見に行くというしかけのようです。考慮されて色が付きます。生成する,というスクリプトが以下です(Ruby)。kujiponRubyでPDFのページ数を数えるコメントを残すRubyスクリプトから,既存のPDFファイルの総ページ数をカウントしたいことがたまにあります。方法はいくつか考えられます(多少強引なのも含めて)。PDF::Readerを使う方法たぶん一番スマート。PDF::Reader.new(fname).page_countPDF::Readerはgemでインストールできます。kujiponPowerPointでCなどのソースコードをシンタックスハイライトコメントを残すプログラミングの講義などを担当しているので,ソースコードをPowerPointに載せる機会が非常に多いです。今どきのblogみたいにシンタックスハイライトをしたいのですが,当然PowerPointにはそんな機能はありません。いくつか方法はあるみたいですが,今のところ私はこうやっています。SciTEをまずインストール。いうくらいなのでデフォルトでシンタックスハイライト機能があります。ソースコードをSciTE上で編集します。他のエディタ等から貼り付けても良いです。自動的にシンタックスハイライトされます。するときにいちいちプルダウンメニューからやるのも大変です。RTFには元々ショートカットキーが無いみたいですが,以下のようにするとCtrl+cに割り当てることができます。user.shortcuts=\Ctrl+c|IDM_COPYASRTF|PowerPointでテキストボックスを作って貼り付けます。このとき,「貼付けのオプション」で「元の書式を保持」という方を選びます。シンタックスハイライトされた状態で貼り付けることができました。シンタックスハイライトだけなら以上で良いでしょう。私はさらに,以下をやりたいと思いました。等幅フォントで表示したい。フォントサイズも変えたい。行間をもう少し詰めたい。背景色やドロップシャドウもつけて目立たせたい。SciTEのデフォルト設定ではVerdanaフォントでコピーされます。等の等幅フォントで表示したいものです。この場合,等幅フォント化するには2つの方法があるようです。SciTEの設定で,はじめからInconsolataにしておく。PowerPointに貼り付けたあとでフォントを変更する。font.base=font:Verdana,size:10あたりをいじります。この設定は,SciTE上での表示と,コピーしたときに属性としてくっついていく情報の両方に使われます。上記のように他にも変えたい部分がいくつかあるので,2.の方法の方が良さそうです。これらを毎回やっていたら非常に大変なので,マクロ(vba)にしてみました。"行間を変更したいプレースホルダなどを選択してください。Subなお,この場合,ソースを貼り付ける先は,普通のテキストボックスではなく,図形描画の「正方形/長方形」にする必要があります。「正方形/長方形」のテキスト領域にSciTEからソースを「形式を選択して」貼付け,その図形を選択状態にした上で,この「行間カンマ8フォントInconsolata背景色薄灰色」マクロを適用します。最終的には以下のような感じになります。Inconsolataフォントは以下からダウンロードできます。