LaTeXの文中でWindows7のボタンっぽいものを表示するマクロを作ってみました。
例えば,
\documentclass{jreport} \usepackage{button} \begin{document} こまめに\button{保存}ボタンを押しましょう。 \end{document}
とすると,以下のようになります。
また,
\button[150]{保存}
のようにすると,通常サイズの150%の幅のボタンになります。
LaTeXの文中でWindows7のボタンっぽいものを表示するマクロを作ってみました。
例えば,
\documentclass{jreport} \usepackage{button} \begin{document} こまめに\button{保存}ボタンを押しましょう。 \end{document}
とすると,以下のようになります。
また,
\button[150]{保存}
のようにすると,通常サイズの150%の幅のボタンになります。
Rubyスクリプトから,既存のPDFファイルの総ページ数をカウントしたいことがたまにあります。
方法はいくつか考えられます(多少強引なのも含めて)。
たぶん一番スマート。
#!/usr/bin/env ruby require 'pdf/reader' fname = "test.pdf" p PDF::Reader.new(fname).page_count
PDF::Readerはgemでインストールできます。
$ gem install pdf-reader
需要があるかは謎ですが,白紙のPDFを置いてみます。改造や再配布はご自由にどうぞ。
※ B列は,日本で一般的なのは「JIS」の方です。
これらが必要になる場面としては例えば,「幾人かの原稿をまとめて一つのPDFにしたいのだけど,各人の1ページめは必ず奇数ページにこないといけない」ような状況を想定しています。花子さんの原稿が3枚で次に太郎さんの原稿を置く場合,間にこの白紙PDFを挟めば良いかと。pdftk でやるならこうですね。
pdftk hanako.pdf blanksheet-a4-portrait.pdf tarou.pdf cat output all.pdf
Acrobatを持っている場合は新規空白ページを作成する方法(Acrobat X)でも可能なようですが,スクリプトでだーっとやりたい場面が多いので。
なお,これらのPDFは,Ruby と libHaru を用いて以下のようなスクリプトで生成しました。
#!/usr/bin/env ruby require "hpdf" sizes = %w(A4 A3 A5 B4 B5 LETTER) directions = %w(PORTRAIT LANDSCAPE) directions.each do |direction| sizes.each do |size| pdf = HPDFDoc.new page = pdf.add_page page.set_size(eval("HPDFDoc::HPDF_PAGE_SIZE_#{size}"), eval("HPDFDoc::HPDF_PAGE_#{direction}")) pdf.save_to_file("blanksheet-#{size.downcase}-#{direction.downcase}.pdf") end end
(2017-05-15 追記)
上記スクリプトは libHaru を用いていましたが,libHaru を Ruby から使う場合は hpdf.so が Ruby のバージョンに依存してしまうのがちょっとつらいところです。
Prawn は Pure Ruby なのが良いですね。というわけで最近PDF生成関係のスクリプトを Prawn で書き直したりしています。A4ポートレートの白紙PDFをPrawnで生成するとしたらこんな感じでしょうか。
#!/usr/bin/env ruby require "prawn" Prawn::Document.new(:page_size => 'A4', :page_layout => :portrait).render_file("hakushi-a4.pdf")
LibreOfficeが入っていれば,
libreoffice --headless --invisible --convert-to xls:"MS Excel 97" foo.xlsx
という感じで良いみたいですね。
毎月事務局から送られてくる学食の営業情報のxlsファイルを,htmlに適当にコンバートして公開するのをRubyとSpreadsheetライブラリでやっていたのですが,今月からxlsではなくxlsx形式に変わってしまって,かつSpreadsheetはxlsxに対応してないようなので,この手の変換が必要になりました。
ちなみに学食営業情報ページはこちらです。
プログラミングの講義などを担当しているので,ソースコードをPowerPointに載せる機会が非常に多いです。そこで,少しでもわかりやすくしようと,Visual Studio や今どきのblogみたいにシンタックスハイライトをしたいのですが,当然PowerPointにはそんな機能はありません。いくつか方法はあるみたいですが,今のところ私はこうやっています。
テキストエディタ SciTEをまずインストール。
SciTEは source code editor というくらいなのでデフォルトでシンタックスハイライト機能があります。
ソースコードをSciTE上で編集します。他のエディタ等から貼り付けても良いです。自動的にシンタックスハイライトされます。
Ctrl+a で全選択し,Edit -> Copy as RTF します。
なお,SciTEから Copy as RTF するときにいちいちプルダウンメニューからやるのも大変です。Cops as RTFには元々ショートカットキーが無いみたいですが,以下のようにするとCtrl+cに割り当てることができます。
Options -> Open User Options File で,以下のように記入。
user.shortcuts=\ Ctrl+c|IDM_COPYASRTF|
PowerPointでテキストボックスを作って貼り付けます。このとき,「貼付けのオプション」で「元の書式を保持」という方を選びます。
シンタックスハイライトされた状態で貼り付けることができました。
とりあえずシンタックスハイライトだけなら以上で良いでしょう。
私はさらに,以下をやりたいと思いました。
SciTEのデフォルト設定ではVerdanaフォントでコピーされます。しかしソースコードはやはり,Inconsolata 等の等幅フォントで表示したいものです。
この場合,等幅フォント化するには2つの方法があるようです。
1の場合は,SciTEの設定ファイル SciTEGlobal.properties の
font.base=font:Verdana,size:10
あたりをいじります。この設定は,SciTE上での表示と,コピーしたときに属性としてくっついていく情報の両方に使われます。
しかし,上記のように他にも変えたい部分がいくつかあるので,2.の方法の方が良さそうです。ただ,これらを毎回やっていたら非常に大変なので,マクロ(vba)にしてみました。(こちらを大変参考にさせて頂きました)
Sub 行間カンマ8フォントInconsolata背景色薄灰色() With ActiveWindow.Selection 'シェイプが選択されていない場合はマクロを終了する If .Type = ppSelectionNone Or .Type = ppSelectionSlides Then MsgBox "行間を変更したいプレースホルダなどを選択してください。" Exit Sub End If 'テキスト編集モードの場合にはシェイプを選択する If .Type = ppSelectionText Then .ShapeRange.Select '自動調整をいったんオフにする .ShapeRange.TextFrame.AutoSize = ppAutoSizeNone With .TextRange '行間をポイント数で指定するように設定 .ParagraphFormat.LineRuleWithin = msoTrue '行間を0.8にする .ParagraphFormat.SpaceWithin = 0.8 '段落前を0にする .ParagraphFormat.SpaceBefore = 0 'フォントをInconsolataへ変更 .Font.Name = "Inconsolata" 'フォントサイズを18へ変更 .Font.Size = 18 End With '自動調整を再度オンにする .ShapeRange.TextFrame.AutoSize = ppAutoSizeShapeToFitText '背景色を薄灰色へ .ShapeRange.Fill.ForeColor.RGB = RGB(250, 250, 250) End With End Sub
なお,この場合,ソースを貼り付ける先は,普通のテキストボックスではなく,図形描画の「正方形/長方形」にする必要があります。「正方形/長方形」のテキスト領域にSciTEからソースを「形式を選択して」貼付け,その図形を選択状態にした上で,この「行間カンマ8フォントInconsolata背景色薄灰色」マクロを適用します。最終的には以下のような感じになります。
Inconsolataフォントは以下からダウンロードできます。http://www.levien.com/type/myfonts/inconsolata.html