Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

LibreOffice Calcの印刷レイアウトずれの謎

なんでLibreOffice Calcで印刷レイアウトがずれるのだろう

ふとしたきっかけから、なんでLibreOffice Calcで印刷レイアウトがずれるのだろうと思い、手元にあったどこぞの行政機関の罫線・オートシェイプ・セル結合・いろいろな高さといった書式が付いたExcelファイルを手元のLibreOffice 25.2 CalcとMicrosoft Officeで開いて調べてみた。

犯人はどこだ

まずPDFプリントしてみる。

セルの大きさ、文字の大きさ、セルの高さは致命的なずれはなさそうだが、LibreOfficeは縦の余白がやけにでかい。

次に、PDFプリントの影響を除くためLibreOfficeで印刷してみる。セルの大きさ、文字の大きさ、セルの高さ、左からの距離は問題ないが縦がやけに空いている。

考えられるのはページスタイルないの縦に関連する以下のパラメーター。

  • ページの余白
  • ヘッダーの間隔
  • ヘッダーの高さ

である。ヘッダーの高さについてはヘッダーをつけるで明示的に間隔・高さを指定してMicrosoft Officeと合わせた。ページの余白の解釈もあっている。

となると上記のパラメーターの他に用紙の上の余白について内部で何らかのパラメーターを持っていてこれが加算されることで印刷時に致命的なずれが出ることが分かった。

ワークアラウンド

LibreOffice Calcで印刷するときはページの上余白とヘッダサイズを最小限の0.1mm、ヘッダの間隔を0mmまで減らすことでExcelと同じセルの行数まで印刷することができた。

セルの高さは若干LibreOffice Calcが高いが最悪マクロで補正すれば良さそうに見える。

が、余白を作るベースの要素が異なるので明らかにサイズが異なってしまっている。

また、ヘッダーが必要になるとアウトだろう。

これってCalcのバグか設定ミス?

ふと拡張機能を見ると日本の履歴書をWriterで書いているテンプレートが見つかった。こちらではプレビューしても謎の上の余白は存在しない。

ということはCalcのバグかCalc用用紙設定のミスということになる。

これがなんとかなったらExcelワープロ全盛の日本での評価ももっと高まるだろうにもったいないったらありゃしない。

どうすればよいのだろう(過去の文書との互換性も入るので)。

Logi M185の謎

さて、まずはこの写真から。

"3種類のM185"
3種類のM185

中央はロジクールMK270付属版のマウスM185、両端はハードオフで1個550円で購入したM185である。

この両端も片方は専用ドングル、片方は使えるかどうか分からないけどUnifiedマークが付いて、専用ドングルだけどオレンジの線が付いた物である。

今日は親の見舞いの前に時間があるので仙台に最近できたハードオフ八幡町店に行ってきて、そこで見つけた物である。

ロジクールMK270付属版のマウスM185のホイールがプラスチック部分の摩耗で回らなくなったので、ホイールだけ交換する部品取りのつもりだったのだが、両端の単体版M185はトップカバーにホイールが付いて、回転は取り付けたときの回転部で検知して中央ボタンはトップケースのしなりで押すという全く違う構造だった。

仕方ないので、MK270付属版のマウスM185のホイールは1.6mmの竹ひごをヤスリで削って通すように竹ひご補修を変えてみた。若干上スクロールは重いが、中央ボタンをしっかり押せるようになったのでまあ、使えると言えるだろう。

結果、このような小型マウスの山ができてしまった。

"小型マウスの山"
小型マウスの山

キーボード付属のBuffalo、唯一サイドボタンが付いたバッファロー、Pebble売り尽くしの時に買ったPebble(実はもう1個ある)、ボタン効かなくなったので廃棄かと思ったらエレクトロリッククリーナーで直ったPebble、そして2004年だかに買ったMicrosoft(この頃はLogiとMicrosoftが二強でホイールの回転の仕方で好みが分かれたり、様々なセンサーが出たりしたマウスの発達が著しい頃でした)のMobile Optical Mouseと小型マウスが9個、テレワークにはMX400、プライベートの自作機にはグルーガンで焦点を合わせた結果落ち着いてきたダイソーゲーミングマウス重り除去仕様とマウスだらけである。

けど小型マウスでサイドボタンがあるのはバッファローの1台だけなので使うソフトのマウスカスタマイズは必須である。

そして、俄然輝き出すVivald。マウスジェスチャー・ロッカーナビゲーションが内蔵なのでその分拡張機能のプロセスが減って省メモリかつプロセス切り替えがないので少ないコアでも優しいという物である。

これだけあればもう小型マウスは不要かな。後は仕事用のMX400&M500が壊れたらそのときサイドボタンがあってある程度サイズがあるサイドボタン付きマウスを買う程度かな。

VirtualBoxを試している

怪しい雲行き

タイトルの通り今まではVMWare Workstation Player派だったが、今月に入ってVirtualBoxを試している。

理由としては2つである。

  1. 仕事柄IT系ニュースはよく見ているが、BloadcomによるVMWare買収から製品群のライセンス変更などが多々あり将来性が不安になったこと
  2. 4KディスプレイではVMWare Workstation Playerには画面拡大がないのでWindows 8.1では自動的に仮想マシンのDPIを追従してくれるけど、Windows 2000/XPではこの手が使えないこと、Windows 7では仮想マシンのDPIを追従してくれるけどWindows 7で動かしたいソフトは96DPIを前提としているので拡大されると困るので、ホストソフト側で拡大してくれないかなということである。

VirtualBoxを使ってみて

正直な感想としては一長一短である。

良い点

  • VirtualBoxの側に画面拡大機能があるので、
  • 将来性という意味ではOracleにしては奇跡的に存続しているという点でVMWare Workstation Playerよりましそうなこと

悪い点

  • Windows XPは1プロセッサでセットアップしないとめちゃくちゃ遅いので、プロセスが多くなったときに不安
  • Windows XPでDirect 3Dを使えないので、昔のゲームを遊ぶのに向いてないこと(ちはやローリングで比較ができない!)
  • 150%拡大が汚い(リモートデスクトップの拡大はよくやっていると思う)

というわけで、どちらを使うとも決めきれない今日この頃。

MulSync Version 2.1.0

MulSync Version 2.1.0

フォントのダサさをなんとかしたかったという思いとそのついでに高DPI対応をまともにしたいということで今回のリリースとなったわけであるが、その辺のいきさつは別に書いていたりする。高DPI対応二時間がかかっている間、フォントをまともにした私家版はしばらく使っていたので、自分の中では実は新味がなかったり。けど出さないとその辺の思いが伝わらないのでようやく出せたという感じである。

tatsu-syo.hatenablog.jp

qiita.com

なので、書き終えての感想をここでは書く。

今やれることはやったかな

ここ1年MulSyncでは速度向上のための悪あがきやバグ修正、そして今回の目玉であるフォント美化と高DPI対応を行ったが、今の仮想PCとのファイルのやりとりやポータブル版を意識した.NET Framework 3.5/Windows Form版ではもうこれ以上は望めないのかなと正直なところ思っている。

同期ファイル比較のためいったんListに対象ファイル情報を全部入れて比較を行っているが、同期ファイル比較の際、Listだと境界チェックが入るという難点がある。Spanを使えば良いとのことだが、.NET Framework 4.xのC#7あたり以降用なので使えなかったり、.NETになって実行環境やコンパイラのチューンが進んだりと速度的なボトルネックの解消策は存在するが、今の動作環境では使えない。

また、高DPI対応にしても現状では.NET Framework 4.8の実装の関係上チェックボックスラジオボタンが切れることがあったりして、見た目的にも褒められる物ではなく、.NETに行くか、Windows Formやめるかするしかないというのが実情である。

どちらも.NET Framework 3.5/Windows Formの制約による物なので、そう考えると今の状態ではやれることはやったかなという感じである。

その辺については.NETとWPFでの書き直しを行ってはいるのだが、動いていてVectorで意外な位置にいる現行MulSyncのメンテナンスとMeiryo UIも大っきらい!!の改良でもう1年は経っているというのが実情である。とはいえバグがなければある程度落ち着いたので、書き直しを再開しようと思う。

ちなみに書き直しを行った物は別ソフトとして公開しようと考えている。.NETでは.NET Frameworkと違って同じバイナリで異なるフレームワークで動かすということができないことからポータブル版に向かないので、今のMulSyncも必要だからである。

ちなみに年単位での書き直しというと前にBookSyncでも短期滞在で数ヶ月コーディングができなかったため、約1年書き直しをしてたということがあったりするが18年前のことだったりするわけで、年取ったなとつくづく思う。

いつまでXPがいると思っているんだか

なんかWindows用ソフトって見た目いけてないよな

Windows用のソフトというと2010年代のAPIの迷走のせいか、定番にはどうしてもWindows XPの頃から使われたソフトが多いのだが、そういったソフトはどんな環境でも使えるよう、大抵MS UIゴシックかMS ゴシックを使っていることが多い印象がある。

そんな頭で自分も昨年あたりまではフォントには無頓着だったが、Meiryo UIも大っきらい!!のテストを行うため、各国語で表示されるのだが、ことごとく標準格の~UIフォントでも見た目が整っていてスマートに見える。その中で日本語版でMS UIゴシックに戻ってみるとあまりにも情けない感じがしてきた。

とはいえ、各国語版だとWindows Vista以降システムフォント格のフォントが変わらず、見た目も整っているのに対し、日本語だとVista/7はメイリオ(これはあり)、8.xはMeiryo UI(最低!)、10/11はYu Gothic UI(MS UIゴシックのアウトラインフォント版みたいでちょっと懐かしくは見えるが、見栄えしない)とバラバラでどう決めたら良いか分からないのでとりあえずMS UIゴシックということが多いのかなと思った。

そうしているといつまでもビットマップフォントは日本の恥と各国にも出ているMeiryo UIも大っきらい!!やってて思うようになって前回のMeiryo UIも大っきらい!!、今日2024/04/29にリリースしたMulSyncではどうせOS判別が必要になるんだからそのときにOSで使えるよさげなフォントを使うようにしてみた。

で、自分の場合は、このようにしてみた。

  1. BIZ UD Pゴシック(中国語系など丸ゴシックが多いMeiryo UIも大っきらい!!のみ)
  2. 游ゴシック Medium(10から加入、バランスが良く、濃さも十分、MulSyncはこっち)
  3. 游ゴシック(8.1から加入、バランスが良くが薄いのが難点)
  4. メイリオ(Vistaから加入、画面上の視認性は良いがWindows Vista/7の印象が強く、今では古く見えるのであえてWindows Vista/7用フォールバック)
  5. MS UIゴシック

こうやってUIフォントに今時のバランスの良いまともなフォントをつけるだけでも見た目が全然違っていけている上に標準フォントでも案外やれると思った次第である。

陸戦型ガンダム2機目

Windowsの画面に飽きる。そんな日もある

朝や夜忙しくて時間がないときなどはWindows自作機を起動するのも億劫なのと、Windowsの画面ばかりというのもつまらない。

というわけで、先週末と今週末ジャンクノートPCをいじっていたのだが、その顛末を書く。

やってもーた

先週末、富士通機2台のうちSSDに換装できたほうの液晶に線が入るようになった。そこで、赤い線の入ったHDDを換装するのに大規模なバラシを必要とするPCの老朽化したHDDをSSDに換装することに挑戦することにしてみた。

サイトを見ながら換装することには成功したのだが、グリス塗替えなどと欲張っているうちにUSB 2.0が破損したので今度は液晶を移動させようとしたがこれも失敗。見事に2台全滅である。

新たなるドナー

最近、テレワークして通勤時間の文を節約させてもらっているので10インチタブレットを使って技術書を読んでいるが、品質が悪いのと残業代が結構出たので売り払うことにした。その金で買ったのがacer Travelmate P453 第3世代Core i3 M型番ノートでメモリがついていてHDDも換装できる。単に電源ボタンとACアダプタがないだけかと思っていたら、これが食わせ物だった。

SATAが動かない

SATASSDを入れるとSSDを選ぶ上。認識されたSSDでもOSをインストールして起動しようとするとブートデバイスがないと出てしまう。Insyde H2O BIOS、曲者である。BIOSアップデートはできるが肝心のWindowsを入れることができない。 では、Debianではと思ったが、きちんと入れてもエラーとなるというものである。

幸いUSB 3.0 インターフェイスは動くのだがここにDebianを入れてもエラーとなる。rEFIndからは起動できるので、インストールの仕方が悪いのかとライブ起動のインストーラーではなく、ライブ起動でないインストーラーからインストールするとインストール後の通常起動でも起動した。

陸戦型ガンダム

赤い線の入ったHDDを換装するのに大規模なバラシを必要とする富士通PCでも採った手だが、SSDは雑に扱っても破損しないので、蓋の表に両面テープで固定してケーブルでつなぐようにした。バックパックをつけているようなので、さながら陸戦型ガンダムである。

ちなみに持ってないACアダプタは富士通のものと定格が同じだったので富士通のACアダプタにアルミホイルを入れて刺さるようにしてごまかした。

遊びは終わりか

もう4世代までの簡単にメモリを換装できるPCも出物がなくなっているのでもうこういうPCは出ないのかなと思う。なので、この手の遊び程度のジャンクいじりはできなくなるのかなとふと思う。

自作機があるので、ノートPCが必要となるのはタブレットでできないIMAPメールの完全消去程度である。しかもソフトはどんどん太るけどメモリを多めに積んだノートPCは高くつく。もうノートPCを買うことは当分ないのかなと思う。

Windowsがどんどん太る今こそメモリ・SSDを必要に応じて換装できるPCが必要なところだと思うのだが、腐った林檎の猿真似かそんなノートPCは出そうにない。省電力狙いならまだバラす余地のあるミニPCだろうか。

そう感じながらUbuntuもCPUの足切りを考えているというのでDebianKDEの組み合わせで本文を書く。DebianUbuntuより起動早いし。

Visual StudioとWindowsのSDK、組み合わせの謎(Meiryo UIも大っきらい!! Version 3.3.1)

あれ?おかしいぞ

先週出したMeiryo UIも大っきらい!! Version 3.3.0、普通にVisual Studio 2022のコンパイラーでビルドしたらMicrosoftアンチウイルスでウイルス扱いされるので慌ててVisual Studio 2008でコンパイルした物を出したらフォントをカスタマイズするとタイトルバーが狭くなってタイトルが表示されないというバグが出た。

自分はESET使っているので闇討ちになったのだがこれはまずい。で、調べてもVisual Studio 2022だったので気づかなかったのだが、2008でビルドするとでて、2022でビルドすると出ないというおかしな事になった。

DLL Hell forever

で、考えてみるとVisual Studio 2008ではWindows 7 SDKWindows 7互換のシステムDLLを呼んでいる。Visual Studio 2022ではWindows 10 SDK 10.10.19041.0をリンクしている。WindowsフォルダのWinSxSフォルダなんて見ているとあほみたいに同じようなファイルがあって、それぞれのVisual Studio,WindowsWindowsに至っては10以降の各版に対応するSDKが呼び出すDLLがあるのだが、どうもVisual Studio 2008/Windows 7相当のDLLで外れを引いたようだ。

第3のコンパイラ

Visual Studio 2022から呼び出せるWindows 10世代のコンパイラVisual Studio 2015/2017/2019/2022は前にもアウトになったことがあった。で、MulSyncの開発中にWindows 7の確認用にネットワークから隔離したWindows 7での実地修正用に入れていたVisual Studio 2012があったのを思いだした。(怒りの)Windows 8世代のライブラリーを呼び出すコンパイラーである。

なまじプロジェクトファイルがVisual Studio 2022と同じなのでかぶるの面倒と思いながらビルドして動かしてみるとこれが当たり。ちゃんとタイトルバーも出ているし、Microsoftにも怒られない。どうやらWindows 7 SDKから呼び出されるWindows 7互換システムファイル、Visual Studio 2022ランタイムライブラリと2つ外れを引いたようだ。

まさかここで超半端世代Visual Studio 2012が役に立つとは思わなかった。Visual Studionは世代的に、

という形でグループ分けされるのだがまさかの半端世代2012が役に立つとは思わなかった。

ちなみにExpress 2012 for Desktopなのはオフライン認証できる最後のVisual Studioだからという理由一点である。

こんなんじゃいつまで経っても最新のC++使えないなぁ。

ブサイクへの膝蹴り

見た目が悪いのはちょっとイラッとくる

Meiryo UIも大っきらい!!を開発していて、各国語版の確認をしているとイラッとくることがあった。

「他国のUIフォント皆まともじゃないか!」

Segoe UIはWindows Vistaから洗練を重ねたフォント、中国の簡体字、台湾の繁体字、ともにUIフォントはClearTypeとマッチしており、見栄え的にも良い。

一方日本語フォント。Yu Gothic UIはClearTypeを生かせてなくて貧相、Meiryo UIは論外ということである。ということで今まではMS UI Gothicを当ててきたが、さすがに日本語だけビットマップというのは恥ずかしくなってきた。

ということで、UIフォント?何それ?とばかりにある物でまともそうな物を当てることにした。

  • Windows 10後期/11:BIZ UDPゴシック(中華圏のUIフォントと案外似てる)
  • Windows 10前期(LTSCのような物が入る):游ゴシック Medium
  • Windows 8.1:游ゴシック
  • Windows 7:MS UIゴシック(メイリオだと誤解を生むので)

これで、だいぶ見栄えが良くなったという物である。

それにしてもUIフォントのダサさとOSごとのシステムフォントの一貫性のなさに振り回される日本、何考えてるんだろう中の人。

行き倒れのおじさんを拾う

つい血が騒ぐ

2024/1/14、父がどうしても行きたいというので竹駒神社どんと祭に行った帰り、渋滞を避けるのと名取のハードオフとその先の橋を紹介するために名取のハードオフに行くと、LIFEBOOK AがHDD、アダプタなしで転がっていた。USB 3.0はないからどう見てもSandyおじさんだなと思いながら、ここ数年、買い物運が悪い癖に血が騒いで買ってしまう。富士通の3世代i3M型番があるけどストレージ交換しやすいのでおもちゃにはなるだろう。2,200円。

続きを読む

もう一つのCPU足切り?に備える(Ubuntu)

もう一つのデバイス足切りだと?

ふと、

gihyo.jp

の記事を見て、「あ、うちのノートPCIvy Bridgeこと第3世代Core iシリーズかそれ以前しかないや。こいつらも手を打つか。」ということで、

tatsu-syo.hatenablog.jp

に続いて、中古&ジャンクノートPC軍団にも手を入れることにした。

伴走者NAS役ノート

AMD E-450な伴走者NAS役ノートについてはもうUbuntuな意味ないからDebian & LXDEで行くことにした。

/homeのドライブ・パーティションを分けていたので後は前Ubuntuでやってた手順を追って完了。これは前と同じ手順で済んだので案外楽勝。うん、これが源流という物か。Ubuntu由来のufwDebianに来てたので完璧。

富士通弁当箱ノート

次はHDD換装を諦めて外付けSSDで起動している富士通弁当箱な第3世代Core i3 M型番マシン。

最初は本家Ubuntuで2027年4月まで逃げて、その後はそのとき考えようと思った。

やるのはsudo apt install ubuntu-desktop一発。起動画面はXubuntu、起動するのはUbuntuという詐欺のようなマシンになった。

ソフトとかも引き継いでこれでいいかなと思ったが、問題が一つ。「狭い!」

最初はストレージやメモリなどの関係からXubuntuでやってたけどSSDとメモリ8GBが揃うとUbuntuでも問題自体はなくなったのだが、Gnomeのタスクバー兼ランチャーと上のステータス表示が常駐していると1366*768ノートにはどうにも狭苦しくてしょうがない。それに、UbuntuGnome以外のデスクトップ環境のサポートが3年なので下手するとハードウェアの寿命の方が勝ってしまう。

ということで、伴走者NAS役ノートで使った媒体でDebian & LXDE。USB WiFiドングルのドライバ事情が変わっていて戸惑った以外は時間の問題。UserLAndの時はリポジトリとしてのUbuntu & LXDEが一番やりやすかったが、生PCだとXfceの方が作り的に良かったかなと思ったり。メモリのアドバンテージもClam AV入れるとそれほどでもなくなるし。

スーパーサブLatitude

4,400円第3世代Core i5 M型番Latitudeの電源ボタンが使えるけどやや曲がってるのでスーパーサブなマシン。

こちらはフルHDなので画面狭い問題がないことから先ほどのXubuntu詐欺Ubuntuにしても問題ないのでそれで終わり。

ただ自分の会社ではリモートワークを場合によっては選択することができるのだが、使えそうなノートPCの2024年1月現在の仙台のノートPC相場から封印とする。

自分の会社ではリモートワークする際はUSB起動のLinuxでマシンを起動することになるのとUSB起動のLinuxはやや古いマシンでも起動できるよう古めのLinuxでバージョン固定されているので古めのマシンが必要になる。第9世代まではいけることが分かったがWindows 11が使える第8世代以降は高いので却下。Ryzen系は新しすぎて動かない可能性があるのでこれも却下。

となると第7世代までのフルHDが出るノートPCとなるのだが、仙台は中古マシンが高い。見た目のきれいさだけで値段つけてるんじゃないかというくらい高い。Windows 11に見捨てられても、低コスト省電力で第6/7世代ノート用CPUより性能が高いN100が出てもまだ値崩れしてないという始末。リモートワークはメインでないので中古狙いは中途半端すぎるので却下。それにこの頃からはU型番が主力なのでCPU性能的には電力に目をつぶるとか見劣りしないし。リモートワークは非常時および通勤時間稼ぎのオプション程度なので電力コスト差も広がらない。

仙台はジャンクも出回りが悪いので賭けるチャンスが低く、出てきても今の4,400円第三世代Core i5 M型番Latitudeより高かったり、性能が低かったりする上にリスクが高いので却下。

そんな仙台の中古&ジャンク事情なのでリモートワーク用に使っている電源ボタンがまともな方の同じマシンもジャンク由来な事を考慮して、壊れたときの予備としてフルHDの出る第3世代Core i5 M型番Latitudeは非常用として封印することにする。

リモートワーク用Latitude

普段暮らしは伴走者NAS役ノートと富士通弁当箱ノートやタブレット組、週末フリーソフト作家やるときと関連質問が来たときの対応にWindows自作機で済むのとIPv4 over IPv6もそれなりにCPUパワーが必要なので、リモートワーク用で壊れるまで固定。下手したらSSD外しても良いのかもしれない。

その他

AndroidXperia 10 IIだけど、タブレット組とバージョン1つ差(MS製品サポート1年差)しかないのと、最近Androidタブレットが充実しているのでタブレットは壊れたら買い換えの方が良いという気がしてしょうがない。となるとXperia 10 II封印する意味があるのかが分からなくなってきた。ミドルレンジ以下のスマホの進歩が停滞しているから新しい方を延命した方が良いかとさえ思ってくる。さて、どうするか。