不定期戯言

戻る

« | 2022 | Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec | »

古いページ 新しいページ

2022.01.13 (Thu)

Okularで日本語の注釈を無理やり使うパッチ

・前に書いたパッチでは何かうまくいかないところがあるので,さらに間に合わせなパッチを書いてみた。あれ,前のパッチからは1行だけしか変わってないのか。いろいろ試行錯誤はしたものの,最終的にはディセントを無視するようにしただけだったということだ。

・ほんとはこんな情報はフォントから得られたりとかしそうなものなのだが,取り出す方法がわからないので仕方ない。ていうかもっと根本的なところをいえば,Annotationに関する設定が実際の描画に用いられていないのがいけない。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2022.01.09 (Sun)

原ノ味フォントの話

・某所で発表するべく,スライドを作っている。例によってBeamerなのだが,フォントをいつも使っているIPAから原ノ味に変えると随分印象が変わる。スライドで見るとだいぶ重い感じがする。テーマとかの設定のせいかもしれないけど,欧文とのバランスが悪い気がするので,とりあえずIPAに戻してみた。

しかしこういうのの良し悪しってわからないんだよなあ。上のように思ったのは今までずっとIPAフォントをメインで使ってきたからかもしれなくて,バランス云々も単なる今までとの違和感なのかもしれない。

あれ,lualatexja-presetでdeluxeをオプションに指定すると,いろいろなウェイトが使えるのか。試してみたらゴシックが軽いウェイトのものになってバランスがとれるようになった。やっぱりこれでいこう。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.10.01 (Fri)

再セットアップ

・いろいろ思うところやらしくじるところやらがあって,ノートPCの再セットアップ。ディレクトリ構成もこの際ということで整理した。okularのパッチは以前書いたものの行数を変えれば…いや,文字の表示位置がおかしいな。また直さなきゃだめか。もっと根本的にやりたいところだなあ。

・IMをどれにするのがいいのかも迷いどころ。fcitxが今風なのかなとは思うけど,何かで不都合があったような気がする…。でもその内容が思い出せない。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.09.13 (Mon)

LDAP

・生徒がメールを外からiPadで送受信できるようにする話。どうせパスワード忘れが頻発するので,moodleで作った授業用サイトに全員を登録して,パスワード変更を外部からでもできるようにする。こういったことができるのも,アカウント管理を自前でやっているからだと思う。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.09.10 (Fri)

Linux-Fake-Background-Wabcam

・前に送ったpatchをrevertする旨の連絡をいただいた。作者として本来こうしたいという方向と違ってしまうということらしい。そういうことであれば十分納得できる話だ。わざわざ連絡をくださったことが嬉しい。お礼に直し忘れたところを指摘するパッチを送っておいた。自分のところでやりたいことは運用でなんとかできる。

・ソフトウェアを公開で作るということは,こういう調整役をやるということでもあるということだ。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.07.22 (Thu)

クロマキー合成

・全高情研のオンデマンド発表の動画を撮るにあたって,クロマキー合成用の緑布を買ってみた。さっそくセットしてOBSのフィルタを使ってみたが,なんかいまいち。背景が抜けるのは抜けるんだけど,若干のノイズが残る。これって背景にも光あててきれいな緑にしないとうまくいかないのかな。

・そんなわけでこの背景を使うことは諦めて,いつもZoomで背景合成に使っているLinux-Fake-Background-Webcamで背景を緑一色の画像にして,それをOBSのクロマキーフィルタに通してみたらきれいに背景が抜けた。

・そのLinux-Fake-Background-Webcamがかなり変化していることにも気づいた。Pythonのスクリプト一発になったようなので扱いは楽になっているはずなのだが,自作の背景切り替えプログラムがうまく対応させられない。これまではSIGINTを送ると背景切り替えしていたのだが,pause/unpauseの切り替えになってunpauseのときに画像を切り替えるということになったようだ。さて,どうやって対応しようかな。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.05.08 (Sat)

小江戸らぐ

・「小江戸らぐ5月のオフな集まり」というオンラインの勉強会に参加させていただいた。「オフ」というところに突っ込んではいけない。半年ぶり2回目になるということで,okularに強引なパッチを書いた件について発表した。フォントに関する情報を真っ当に得る方法があるはずなのに…という話で,もっと調査の幅を広げたほうがいいのかもしれないという意見があった。私が調べたのはpopplerのコードそのものについてだが,そもそもKDEやQtではそのあたりをどのように処理しているのかというところから見ていくとよさげであろうと。気長にやるかな。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.04.25 (Sun)

vokoscreenNG

・解説動画を撮ろうと思って準備したが,vokoscreenNGが起動しない。仕方ないのでOBS Studioで録画したが,すっきりしない。

・ソースを追いかけても,QMediaPlayerのコンストラクタ内部で落ちているのでどうしようもない。ライブラリ周りをしばらく調べて,intel-media-va-driverパッケージをintel-media-va-driver-non-freeに変えたら動くことがわかった。といっても環境依存な話だけど。

・(追記)録画したのを見直してみたら,Gromit-mpxで画面に手書きした分が記録されていなかった。OBS Studioだとソースの管理がしっかりしてるから,そこに描画されていない以上当然のことではあるのだが。そんなわけなので,今週の早いうちにvokoscreenNGで撮り直すことにする。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.03.29 (Mon)

KB5001649

・職場で使ってもらっているプログラムが,印刷のときに「汎用的なGDI+エラー」とかいうやつで止まってしまう。IDisposalなオブジェクトのDisposeを忘れていた件はかなりきっちり対応したはずなのだが。Fontを作っては壊ししているのがいけないのかと思って,できるだけ使い回せるようにキャッシュしておくことにしてみたがダメ。Fontの生成は数回で済んでいるんだから,Dispose忘れがあっても大したことにはならないはず。

・さらに検索を続けると,KB5001649で対応しているものの,インストールに失敗したりする例があるとのこと。なんとか我慢して問題を起こしているPCにインストールしてみたら,あっけなく印刷ジョブが終了した。あの悩んだ時間を返してくれ。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.03.28 (Sun)

popplerでのworkaround

・Annot::layoutTextから呼んでいるCharCodeToUnicode::mapToCharCodeの中で,Cmapから対応する番号を探しているのだけど,これでU+0020やU+3000が番号を返さなくて困っている様子。そこで適当にU+0020には1,U+3000には633を返してやることで,とりあえず空白はそれっぽく表示できるようになった。633という数は…無理やり探しあてた。いろいろ妙なところはあるけどまあ自分で使う分にはいいか。備忘録的にパッチを残しておく。

--- poppler-0.71.0.orig/poppler/Annot.cc
+++ poppler-0.71.0/poppler/Annot.cc
@@ -2668,7 +2668,22 @@ static GfxFont * createAnnotDrawFont(XRe
   Dict *fontDict = new Dict(xref);
   fontDict->add("BaseFont", Object(objName, fontname));
   fontDict->add("Subtype", Object(objName, "Type0"));
-  fontDict->add("Encoding", Object(objName, "WinAnsiEncoding"));
+  fontDict->add("Encoding", Object(objName, "Identity-H"));
+  Dict *subfontDict = new Dict(xref);
+  subfontDict->add("Subtype", Object(objName, "CIDFontType0"));
+  Dict *cidSystemInfo = new Dict(xref);
+  cidSystemInfo->add("Registry", Object(new GooString("Adobe")));
+  cidSystemInfo->add("Ordering", Object(new GooString("Japan1")));
+  subfontDict->add("CIDSystemInfo", Object(cidSystemInfo));
+  Array *widthArray = new Array(xref);
+  widthArray->add(Object(0));
+  widthArray->add(Object(632));
+  widthArray->add(Object(500));
+  subfontDict->add("W",Object(widthArray));
+  subfontDict->add("DW", Object(1000));
+  Array *descArray = new Array(xref);
+  descArray->add(Object(subfontDict));
+  fontDict->add("DescendantFonts", Object(descArray));
 
   Dict *fontsDict = new Dict(xref);
   fontsDict->add(resourceName, Object(fontDict));
@@ -2769,7 +2784,7 @@ void AnnotFreeText::generateFreeTextAppe
 
   // Set font state
   appearBuilder.setDrawColor(da.getFontColor(), true);
-  appearBuilder.appendf ("BT 1 0 0 1 {0:.2f} {1:.2f} Tm\n", textmargin, height - textmargin - da.getFontPtSize() * font->getDescent());
+  appearBuilder.appendf ("BT 1 0 0 1 {0:.2f} {1:.2f} Tm\n", textmargin, height - 2 * textmargin - da.getFontPtSize() * font->getDescent());
   appearBuilder.setTextFont(da.getFontName(), da.getFontPtSize());
 
   int i = 0;
--- poppler-0.71.0.orig/poppler/CharCodeToUnicode.cc
+++ poppler-0.71.0/poppler/CharCodeToUnicode.cc
@@ -616,6 +616,8 @@ int CharCodeToUnicode::mapToCharCode(Uni
         return 1;
       }
     }
+    if(*u == 0x0020){*c = 1; return 1;}
+    if(*u == 0x3000){*c = 633; return 1;}
     *c = 'x';
   } else {
     int i, j;

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

古いページ 新しいページ