LaTeXで書いたレポートをRubyのTest::Unitでチェックする話。 使うもの Homebrewで入れた手元のrubyは2.3.3だった。ちょっと前からTest::Unitはgemに分離されたらしいけどまだ使えたのでこれでやる。 Ruby 2.3.3p222 Test::Unit(標準のほう) やること チェックすべき項目は以下。 人間の目の方が楽な項目もあるので、今回は太字にした項目に対してのみ行う。 図表に対する参照が番号を利用したものであるか 図表のセンタリング 図表のキャプション 図表は本文中で参照されているか 章立てしているか ページ番号が表紙を除く全てのページに正しく記入されているか フォントサイズが10~11ポイントか ページの余白が適切か 勝手な改行等が行われていないか 実装 ラベルと参照の対応は、正規表現で引っこ抜いてflattenした配列を比べる。 図表関係は自分が使うパターンの中で、キャプションの位置や有無、ラベルの有無、センタリングされているかを正規表現でマッチして検証することにした。 例えば図のキャプションは下にあってほしいので、このような塊に対してassert_match /\includegraphics.\caption{.?}.*?/mする。 \begin{figure}[H] \begin{center} \includegraphics[width=6cm]{image/test.png} \caption{テストのテスト} \label{menu} \end{center} \end{figure} できたもの nobuyo/latex-test(名前がダサい&使う時に別リポジトリだと不便なのでdotfilesに吸い込まれる気がしてる)
Continue reading

CでOpenGLを扱う際の環境構築の一部としてglpngを導入する必要があったのでメモ。 Cygwin 普段茨の道であるこいつは案外すんなりいった。 64bit版と共存できるので新規インストールを前提にします。 コンパイル済みライブラリを利用した導入手順 32bit版インストーラーを公式からダウンロードする 作業のしやすさと必要なもののために以下のパッケージをインストールする gcc-core gcc-g++ make libglut-devel libglut3 curl wget aria2 zsh git ここからglpngcygwin.zip (Cygwin用glpngコンパイル済みライブラリ)をダウンロードし、次のように配置する。 glpngcygwin/framework/glpng.h → /usr/include/w32api/GL glpngcygwin/framework/libglpng.a → /lib/w32api OpenGL本体が入っていない場合は先ほどのページの20番に従ってインストールする 終了 コンパイル ダウンロードしたzipに入ってるサンプル等をコンパイルして動作チェック gcc foo.c -I/usr/include/opengl -lglpng -lglut32 -lglu32 -lopengl32 以上で導入は完了 Mac(OSX El Capitan) 続いてmac、こいつは謎が多い。 frameworkによる導入 (前述サイト内のdmgを利用し)/Library/Frameworksにglpng.frameworkというフォルダをコピーする方法です。 手順としてはこれ1つのみで、コンパイル時にオプションを付けてリンクさせるはずがうまく行かない。 ちなみにMacにはシステムのGLUTとOpenGLが存在するのでglpngのみをインストールすればいいはず。 gccまたはclangのオプションにframeworkオプションを指定しますがglpngに関してはうまく読んでくれず。 % gcc -framework OpenGL -framework GLUT -framework Foundation -framework glpng foo.c # 略) ld: framework not found glpng clang: error: linker command failed with exit code 1 (use -v to see invocation) 今度はインクルードしてほしいところを直接指定。ソース側は適宜変えているものとする。
Continue reading

少し前にWord文書由来のhtmlを触る機会があり、フォントサイズを相対指定にする必要に迫られたのが案外うまくいったのでメモ。 問題点 wordが出力したファイルはhtmlからcssまで、font-sizeやmargin,padding等すべてpt指定であるという点。文書の忠実な再現のために細かく指定してあるので数がやたら多い。したがって計算の必要があるこの処理を手書きではこなせないという点。 解決方法 結局シェルスクリプトでやった。 px = pt / 72 * 96に従っていちどpxにしたあと、em = px / px(parent)よりemが算出できる。 早い話が次の式になるので、ざっくりこれを使う。 em = pt * 4 / 3 / px(parent) 余談) この件でいろいろ調べているうちにhtmlのfontsizeを62.5%に指定するやり方というものを知った。頭いいな 参考 数式は以下のページより PXtoEM.comのlearnタブ [ JavaScript ] フォントサイズ変換(pt↔px)のソース
Continue reading

Author's picture

nobuyo

student of nit

JS/Rails

Nagano, Japan