自己顕示欲の開放治療所 erg, programming and something. 2023-09-17T01:02:37+09:00 hidden_alma Hatena::Blog hatenablog://blog/12921228815730137062 BOOX Tab Ultra Cのレビュー hatenablog://entry/820878482968061463 2023-09-17T01:02:37+09:00 2023-09-17T09:52:41+09:00 色々あって暫く使えなかったBOOX Tab Ultra Cが復活(復活ではない)したので、そろそろレビュー基感想記事を書きます。製品リンクはアフィリエイトですのでご了承ください。 感想であって主観的な内容であり、数値的裏付けはないのであしからず。 BOOX Tab Ultra C カラー電子ペーパー Android11 タブレットSKTSELECTAmazon 購入動機 先ず、私はBOOX Nova 3 Color (Nova Air Cより前のやつ)を使用していました。概ね満足していたものの、次の不満点があった。 フロントライトが寒色のみ(後のシリーズでは暖色にできる) ストレージが32GB… <p>色々あって暫く使えなかった<em>BOOX Tab Ultra C</em>が復活(復活ではない)したので、そろそろレビュー基感想記事を書きます。製品リンクは<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%A2%A5%D5%A5%A3%A5%EA%A5%A8%A5%A4%A5%C8">アフィリエイト</a>ですのでご了承ください。</p> <p>感想であって主観的な内容であり、数値的裏付けはないのであしからず。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B0C4FKMDDJ?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/31OjBUZikrL._SL500_.jpg" class="hatena-asin-detail-image" alt="BOOX Tab Ultra C カラー電子ペーパー Android11 タブレット" title="BOOX Tab Ultra C カラー電子ペーパー Android11 タブレット"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B0C4FKMDDJ?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">BOOX Tab Ultra C カラー電子ペーパー Android11 タブレット</a></p><ul class="hatena-asin-detail-meta"><li>SKTSELECT</li></ul><a href="https://www.amazon.co.jp/dp/B0C4FKMDDJ?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <h2 id="購入動機">購入動機</h2> <p>先ず、私はBOOX Nova 3 Color (Nova <a class="keyword" href="https://d.hatena.ne.jp/keyword/Air">Air</a> Cより前のやつ)を使用していました。概ね満足していたものの、次の不満点があった。</p> <ul> <li>フロントライトが寒色のみ(後のシリーズでは暖色にできる)</li> <li>ストレージが32GB <ul> <li>外部ストレージ(<a class="keyword" href="https://d.hatena.ne.jp/keyword/microSD">microSD</a>スロット)が無い</li> </ul> </li> </ul> <p>読書用<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%BF%A5%D6%A5%EC%A5%C3%A5%C8">タブレット</a>においてストレージは結構重要である。「常にインターネット上にコンテンツがあるから手元のストレージには今見る分だけダウンロードできればいい」というのは、自由に使える<a class="keyword" href="https://d.hatena.ne.jp/keyword/WiFi">WiFi</a>圏内で生活、あるいは3台目4台目の端末に回線契約を行えるような強者、または出先で読むかもしれない書籍を自分で把握できる超人の特権である<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A4%AB%A4%E9%A4%B7">からし</a>て。あと所持・購入<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%BD%F1%C0%D2">電子書籍</a>の総数が2桁の人間。</p> <p>早い話が、持ち運びたい<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%BD%F1%C0%D2">電子書籍</a>数がストレージを超過しそうになっていた。一時期はUSB-C接続で常に<a class="keyword" href="https://d.hatena.ne.jp/keyword/microSD">microSD</a>リーダを差しておくことも検討したが、接続部分の物理破損可能性と、接続中のバッテリー消費が激しいことから断念した。</p> <p>ちなみに、カラーの色味自体は足りないものの、写真系をこの端末で見ることはほぼ無かったので不満は無く、部屋の明かりが暖色でないときは気が滅入る程度。 曇りの日の景色の見え方と似ていてちょっと落ち込むのだ。</p> <h2 id="購入">購入</h2> <p>で、BOOX Tab Ultra Cが登場したので購入を決定した。ポイントは次の3点。</p> <ul> <li>カラー<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%A5%DA%A1%BC%A5%D1%A1%BC">電子ペーパー</a></li> <li>micdoSDスロット搭載</li> <li><a class="keyword" href="https://d.hatena.ne.jp/keyword/%B5%BB%C5%AC">技適</a></li> </ul> <p>micdoSDスロット搭載はBOOX Tab Ultra Cより前の段階で出始めていたので、「そろそろカラー端末でも」と思っていたら、Ultraで出た。サイズが明らかに大きく価格がUltraになるので躊躇したが結局購入。</p> <p>購入はSKTNETSHOPからにした。BOOXのショップと価格・輸送費を比べてそんなに差が無かったのが理由だったと思う。</p> <p><a href="https://sktnetshop.com/products/boox-tab-ultra-c">BOOX Tab Ultra C 10.3&#x30A4;&#x30F3;&#x30C1;&#x30AB;&#x30E9;&#x30FC;&#x96FB;&#x5B50;&#x30DA;&#x30FC;&#x30D1;&#x30FC;&#x30C7;&#x30A3;&#x30B9;&#x30D7;&#x30EC;&#x30A4;</a><cite class="hatena-citation"><a href="https://sktnetshop.com/products/boox-tab-ultra-c">sktnetshop.com</a></cite></p> <p>キーボード付きにした。折角なので。</p> <h2 id="ファーストインプレッション">ファーストインプレッション</h2> <p>購入から到着まではそんなに待たなかったはず。で、到着。</p> <p>前が7.8インチの端末だったので10.3インチあるとやはりデカいと感じる。多少厚みがあり、持ってみると持てなくはないが寝っころがるとちょっと辛いな、くらい。</p> <p>カバーとはマグネットで「ピタッ」とくっつくのが面白い。嵌め込むタイプに比べスタイリッシュだが、側面の防護が薄くなるのがちょっと気になるといえば気になった。</p> <h2 id="セットアップ">セットアップ</h2> <p><a class="keyword" href="https://d.hatena.ne.jp/keyword/Google">Google</a>アカウントは「Onyxアカウント」の項目の「その他のアカウント」から追加できる。BOOXはこの辺のUI、地味に段々に改良されていて偉い。</p> <p>システム言語を日本語に設定したとき、CJKフォントは初期ではNoto Sans CJK SCになっている。CJK共通漢字でSCが優先されるやつなので、JPに設定し直しておく。</p> <p>予め買っておいた<a class="keyword" href="https://d.hatena.ne.jp/keyword/microSD">microSD</a>をイン。現在の<a class="keyword" href="https://d.hatena.ne.jp/keyword/ThinkPad">ThinkPad</a>なんかもそうだが、外部ストレージとしての用途のためか、抜き差ししづらいスロット(小さな穴に細い何かを差して押し込むとスロットの枠が飛び出す)。付属でこれを差す用の器具が付属しているのは嬉しいポイント。<a class="keyword" href="https://d.hatena.ne.jp/keyword/SanDisk">SanDisk</a>の安めの512GBにした。1TBでも動きそうだったが価格と相性の冒険を避けた。</p> <h2 id="ウェブブラウジング">ウェブ<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%D6%A5%E9%A5%A6%A5%B8%A5%F3%A5%B0">ブラウジング</a></h2> <p>さて、起動してみての感想は表示の応答がかなり良いこと、それでも「カラー<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%A5%DA%A1%BC%A5%D1%A1%BC">電子ペーパー</a>としては」という但し書きは付くし、<a class="keyword" href="https://d.hatena.ne.jp/keyword/iPad">iPad</a>を使っている人に「明日からコレね」と渡せば不満は必至であるが。 しかし描画モードにもよるものの、ウェブ<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%D6%A5%E9%A5%A6%A5%B8%A5%F3%A5%B0">ブラウジング</a>とよくある邪悪広告程度の切り換え速度程度であれば割とストレスなく表示ができる。これは後日何人かから「これくらいの速度であれば日常的に使えるかも」と同意を得た。Tab UltraやTab Ultra Cの場合メモリが4GBあるというのもあるだろうが。</p> <h2 id="コミック小説技術書">コミック・小説・技術書</h2> <p>BOOXは<a class="keyword" href="https://d.hatena.ne.jp/keyword/Kindle">Kindle</a>(物理)と違って、汎用的な<a class="keyword" href="https://d.hatena.ne.jp/keyword/Android">Android</a>端末に近く、<a class="keyword" href="https://d.hatena.ne.jp/keyword/Google%20Play">Google Play</a>ストアや野良APKが使える。<a class="keyword" href="https://d.hatena.ne.jp/keyword/Kindle">Kindle</a>(物理)と違って。 まあ、<a class="keyword" href="https://d.hatena.ne.jp/keyword/Kindle">Kindle</a> <a class="keyword" href="https://d.hatena.ne.jp/keyword/OASIS">OASIS</a>の防滴は風呂で使えるのと壊れても価格的に諦めが(Tab Ultra Cと比較すれば)つくという<a class="keyword" href="https://d.hatena.ne.jp/keyword/Kindle">Kindle</a>勝利ポイントもある。でも物理<a class="keyword" href="https://d.hatena.ne.jp/keyword/Kindle">Kindle</a>のUIが使い易く改善されないので-10000000点。</p> <p>PDF・<a class="keyword" href="https://d.hatena.ne.jp/keyword/EPUB">EPUB</a>についてはインストール済みのNeo Readerがよくできているのでストレスはあまり溜まらない。嘘です。慣れただけで「どう操作すれば目的の表示が得られるか」を理解するのはちょっと分かりづらい。 ページの見開き表示について「1≡」「≡1」みたいなアイコンで察するのは厳しいね。慣れさえすれば、「PDFにマーカーを引いて後で見返す」なども熟せるし、付属のペンの動作もサポートしているのでよく使うアプリになる。</p> <p>汎用<a class="keyword" href="https://d.hatena.ne.jp/keyword/Android">Android</a>端末の特権といえば、複数の<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%BD%F1%C0%D2">電子書籍</a>ストアアプリの混在。ということでBOOK Walker、hontoそして<a class="keyword" href="https://d.hatena.ne.jp/keyword/Kindle">Kindle</a>をインストール。それぞれデータの保存先を外部ストレージにしておく。 ちなみに、アプリUIの文字が白いためか、良かれと思ってシステムで背景色を省略すると見えなくなり、<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>パーでメニュー操作することになったりするので、この辺の設定はいじらない方が良いかもしれない。 Book WalkerとhontoはNova 3 Colorではちょっとモッサリしていたが、Tab Ultra Cではちょっと応答が良い気がする。ページ捲りアニメーションを切ることも忘れずに。</p> <p>10.3インチ端末では、ほとんどの漫画が見開き表示で良い感じのサイズになる。Nova 3 Colorではマンガはページごとに表示していたのだが、ウェブトゥーンでもないマンガは4コママンガであっても見開きの方がやはり良い気がする。ウェブトゥーンでは<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%A5%DA%A1%BC%A5%D1%A1%BC">電子ペーパー</a>は応答性の問題があるだろうが。ここまで面白いウェブトゥーンエアプで書いています。</p> <p>ちなみに7.8インチでは、<a class="keyword" href="https://d.hatena.ne.jp/keyword/EPUB">EPUB</a>で物理A5版小説くらいなら、見開きで大体物理と同じ感覚で読めるくらい。10.3インチになると物理A5版は少々縦に余裕がありすぎる。</p> <p>技術書の読みやすさについては、日本語書籍は見開きで結構読みやすい。英語書籍は単ページでないとちょっと見づらく感じたけれど行間とかの慣れの差かな。</p> <h2 id="カラー解像度">カラー解像度</h2> <p>カラーの解像度について、Nova 3 Colorのときは100くらいだったと思うが、Tab Ultra Cでは150。「写真はやっぱりきついが、イラストは許容くらいになった」が周囲と一致した感想。まあちょっと寒々しく感じる色合いになってしまうこと自体は変わらない。Kaleidoの方針が応答性重視なので、これは合わないなら最初から別系統を買うべきだし、別系統も今現在非<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%A5%DA%A1%BC%A5%D1%A1%BC">電子ペーパー</a>に迫るほどではないので、初めてで試してみるならKaleidoの方がおすすめです。</p> <p>スキャンの粗いコミック<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%BD%F1%C0%D2">電子書籍</a>を読むときは、設定で黒の濃さを思いきって50以上上げてしまった方がよい。この辺の設定をアプリごとに細かく設定できたりという配慮については、BOOXが長じているポイントであると思う。</p> <h2 id="バッテリ">バッテリ</h2> <p>以前より大きい分持ちは良い気がする。とはいえ<a class="keyword" href="https://d.hatena.ne.jp/keyword/WiFi">WiFi</a>をオンにしているとそれなりに早いので、必要時以外は切っておく方がよいのは変わらない。</p> <h2 id="キーボードについて">キーボードについて</h2> <p>キーボード付きカバーを同時購入した。このカバーについては、ペンをしっかり固定できる点は通常のカバーより優れている。</p> <p>しかし結論としては「持ち歩くならコンパクトなBTキーボード」である。</p> <p>先ず、普段の非キーボードカバーより取り回しが悪い。カバー固定がマグネットで切り換え自体はスムーズなのだが、若干重いのと、キーボード部分がフラットで折り畳めないので開け閉めがちょっと大きくなる。これは<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%BF%A5%D6%A5%EC%A5%C3%A5%C8">タブレット</a>付属のキーボードあるあるであるが。</p> <p>次に、接点が思ったより不安定。このキーボードは物理接続で、ベストポジション以外では接続を認識しなかった。個体差があるかもしれない。</p> <p>そもそも<a class="keyword" href="https://d.hatena.ne.jp/keyword/Bluetooth">Bluetooth</a>対応なので、より使いたいキーボードがあるならそちらを持ち歩いた方がよい。電車内でラップトップ状態で使うことがないからかもしれないが、接点の不安定さを考えると使用機会があってもあまり魅力的でないかも。</p> <p>遠出のとき、私は<a class="keyword" href="https://d.hatena.ne.jp/keyword/FILCO">FILCO</a> MINILA-R Convertibleを持ち歩く。ノートPCで使うのがメインだが。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B08F9FSVLX?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/41kl+yuQXHL._SL500_.jpg" class="hatena-asin-detail-image" alt="ダイヤテック FILCO Majestouch MINILA-R Convertible ワイヤーキープラー付 日本語配列 静音軸(ピンク) マットブラック FFBTR66MPS/NMB-AKP" title="ダイヤテック FILCO Majestouch MINILA-R Convertible ワイヤーキープラー付 日本語配列 静音軸(ピンク) マットブラック FFBTR66MPS/NMB-AKP"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B08F9FSVLX?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">ダイヤテック FILCO Majestouch MINILA-R Convertible ワイヤーキープラー付 日本語配列 静音軸(ピンク) マットブラック FFBTR66MPS/NMB-AKP</a></p><ul class="hatena-asin-detail-meta"><li><a class="keyword" href="https://d.hatena.ne.jp/keyword/FILCO">FILCO</a></li></ul><a href="https://www.amazon.co.jp/dp/B08F9FSVLX?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <h2 id="IME"><a class="keyword" href="https://d.hatena.ne.jp/keyword/IME">IME</a></h2> <p>Onyxキーボード、ASOPキーボードが初期に入っている。</p> <p>が、 <a href="https://twitter.com/xiupos">https://twitter.com/xiupos</a>氏の<a class="keyword" href="https://d.hatena.ne.jp/keyword/Android">Android</a> <a class="keyword" href="https://d.hatena.ne.jp/keyword/SKK">SKK</a>多言語対応版を導入。<a class="keyword" href="https://d.hatena.ne.jp/keyword/SKK">SKK</a>以外の入力ではストレスを感じる体になってしまっているため。 <a class="keyword" href="https://d.hatena.ne.jp/keyword/Android">Android</a> 11で動作確認されており、大変助かりました。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fxiupos%2Fandroid-skk" title="GitHub - xiupos/android-skk: 多言語改変版 SKK for Android" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://github.com/xiupos/android-skk">github.com</a></cite></p> <p>「初回時に設定から辞書を解凍」について、「入力と言語」で「<a class="keyword" href="https://d.hatena.ne.jp/keyword/Android">Android</a> <a class="keyword" href="https://d.hatena.ne.jp/keyword/SKK">SKK</a>」右の「>」の箇所をタップで設定画面に入れるのだが、最初タッチエリアに入っていなかったのか中々この画面に入れず、他の<a class="keyword" href="https://d.hatena.ne.jp/keyword/Android">Android</a>端末で試してみて存在を確認してからやり直した。</p> <h2 id="指紋センサ">指紋センサ</h2> <p>認証させた<a class="keyword" href="https://d.hatena.ne.jp/keyword/Google">Google</a>アカウントがWorkspace Enterprise(個人だけど)ということもあり、PINは設定する。しかし「ちょっときららでも摂るか」というときに起動画面でポチポチ打つのは面倒だ。朗報。BOOX Tab Ultra Cには指紋センサがある。登録手順は難しいことは無いので省略。これは体験がかなり良い。</p> <h2 id="今回の画面破損について">今回の画面破損について</h2> <p>上の情報が大体発売時で、3週間ほど前に<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%A5%DA%A1%BC%A5%D1%A1%BC">電子ペーパー</a>部分を破損した。普段入れないバッグに入れて持ち運んだところ、外圧で破損したらしい。表面は傷無し。画面全体に黒い線が数箇所、画面端に幅1cm長さ6cm程度の虹色が出現した。本三冊やノートPCと同じ場所に一緒に持ち運ぶのが悪いのは、そう。で、なんやかやBOOX Tab Ultra Cが復活したので今回投稿した。</p> <h2 id="雑感">雑感</h2> <p>やはりサイズが大きいと圧力を受け易い面がその分拡大するので、事故可能性は上がるよね。持ち歩くサイズとしては7.8インチくらいまでが私には丁度良いのだなあと感じた。</p> <p>現在は8インチのBOOX Tab Mini Cが発売されている。サイズ的にはこれを新たに買うことも検討したのだが、<a class="keyword" href="https://d.hatena.ne.jp/keyword/microSD">microSD</a>非対応なのだ……。BOOX Pageの方は<a class="keyword" href="https://d.hatena.ne.jp/keyword/microSD">microSD</a>対応なのに。</p> <p>まあ、思ったよりも繊細だったので丁重に扱う必要はあるのだが、積み<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%BD%F1%C0%D2">電子書籍</a>が溜まってきていたら是非検討してほしい。そしてもっと低価格<a class="keyword" href="https://d.hatena.ne.jp/keyword/microSD">microSD</a>スロット搭載高機能カラー<a class="keyword" href="https://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%A5%DA%A1%BC%A5%D1%A1%BC">電子ペーパー</a>端末が普及してほしい。</p> hidden_alma DS923+にjpsonicを導入したときのメモ hatenablog://entry/820878482950934690 2023-07-18T23:09:12+09:00 2023-07-18T23:09:12+09:00 github.com github.com tesshu.com tesshu.com 基本的にはjpsonicのwikiのInstallationをなぞります。 ちょっと違ったポイントとして、synopkgctlの、というかDockerアプリ導入は「ContainerManager」だった。 最初、フォルダのパーミッションを間違えたせいか、ログイン後ユーザ設定を行ったところエラーで入れなくなった。Dockerドカドカ初心者マーク外れたことなし。 読み込み対象のフォルダの設定をInstallationとちょっと違ったものにしていたら、jpsonicを起動した後フォルダの読み込みが上手くいかなか… <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fjpsonic%2Fjpsonic%2Fwiki%2FInstallation" title="Installation" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://github.com/jpsonic/jpsonic/wiki/Installation">github.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fjpsonic%2Fjpsonic%2Ftree%2Fmaster%2Finstall%2Fdocker" title="jpsonic/install/docker at master · jpsonic/jpsonic" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://github.com/jpsonic/jpsonic/tree/master/install/docker">github.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftesshu.com%2Ffor-experts%2Fabout-docker" title="DockerでJpsonicを動かそう (v112.1.1) | tesshu.com" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://tesshu.com/for-experts/about-docker">tesshu.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftesshu.com%2Ffor-experts%2Fsupport-for-ds220plus" title="DS220+でJpsonicを動かす (2023) | tesshu.com" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://tesshu.com/for-experts/support-for-ds220plus">tesshu.com</a></cite></p> <p>基本的にはjpsonicの<a class="keyword" href="https://d.hatena.ne.jp/keyword/wiki">wiki</a>のInstallationをなぞります。</p> <ul> <li>ちょっと違ったポイントとして、<code>synopkgctl</code>の、というかDockerアプリ導入は「ContainerManager」だった。</li> <li>最初、フォルダの<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%D1%A1%BC%A5%DF%A5%C3%A5%B7%A5%E7%A5%F3">パーミッション</a>を間違えたせいか、ログイン後ユーザ設定を行ったところエラーで入れなくなった。Dockerドカドカ初心者マーク外れたことなし。</li> <li>読み込み対象のフォルダの設定をInstallationとちょっと違ったものにしていたら、jpsonicを起動した後フォルダの読み込みが上手くいかなかった。File Stationくんあたりが作っているであろう<code>#recycle</code>ファイルや<code>@aeDir</code>なるフォルダがダメそうだったので、読み込みの除外指定を行ったところ上手くいくようになった。</li> </ul> <p>再生時にデスクトップの<a class="keyword" href="https://d.hatena.ne.jp/keyword/Bluetooth">Bluetooth</a>接続スピーカから音が出ない音源があった。<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%CF%A5%A4%A5%EC%A5%BE">ハイレゾ</a>音源交じりで登録していたためで、対応している出力からに変更したらちゃんと聴こえた。</p> hidden_alma DMM.Makeで買ったスタンディングデスク用のキーボードスライダーを調達した hatenablog://entry/820878482940814130 2023-06-11T23:01:05+09:00 2023-06-11T23:02:28+09:00 記事中のAmazonリンクはアフィリエイトリンクになっています。 デスクの幅は60cm 自室での作業はDMM.Makeのスタンディングデスクを使っています。電動ではないものの高さ調節はスムーズに行えるので、立ったり座ったりと、腰と相談しながら作業ができるのでテレワークに重宝しています。会社のデスクもスタンディングデスクにできればいいのに。 DMM.make キャスター付き昇降デスク 600ブラック DKS-LDC600B 幅60×奥行52cm 移動式 無段階調整 在宅 テレワーク オフィスデスクDMM.makeAmazon この製品のつくりに不満はないのですが、ノートパソコンを置いて座って作業… <p>記事中の<a class="keyword" href="https://d.hatena.ne.jp/keyword/Amazon">Amazon</a>リンクは<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%A2%A5%D5%A5%A3%A5%EA%A5%A8%A5%A4%A5%C8">アフィリエイト</a>リンクになっています。</p> <h2 id="デスクの幅は60cm">デスクの幅は60cm</h2> <p>自室での作業はDMM.Makeのスタンディングデスクを使っています。電動ではないものの高さ調節はスムーズに行えるので、立ったり座ったりと、腰と相談しながら作業ができるのでテレワークに重宝しています。会社のデスクもスタンディングデスクにできればいいのに。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B08TQZDZG1?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/31gHTskXsrL._SL500_.jpg" class="hatena-asin-detail-image" alt="DMM.make キャスター付き昇降デスク 600ブラック DKS-LDC600B 幅60×奥行52cm 移動式 無段階調整 在宅 テレワーク オフィスデスク" title="DMM.make キャスター付き昇降デスク 600ブラック DKS-LDC600B 幅60×奥行52cm 移動式 無段階調整 在宅 テレワーク オフィスデスク"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B08TQZDZG1?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">DMM.make キャスター付き昇降デスク 600ブラック DKS-LDC600B 幅60×奥行52cm 移動式 無段階調整 在宅 テレワーク オフィスデスク</a></p><ul class="hatena-asin-detail-meta"><li>DMM.make</li></ul><a href="https://www.amazon.co.jp/dp/B08TQZDZG1?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>この製品のつくりに不満はないのですが、ノートパソコンを置いて座って作業していると首の角度などがちょっと健全ではない。</p> <p>そこで、デスクに一段低いキーボード置き場を設置しで首の角度を緩やかにすることを試みました。</p> <p>デスクの造り的に、天板に穴を空けるタイプはちょっと敬遠したいところ。クランプ式を探しました。</p> <p>キーボード置き場製品はそこそこあるのですが、「いいな」と思った製品の説明を見てみると、「フルキーボードも余裕で置ける!」のような売り文句のものが多い。</p> <p>ところで設置対象のデスクの横幅は60cm。これをオーバーするサイズではクランプをひっかけられません。</p> <p>惜しかったのはサンワダイレクトの100-KB009。横幅のサイズは62cmちょい。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B0B11RZT94?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/31YNjUY8U7L._SL500_.jpg" class="hatena-asin-detail-image" alt="サンワダイレクト キーボードスライダー 後付け 高さ調整 クランプ フルキーボード収納対応 Sサイズ (※設置サイズご確認ください) ブラック 100-KB009" title="サンワダイレクト キーボードスライダー 後付け 高さ調整 クランプ フルキーボード収納対応 Sサイズ (※設置サイズご確認ください) ブラック 100-KB009"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B0B11RZT94?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">サンワダイレクト キーボードスライダー 後付け 高さ調整 クランプ フルキーボード収納対応 Sサイズ (※設置サイズご確認ください) ブラック 100-KB009</a></p><ul class="hatena-asin-detail-meta"><li>サンワダイレクト</li></ul><a href="https://www.amazon.co.jp/dp/B0B11RZT94?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <h2 id="以前の試み">以前の試み</h2> <p>本記事以前の段階で、レール式を諦めて横に回転するタイプを試行しました。 購入した後、回転して仕舞おうとすると、デスクの脚と干渉することが発覚し、収納不可の状態で暫く運用していました。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B09DKHS7BF?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/41s92opdXJL._SL500_.jpg" class="hatena-asin-detail-image" alt="Klearlook キーボードスライダー 後付け キーボードトレイ 幅60cm*奥行25cm 360度回転対応 耐荷重15kg クランプ式 付けたまま収納可能 フルキーボード マウス収納 取り付け簡単 人間工学 (ブラック)" title="Klearlook キーボードスライダー 後付け キーボードトレイ 幅60cm*奥行25cm 360度回転対応 耐荷重15kg クランプ式 付けたまま収納可能 フルキーボード マウス収納 取り付け簡単 人間工学 (ブラック)"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B09DKHS7BF?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">Klearlook キーボードスライダー 後付け キーボードトレイ 幅60cm*奥行25cm 360度回転対応 耐荷重15kg クランプ式 付けたまま収納可能 フルキーボード マウス収納 取り付け簡単 人間工学 (ブラック)</a></p><ul class="hatena-asin-detail-meta"><li>Klearlook Maximized Clarity!</li></ul><a href="https://www.amazon.co.jp/dp/B09DKHS7BF?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>不満はありつつ使えないこともないという状態だったのですが、最近手前側に傾くようになってきました。クランプにあてがわれているクッション材が潰れてきたようです。 軸が一点であるし、収納できないまでもちょっと横に回してみたりなどしていたので、クランプを締め直したりしても問題は短期で再発することが予想されました。</p> <h2 id="今回">今回</h2> <h3 id="キーボードスライダー板無しを購入">キーボードスライダー(板無し)を購入</h3> <p>ということで今回は板を自分で調達するタイプのキーボードスライダー(クランプ式)を購入することとなりました。</p> <p>WiViVi キーボードスライダー</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B0BTLTXM4R?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/510eDUfV5WL._SL500_.jpg" class="hatena-asin-detail-image" alt="WiViVi キーボードスライダー 後付け デスク クランプ フルキーボード マウス収納対応 テーブルボードの設置幅が23cmを超える 説明書は付属していませんので インストール動画をご覧ください テーブルトップは含まれません デスク 拡張 キーボードトレイ デスク クランプ pc 金具" title="WiViVi キーボードスライダー 後付け デスク クランプ フルキーボード マウス収納対応 テーブルボードの設置幅が23cmを超える 説明書は付属していませんので インストール動画をご覧ください テーブルトップは含まれません デスク 拡張 キーボードトレイ デスク クランプ pc 金具"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B0BTLTXM4R?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">WiViVi キーボードスライダー 後付け デスク クランプ フルキーボード マウス収納対応 テーブルボードの設置幅が23cmを超える 説明書は付属していませんので インストール動画をご覧ください テーブルトップは含まれません デスク 拡張 キーボードトレイ デスク クランプ pc 金具</a></p><ul class="hatena-asin-detail-meta"><li>WiViVi</li></ul><a href="https://www.amazon.co.jp/dp/B0BTLTXM4R?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>「板用のネジは自分で用意してください」とあるわりに、ネジのサイズが書いていない。まあ最悪ボンドでもいいかということで注文。</p> <p>到着後、クランプ側のレールは特に問題無くネジで固定。</p> <h3 id="天板">天板</h3> <p>製品の耐荷重のカタログスペックがどこまで信用できるかは分からないものの、想定の奥行きを超える意味もありません。25cmになるようにします。</p> <p>そうそう、デスクの幅はフルで60cmですが、角が丸まっているので実際にクランプが設置できる幅はそれよりも狭くなります。 今回、天板のサイズは45cmとしました。</p> <p>板類の調達はハンズ。450mm*300mmの定型サイズMDF材があったので、300mmを250mmに一度カットしてもらって加工はほぼ完了。 渋い感じの木材にすることも考えましたが、でも安いスライダーとDMM.Makeのデスクに付けるやつだしなあ、と思うとそんなに悩むこともない。 板は950円くらい、加工が数十円で計1000円程度。</p> <p>ついでにレールとの合わせるようのネジを購入。トラスでタッピングネジ、板が15mm厚だったので10mmの長さ、径は4mm。径は目測で決めましたが、結果的に問題無く固定できました。</p> <h3 id="加工">加工</h3> <p>先ず簡易的な防水スプレーをかける。MDF材だしね。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">板、板です <a href="https://t.co/YqMHYATzIR">pic.twitter.com/YqMHYATzIR</a></p>&mdash; ひだるま@改稿中 (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1667791651916648448?ref_src=twsrc%5Etfw">2023年6月11日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hidden_alma/20230611/20230611223900.jpg" alt="&#x30B9;&#x30D7;&#x30EC;&#x30FC;&#x3092;&#x304B;&#x3051;&#x305F;MDF&#x6750;&#x306E;&#x5199;&#x771F;" width="1200" height="675" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>続いて下穴空け。スプレー前にやるべきかもしれないが、隠れる部分だし妥協。</p> <p>一般家庭にある、L字クランプと電動ドリルドライバとコン<a class="keyword" href="https://d.hatena.ne.jp/keyword/%A5%AF%A5%EA%A1%BC%A5%C8">クリート</a>ブロックに木片を接着したものを使いました。</p> <p>レールの上から電動ドリルドライバでネジを回す。養生テープが見つからなかったので適当なテープを使いましたが、そんなにタイトな穴でもなかったので、無くても大丈夫だったかもしれない。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="zxx" dir="ltr"><a href="https://t.co/qLyMNjQgEi">pic.twitter.com/qLyMNjQgEi</a></p>&mdash; ひだるま@改稿中 (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1667800627261628419?ref_src=twsrc%5Etfw">2023年6月11日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hidden_alma/20230611/20230611224854.jpg" alt="&#x677F;&#x306B;&#x30EC;&#x30FC;&#x30EB;&#x3092;&#x53D6;&#x308A;&#x4ED8;&#x3051;&#x308B;&#x5199;&#x771F;" width="675" height="1200" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p>レールをクランプ側に差し込んで完成です。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ジャーン<br>45cm幅キーボードスライダー <a href="https://t.co/YueWvoyKPR">pic.twitter.com/YueWvoyKPR</a></p>&mdash; ひだるま@改稿中 (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1667805173316747270?ref_src=twsrc%5Etfw">2023年6月11日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hidden_alma/20230611/20230611225037.jpg" alt="&#x5929;&#x677F;&#x3092;&#x53D6;&#x308A;&#x4ED8;&#x3051;&#x305F;&#x30AD;&#x30FC;&#x30DC;&#x30FC;&#x30C9;&#x30B9;&#x30E9;&#x30A4;&#x30C0;&#x30FC;&#x306E;&#x5199;&#x771F;" width="1200" height="675" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="設置">設置</h3> <p>レールが平行になっているかがドキドキポイントですが、無事成功。最初から規格サイズの板使っていると端が合わせ易くて好いですね。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">良き <a href="https://t.co/JJl16aW4vw">pic.twitter.com/JJl16aW4vw</a></p>&mdash; ひだるま@改稿中 (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1667892684403646464?ref_src=twsrc%5Etfw">2023年6月11日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>そもそもフルサイズのキーボード使ってなかったので。MINILA-R Compatibleはかなり使い勝手が良いし、自宅作業では青軸カチャカチャしても周囲を気にしなくて良いので良い。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B08F9FSVLX?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/41kl+yuQXHL._SL500_.jpg" class="hatena-asin-detail-image" alt="ダイヤテック FILCO Majestouch MINILA-R Convertible ワイヤーキープラー付 日本語配列 静音軸(ピンク) マットブラック FFBTR66MPS/NMB-AKP" title="ダイヤテック FILCO Majestouch MINILA-R Convertible ワイヤーキープラー付 日本語配列 静音軸(ピンク) マットブラック FFBTR66MPS/NMB-AKP"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B08F9FSVLX?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">ダイヤテック FILCO Majestouch MINILA-R Convertible ワイヤーキープラー付 日本語配列 静音軸(ピンク) マットブラック FFBTR66MPS/NMB-AKP</a></p><ul class="hatena-asin-detail-meta"><li><a class="keyword" href="https://d.hatena.ne.jp/keyword/FILCO">FILCO</a></li></ul><a href="https://www.amazon.co.jp/dp/B08F9FSVLX?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <h2 id="まとめ">まとめ</h2> <ul> <li>それなりに体重をかけるクランプ式グッズは二点支えにしよう</li> <li>DKS-LDC600に付けられるキーボードスライダーは天板幅45cmくらいで結構ギリギリ</li> <li>今回の総材料費 4000円弱くらい(一般家庭にある電動ドリルドライバその他の費用は除く)</li> </ul> hidden_alma 技術系ラノベについて益体もなく考えていること hatenablog://entry/4207112889947912159 2022-12-24T23:58:21+09:00 2022-12-25T00:04:12+09:00 この記事はWORDIAN ADVENT CALENDAR 2022の24日目の記事です。 adventar.org 最早クリスマスイブの夜の過ごし方について自虐する年でもなくなった。お気に入りの蜂蜜酒メーカの蜂蜜酒を4種類ほど飲みながら書いている。 ホーム - WICKED WAY MEAD 今年のアドベントカレンダーではカクヨム小説投稿をしている。4日分埋めているタイミングでこの記事を書いている想定だった。しかし上手くいっていないのもそれはそれで想定通りでもある。 先ず、技術系ラノベとは何か。本記事では「技術紹介を軸とした創作小説」を技術系ラノベと称している。別にゴリゴリに技術解説をしている… <p>この記事はWORDIAN ADVENT CALENDAR 2022の24日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F8236" title="WORDIAN Advent Calendar 2022 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/8236">adventar.org</a></cite></p> <p>最早クリスマスイブの夜の過ごし方について自虐する年でもなくなった。お気に入りの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CB%AA%CC%AA%BC%F2">蜂蜜酒</a>メーカの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CB%AA%CC%AA%BC%F2">蜂蜜酒</a>を4種類ほど飲みながら書いている。</p> <p><a href="https://www.wickedwaymead.com/">&#x30DB;&#x30FC;&#x30E0; - WICKED WAY MEAD</a></p> <p>今年の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>では<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AB%A5%AF%A5%E8%A5%E0">カクヨム</a>小説投稿をしている。4日分埋めているタイミングでこの記事を書いている想定だった。しかし上手くいっていないのもそれはそれで想定通りでもある。</p> <p>先ず、<em>技術系<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%CE%A5%D9">ラノベ</a></em>とは何か。本記事では「技術紹介を軸とした創作小説」を技術系<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%CE%A5%D9">ラノベ</a>と称している。別にゴリゴリに技術解説をしている必要は無い。私に、「学習目的や興味を惹くにあたり、リファレンスやガイドが適さないケースで合致する存在が欲しい」という欲求が存在し、類似したコンセプトであろう創作について徒然なるなんちゃらを書くというだけの話である。主観がかなり混じるし評価について公正とは言えないので、ネガティブな評価の作品についてはタイトルの言及などは避ける。</p> <p>自分の書いているものについて。これは出した後に無限に修正して完成しないところまで含めて<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%B4%CD%FD%C5%AA">心理的</a>な安心感の源であり、仮にキッチリした内容になるまで表に出さない腹積もりであればあと3年は寝かせている。</p> <p>この箇所のサマリは次であるので、暫く読み飛ばしても構わない。</p> <ul> <li>技術的に誠実であることを制作段階で意識しすぎると <ul> <li>執筆中に資料に当たる頻度が高く一息に書きづらい</li> <li>会話の流れが組み立てづらい</li> <li>使用する思考領域が業務と被って疲弊をひきずる</li> </ul> </li> </ul> <p>アドカレ開始前に3日分くらいはストックを作ったが、およそ17日で破綻した。これは唯々文章が下手という要素以外に、技術系の内容を指向しているということも無関係とは言えないといってもいいんじゃないだろうか。 つまり<strong>技術的に明確に虚偽であることは書かないようにする、誤りがあれば修正していくことを企図しておく</strong>ことが期待される。</p> <p>実際、書いている最中に「あれ、これは嘘では?」と思い資料を読みにいって時間を消費するといったことがあった。<strong>最初から使う内容について精査し取材し整理しておく</strong>ということが職業作家のスキルとして大事だろうことは容易に想像できる。作家じゃなくてもライティング・オー<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%EA%A5%F3">サリン</a>グ・エディットをするなら行って然るべきではあるとは思うが。今回の場合、プロットとメモを用意していても自分の書いた文章への羞恥でまるで読もうとしなかった。自分の文章を直ぐに読むことができるというのは才能であると、つくづく思う。</p> <p>会話劇を中心にすることにして書いている。後でまた言及するが、これは、創作の色を強めるのであれば「会話の流れ」を綺麗に繋ぎつつ望む方向に誘導することができなければ、「やたら理解の早く体系立った推論を行える初学者」などが誕生し、読者の没入を阻害することは明白であるからリスキーである。実際私も早々に破綻した。</p> <p>この場合の望む方向とは技術内容についてであるが、実際の技術教導で一言ごとに「なるほど」とか言われたら結構ストレスを感じそうだ。</p> <p>私は文章を書くとき思考能力が著しく下がる傾向がある。対話的な会話よりはマシであるが。それはさておき、技術的内容を含んだコミュニケーションというのは、平日の業務領域と重なるものである。無論、業務中に執筆などできないので終業後の時間を充てるわけだが、既に業務によって疲弊した領域を鞭打って作業させるのは疲れるのだと実感した。勿論、別に業務と一切関係無いファンタ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B8%A1%BC">ジー</a>創作なら楽勝だったとかいう話ではない。ただ、書くという作業にリフレッシュ効果があまりに無かった。</p> <hr /> <p>とまあ個人的話は置いておいて、それを行うに至ったバックボーンが本題である。「お前もできてないじゃないか」というのはまあそれはそう。「やっぱり難しいね」というのが結論なので。</p> <p>同人誌イベントや商業作品で技術<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%CE%A5%D9">ラノベ</a>の方向性を持つ作品は時折チェックしているのだが、多くの場合、こんな風に感じている。ここでは本題前の寸劇マンガが入るもの、会話ボックス(キャ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%AF">ラク</a>タのバストアップ画像とセリフをセットに表示するものとする)を含む。</p> <p>この点、上手くいっていると思うのは『こうしす!』シリーズだ。インジェクションの例示に小説文章を使ったりといった、初学者が想像しやすい置き換えや、インシデントと対応の流れと結果のフィクションの混ぜ具合などが良くできていると思う。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B082WXXTWY?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/51sAlBmVbCL._SL500_.jpg" class="hatena-asin-detail-image" alt="こうしす!社内SE 祝園アカネの情報セキュリティ事件簿" title="こうしす!社内SE 祝園アカネの情報セキュリティ事件簿"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B082WXXTWY?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">こうしす!社内SE 祝園アカネの情報セキュリティ事件簿</a></p><ul class="hatena-asin-detail-meta"><li><span class="hatena-asin-detail-label">作者:</span><a href="http://d.hatena.ne.jp/keyword/%B0%E6%C6%F3%20%A4%AB%A4%B1%A4%EB" class="keyword">井二 かける</a></li><li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%E6%C6%B1%CB%BC%D2">翔泳社</a></li></ul><a href="https://www.amazon.co.jp/dp/B082WXXTWY?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <ul> <li>説明的に過ぎて創作としてのシュガーコートが無意味</li> <li>情報の密度がバラバラ</li> </ul> <p>前者について。セキュリティに纏わるものであれば、起きる障害が典型的で、対処についてもそう。話が進む中でキャ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%AF">ラク</a>タの個性が消失していく。話・キャ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%AF">ラク</a>タの個性を出すために技術的な誠実さを削るのは本意ではいので、バランスを取るのは難しい。技術的説明をそのままストーリーに導入してしまうと登場人物の個性をないがしろにしかねない。それを行うのが自然なキャ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%AF">ラク</a>タ像というのもあるが、新入社員、新入生などのキャ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%AF">ラク</a>タをある技術解説のストーリーの中で成長させるのは鉄板だが、「学習した内容を体系的知識として昇華する」までを描写するなどというのは困難である。困難であると思う。でなければ「やたら理解の早く体系立った推論を行える初学者」が頻繁に登場する尤もらしい他の仮説が欲しい。</p> <p>後者について。技術的内容は密度が濃いという想定を置いている。情報の密度というのは、テキストである方が濃いと決められるものでもないが、薄くなりがちなものもある。「マンガ・会話ボックスで行われるただの会話」だ。会話ボックスについていえば「ただの相槌」はかなり薄いと思っている。フローの中で急に会話ボックスを止めるというのも難しいが、「へぇー」を言わせるために顔画像とセリフの枠線で3行持っていかれたりするのは辛い。適材適所で</p> <p>先日買った『ちょうぜつソフトウェア設計入門』(田中ひさてる, <a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%BB%BD%D1%C9%BE%CF%C0%BC%D2">技術評論社</a>)のマンガ部分は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%A4%A5%AD%A5%E3%A5%C3%A5%C1">アイキャッチ</a>と導入部分として丁度良い密度になっていると感じた。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B0BNH1J2W2?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/51hWll9NSML._SL500_.jpg" class="hatena-asin-detail-image" alt="ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用" title="ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B0BNH1J2W2?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用</a></p><ul class="hatena-asin-detail-meta"><li><span class="hatena-asin-detail-label">作者:</span><a href="http://d.hatena.ne.jp/keyword/%C5%C4%C3%E6%20%A4%D2%A4%B5%A4%C6%A4%EB" class="keyword">田中 ひさてる</a></li><li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%BB%BD%D1%C9%BE%CF%C0%BC%D2">技術評論社</a></li></ul><a href="https://www.amazon.co.jp/dp/B0BNH1J2W2?tag=laughingandg-22&amp;linkCode=osi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>また、ストーリー展開が面白すぎて技術解説に割いている箇所が頭に入らないというケースもあり得る。技術系というほどでもないが、中学時代、和訳がセットになっている英語の本で勉強しようとしたとき、続きが気になりすぎて途中から英語を読むのを止めて和訳の箇所のみを読みきり満足して辞めてしまった、ということがあった。理解に時間を要する箇所という点では技術<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%CE%A5%D9">ラノベ</a>の技術部分というのは同じ問題を孕む。技術部分の情報密度が高すぎる状態、ともいえるだろう。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%CE%A5%D9%C9%F4">ラノベ部</a>分の密度が薄いというより、この場合ストーリーによるフローが良すぎると捉えてほしい。 この密度を下げるのは、技術力文章力ともにかなり力量の要る作業であることは想像に難くない。となるとストーリーの進みをゆったりとする方向が考えられる。この点で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%CE%A5%AE">シノギ</a>を削っている最前線はソシャゲのシナリオ部分ではなかろうか。</p> <p>とりあえず、年末年始で25日分までは書こう。</p> hidden_alma 2022年末のオーディオ環境 hatenablog://entry/4207112889946512475 2022-12-19T23:17:46+09:00 2022-12-23T21:14:36+09:00 このブログの最後の記事が2021年の音楽環境の話だったので、今どうなっているかの話。 この記事はWORDIAN ADVENT CALENDAR 2022 23日目の記事です。 別のアドカレが終わってないんだが。 DAP 去年DX160 ver.2020買ったって書いていたじゃないですか。 DX170買いました。 iBasso Audio DX170 アイバッソ Android11 RK3566 Cirruslogic CS43131 Dual FPGA Bluetooth5.0 LDAC MQA8x 3.5mm 4.4mm 同軸デジタル【国内正規品】 (ブラック)iBassoAmazon DX… <p>このブログの最後の記事が2021年の音楽環境の話だったので、今どうなっているかの話。</p> <p>この記事はWORDIAN ADVENT CALENDAR 2022 23日目の記事です。</p> <p>別のアドカレが終わってないんだが。</p> <h2 id="DAP"><a class="keyword" href="http://d.hatena.ne.jp/keyword/DAP">DAP</a></h2> <p>去年DX160 ver.2020買ったって書いていたじゃないですか。 <em>DX170</em>買いました。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B0B88F75B3?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/41sT1UL0frL._SL500_.jpg" class="hatena-asin-detail-image" alt="iBasso Audio DX170 アイバッソ Android11 RK3566 Cirruslogic CS43131 Dual FPGA Bluetooth5.0 LDAC MQA8x 3.5mm 4.4mm 同軸デジタル【国内正規品】 (ブラック)" title="iBasso Audio DX170 アイバッソ Android11 RK3566 Cirruslogic CS43131 Dual FPGA Bluetooth5.0 LDAC MQA8x 3.5mm 4.4mm 同軸デジタル【国内正規品】 (ブラック)"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B0B88F75B3?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">iBasso Audio DX170 アイバッソ Android11 RK3566 Cirruslogic CS43131 Dual FPGA Bluetooth5.0 LDAC MQA8x 3.5mm 4.4mm 同軸デジタル【国内正規品】 (ブラック)</a></p><ul class="hatena-asin-detail-meta"><li>iBasso</li></ul><a href="https://www.amazon.co.jp/dp/B0B88F75B3?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>DX160(ver.2020) からDX170ということで、diffで示すのが良いのかな。</p> <p>製品サイクル的に長期のセキュリティ保証が厳しいインターネット接続端末に対する解のうち、最も簡単なものは<em>製品サイクルに従って買い換える</em>です。 ということで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Android">Android</a>のバージョン。これが8.1から11になりました。他の中華<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAP">DAP</a>が10だったりする中、<strong>11</strong>です。これは嬉しい。 より高級な<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAP">DAP</a>にしたからといってセキュリティ周りのサポートが良くなるわけでないのが<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAP">DAP</a>業界。メーカーは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Android">Android</a>にカスタムを施していることを喧伝するが、カスタムによってどうにもならなくなったOSと心中したくはないんだけどなあ。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/BlueTooth">BlueTooth</a>について。DX160 ver. 2020のBTは貧弱で、街中で割と頻繁に不安定になっていた箇所の改善を期待していたのだけれど、不安定さはDX170でもあまり変化無し。</p> <p>全体的な動作が改善しています。DX160 ver 2020はモッサリ感があってエントリーモデルっぽさを感じていたんですが、DX170では体感的にはかなりキビキビ動きます。他の方のDX170レビューを見たりするとモッサリしているという感想が結構ありますが、DX160と比べるとかなり応答性は上がっていると感じます。</p> <p>UIについて。上部をスワイプすると出てくる簡易メニューの表示がちょっと変わりました。</p> <ul> <li>ゲインのHIGH/LOW切り換えが表示されるようになりました。いや、前からあったような気もしてきた。</li> <li>デジタルフィルターの表示が「D1」「D2」「D3」「D4」「D5」に変わりました。これは「Fast Roll Off」「Short Delay Slow Roll Off」「Short Delay Fast Roll Off」「Slow Roll Off」「NOS」だったもので、Mango Playerだとそちらの名前で表示されます。メニュー項目数が増えたことによる変更かな、なんて思っていますが、これは数字じゃよく分からんので止めてほしい。</li> </ul> <p>物理的には電源ボタンがボリュームノブの押し込みに変更になりました。DX160 ver.2020の電源ボタンは微妙に固くてストレスになっていたので改善点だと思います。</p> <p>個体差かもしれないけれど、以前はCOAXIALの接続位置が完全に押し込むとずれていて微妙だったのが今回は大丈夫になっていた。</p> <h2 id="DACアンプ"><a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>+アンプ</h2> <p>以前、というかつい先日までは<a class="keyword" href="http://d.hatena.ne.jp/keyword/DENON">DENON</a> PMA-60を使っていた。これはデザインも可愛くて使い勝手も良いものなのだけれど、一体で<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>からスピーカー出力までいってしまうので、ゴチャゴチャ経路を入れ換えて游ぶなどの使い方には向かなかった。プリアウトが出ていれば続投も考えられたけれど、サブ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A1%BC%A5%D5%A5%A1%A1%BC">ウーファー</a>用の口しか無いのだった。 つまり「そろそろ何か買い換えたい」という欲求が先に来ていたわけです。消費時代が全部悪い。</p> <p>合わせるスピーカーは暫定でDALI SPEKTOR1。暫定というのは自作フルレンジに変更予定があるので。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B07J1CW7G1?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/41yLotkyoxL._SL500_.jpg" class="hatena-asin-detail-image" alt="DALI ブックシェルフ スピーカー [ペア] ウォルナット SPEKTOR1" title="DALI ブックシェルフ スピーカー [ペア] ウォルナット SPEKTOR1"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B07J1CW7G1?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">DALI ブックシェルフ スピーカー [ペア] ウォルナット SPEKTOR1</a></p><ul class="hatena-asin-detail-meta"><li>DALI(ダリ)</li></ul><a href="https://www.amazon.co.jp/dp/B07J1CW7G1?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>鳴らす部屋は8畳無い程度なので、めちゃくちゃ高出力である必要はありません。まあそれはそれとしてデカいスピーカーからデカい音(Not Equal 大音量)が聴きたくて自作するんですが。</p> <p>扨、気になっていたアンプがあります。その名は<em><a class="keyword" href="http://d.hatena.ne.jp/keyword/FOSTEX">FOSTEX</a> AP-25</em>。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B0B2W6362D?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/31CCcJlOTGL._SL500_.jpg" class="hatena-asin-detail-image" alt="Fostex パーソナルアンプ AP25" title="Fostex パーソナルアンプ AP25"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B0B2W6362D?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">Fostex パーソナルアンプ AP25</a></p><ul class="hatena-asin-detail-meta"><li><a class="keyword" href="http://d.hatena.ne.jp/keyword/FOSTEX">FOSTEX</a></li></ul><a href="https://www.amazon.co.jp/dp/B0B2W6362D?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>何故気になったのかといえば、スピーカー自作のために漁っていたら紹介記事を目にしたから。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fnote.com%2Fmusicbird%2Fn%2Fn64d5450b9b54" title="第327回/アンプ・スリム化への決定版!?[炭山アキラ]|コラム「ミュージックバードってオーディオだ!」|note" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://note.com/musicbird/n/n64d5450b9b54">note.com</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.xperience.jp%2Fnews%2F20220523%2F" title="Fostex AP25 でフルレンジ+ホーンツィーターをデュアルモノで鳴らそう | Speaker Factory | Xperience" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.xperience.jp/news/20220523/">www.xperience.jp</a></cite></p> <p>ブログ記事による宣伝にそれなりに弱いことがバレてしまいました。特に気になったのは次の箇所です。</p> <ul> <li>使い方として、「デュアルモノラルアンプ」としても動作が可能であり、フルレンジ左右を1つずつ使って鳴らすというもの</li> <li>バナナプラグ対応の出力口</li> </ul> <p>しかしいざ買い換えとなると躊躇するもの。 悶々と過ごすある日。整体の兄ちゃんとの会話。</p> <p>「ヨドバシのポイントそれなりに溜まってて。リリースガンか<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C4%E3%BC%FE%C7%C8">低周波</a>治療器でも買おうかなって思うんですけどいいのありますかねえ」</p> <p>「あー、どうなんですかねえ」</p> <p>「スピーカー作る弾みにするために、アンプ買っちゃうのも良いかも、なんて思ったりもするんですけれど」</p> <p>「!それいいじゃないですか! 興味あるんで出来たら見せてください!」</p> <p>そんな勢いでポチッとな。<strong>なお、ポイント適用は忘れていた</strong>。</p> <p>AP-25は<a class="keyword" href="http://d.hatena.ne.jp/keyword/RCA">RCA</a>入力でスピーカー出力。前段は基本的に<a class="keyword" href="http://d.hatena.ne.jp/keyword/RCA">RCA</a>で吐く必要があります。<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>を手配しなければなりません。</p> <p>AP-25だってオーディオ的には安いモデルといってもまあまあのお値段。将来的なグレードアップはあるにしても、「現在の用途をカバー可能でそれなりに安価」を探していました。 AP-25に目を向けたのが6月頃。で、今年9月に出たNFJ <a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>-X6J+、そして10月に<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>-X6J+W。<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>-X6J+WはNFJ <a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>-X6J+の入力に加え<a class="keyword" href="http://d.hatena.ne.jp/keyword/BlueTooth">BlueTooth</a> 5.0に対応しています。コレだよコレ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B8%BD%C2%E5%A4%C3%BB%D2">現代っ子</a>なので、BTは無いとちょっとずつストレスが溜まるので決め手でした。ここを気にしなければもうちょい頑張ってToppingとかにしてたかも。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/B0BGWW566G?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/31mMnpzy0DL._SL500_.jpg" class="hatena-asin-detail-image" alt="FX-AUDIO- DAC-X6J+W[ブラック]高性能ヘッドフォンアンプ&プリアンプ搭載Bluetooth 対応 ハイレゾDAC 光 オプティカル 同軸 デジタル USB 最大24bit 192kHz" title="FX-AUDIO- DAC-X6J+W[ブラック]高性能ヘッドフォンアンプ&プリアンプ搭載Bluetooth 対応 ハイレゾDAC 光 オプティカル 同軸 デジタル USB 最大24bit 192kHz"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/B0BGWW566G?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">FX-AUDIO- DAC-X6J+W[ブラック]高性能ヘッドフォンアンプ&プリアンプ搭載Bluetooth 対応 ハイレゾDAC 光 オプティカル 同軸 デジタル USB 最大24bit 192kHz</a></p><ul class="hatena-asin-detail-meta"><li>FX-AUDIO-</li></ul><a href="https://www.amazon.co.jp/dp/B0BGWW566G?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>そんなワケでコイズミ無線の店舗にて<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>-X6J+WとDCアダプタ12Vを購入。 以前にサブバッフル板とか鬼爪ナット買ったりしてます。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.koizumi-musen.com%2F" title="コイズミ無線~スピーカーをデザインする~" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://www.koizumi-musen.com/">www.koizumi-musen.com</a></cite></p> <p>そしてヨドバシポイントを使い電源タップ購入。PMA-60は1機だったので何も考えずAV機器全部同じ電源タップから取っていたのだけれど、オーディオ周りの要電源機材が増えるので。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">my new gear... <a href="https://t.co/wVZWNxioOw">pic.twitter.com/wVZWNxioOw</a></p>&mdash; ひだるま@改稿中 (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1604433654108672000?ref_src=twsrc%5Etfw">2022年12月18日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>ということでね。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">新システム(仮) <a href="https://t.co/q4w0b1jmO1">pic.twitter.com/q4w0b1jmO1</a></p>&mdash; ひだるま@改稿中 (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1604815108861218816?ref_src=twsrc%5Etfw">2022年12月19日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>一番上の火が入っていない<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%BF%B6%F5%B4%C9">真空管</a>のやつはStereo Mookの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%BF%B6%F5%B4%C9">真空管</a>グラフィック<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%B3%A5%E9%A5%A4%A5%B6%A1%BC">イコライザー</a>ですね。2022年8月に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D0%A5%A4%A5%D0%A5%EB">リバイバル</a>付録になっていたらしいのは知らなかった。可愛い<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%BF%B6%F5%B4%C9">真空管</a>と可愛いグライコが一緒になって可愛くないわけがないんですね。24V喰うところはあまり可愛くないですが。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/dp/4276963486?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="hatena-asin-detail-image-link" target="_blank" rel="noopener"><img src="https://m.media-amazon.com/images/I/51ghcCUQ+BL._SL500_.jpg" class="hatena-asin-detail-image" alt="絶滅危惧種からの生還 真空管グラフィックイコライザー・キットで音を創る: 特別付録:ラックスマン製真空管グラフィックイコライザー・キット (ONTOMO MOOK)" title="絶滅危惧種からの生還 真空管グラフィックイコライザー・キットで音を創る: 特別付録:ラックスマン製真空管グラフィックイコライザー・キット (ONTOMO MOOK)"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/dp/4276963486?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_blank" rel="noopener">絶滅危惧種からの生還 真空管グラフィックイコライザー・キットで音を創る: 特別付録:ラックスマン製真空管グラフィックイコライザー・キット (ONTOMO MOOK)</a></p><ul class="hatena-asin-detail-meta"><li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B2%BB%B3%DA%C7%B7%CD%A7%BC%D2">音楽之友社</a></li></ul><a href="https://www.amazon.co.jp/dp/4276963486?tag=laughingandg-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" class="asin-detail-buy" target="_blank" rel="noopener">Amazon</a></div></div></p> <p>24VのDCはコイズミ無線で購入しました。ということでね(2)。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">はい可愛い <a href="https://t.co/04cf5Ayrbb">pic.twitter.com/04cf5Ayrbb</a></p>&mdash; ひだるま@改稿中 (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1605890400333561859?ref_src=twsrc%5Etfw">2022年12月22日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>はい可愛い。</p> <p>さて、現在の不便な箇所としては、次の箇所があります。</p> <ul> <li>PMA-60のときはリモコンで行えた入力切り換えが物理スイッチオンリーになった</li> <li>物理スイッチを押すと機材が奥に後退する</li> <li>電源ONOFFをする機材が増えた</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>側の音量調整があるの面倒くさい</li> </ul> <p>まあ、分かっていたことではあるので許容範囲でしょう。</p> <p>音についてのレビューが求められているところだとは思うんですが、今回変数(新調機材)が多すぎてそれぞれの機器の特徴みたいなのは語りにくいんですよね。 先ず、<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>-X6J+W。思っていたよりもちゃんと音出しているな、とは感じます。192kHzの音源とか持っていないんで、その辺りはアレですが。同じ音源をBT経由で聴いたときとCOAXIAL経由で聴いたときなんかは、元音源の音質が反映されたなりに細かく再生できていると思います。並べて聴かないと分からない耳ですが。</p> <p>そしてAP-25。徐々にボリュームノブを捻って上げていくときに「あ、これはイケるな」という感覚がありました。何がイケるのかは分かっていませんが。</p> <p>2つを合わせて幾つかの入力を切り換えたときに感じたのは「Optical経由で出している<a class="keyword" href="http://d.hatena.ne.jp/keyword/YouTube">YouTube</a>の音源、音圧が耳にキツい」でした。 そんなワケで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%BF%B6%F5%B4%C9">真空管</a>グライコを<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>とAP-25間に配置しました。フラットな位置だと経由分出力が下がるので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAC">DAC</a>-X6J+Wの出力をMAXにしてAP-25もちょっと上げます。 グライコで+へ振るのは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%BF%B6%F5%B4%C9">真空管</a>の歪みが心地良い範囲を超えがちになるので、やらない方が良いと思います。</p> <p>そんな感じで調っちまったなあ。自作スピーカを鳴らすための準備が。……作らなきゃ……。</p> hidden_alma 最近のプライベート作業環境 音楽編 hatenablog://entry/26006613721407046 2021-04-28T00:41:24+09:00 2021-04-28T00:41:24+09:00 Digital Audio PlayerはこれまでPioneerのXDP-30Rを使っていた。結構長く使ったと思う。2.5 mmバランス端子があったりmicroSDが2枚差さったり、BlueToothはaptX使えるしで、なかなか良かった。とはいえ、アップデートで多少改善されたものの、アルファベット以外で曲の検索などは結構大変だ。一字ずつ探すのはやってられん。 パイオニア デジタルオーディオプレーヤー private ハイレゾ対応 ブラック XDP-30R(B)発売日: 2017/03/17メディア: エレクトロニクス で、オーディオはエンジョイ勢だしあまり高いものを買うのはね、ということで最… <p><a id="dap">Digital Audio Player</a>はこれまでPioneerのXDP-30Rを使っていた。結構長く使ったと思う。2.5&#x2009;mmバランス端子があったり<a class="keyword" href="http://d.hatena.ne.jp/keyword/microSD">microSD</a>が2枚差さったり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/BlueTooth">BlueTooth</a>はaptX使えるしで、なかなか良かった。とはいえ、アップデートで多少改善されたものの、アルファベット以外で曲の検索などは結構大変だ。一字ずつ探すのはやってられん。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B06XGY5NNX/laughingandg-22/"><img src="https://m.media-amazon.com/images/I/312BwswEhOL._SL500_.jpg" class="hatena-asin-detail-image" alt="パイオニア デジタルオーディオプレーヤー private ハイレゾ対応 ブラック XDP-30R(B)" title="パイオニア デジタルオーディオプレーヤー private ハイレゾ対応 ブラック XDP-30R(B)"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B06XGY5NNX/laughingandg-22/">パイオニア デジタルオーディオプレーヤー private ハイレゾ対応 ブラック XDP-30R(B)</a></p><ul><li><span class="hatena-asin-detail-label">発売日:</span> 2017/03/17</li><li><span class="hatena-asin-detail-label">メディア:</span> エレクトロニクス</li></ul></div><div class="hatena-asin-detail-foot"></div></div></p> <p>で、オーディオはエンジョイ勢だしあまり高いものを買うのはね、ということで最近 iBassoのDX160 ver.2020を購入した。iBassoは以前HDP-R10<a href="#f-c6f37f67" name="fn-c6f37f67" title="電源ON時にポップノイズ走るのが改善しなかったのが本当に残念だった。">*1</a>を買ったことがあり、メジャー路線から明らかに外れたものを出す感じが好きだったのでブランドで候補にしていた。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B088K42W2D/laughingandg-22/"><img src="https://m.media-amazon.com/images/I/41cs3S7sYwL._SL500_.jpg" class="hatena-asin-detail-image" alt="iBasso Audio(アイバッソ オーディオ) デジタルオーディオプレーヤー iBasso Audio DX160 ver.2020 ブルー DX160V2BL [32GB]" title="iBasso Audio(アイバッソ オーディオ) デジタルオーディオプレーヤー iBasso Audio DX160 ver.2020 ブルー DX160V2BL [32GB]"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B088K42W2D/laughingandg-22/">iBasso Audio(アイバッソ オーディオ) デジタルオーディオプレーヤー iBasso Audio DX160 ver.2020 ブルー DX160V2BL [32GB]</a></p><ul><li><span class="hatena-asin-detail-label">メディア:</span> エレクトロニクス</li></ul></div><div class="hatena-asin-detail-foot"></div></div></p> <p>今までの2.5&#x2009;mmバランス端子は使えんので、4.4&#x2009;mmのものを買う必要がある。エンジョイ勢なので今まではセットで買ったPioneer純正イヤホンとアンケート当選で<a class="keyword" href="http://d.hatena.ne.jp/keyword/ONKYO">ONKYO</a>から貰ったヘッドホンしかなかったので。いや仕方ないよなあ。やっぱ買うしかないよなあ。</p> <p>e-イヤホンでintime GOを購入。皆碧2買っとるので別のに。嘘です。ミーハーなので、重低音にこだわりがあるって書いてあってつい。</p> <p><a href="https://intime-acoustic.jp/?pid=130664055">https://intime-acoustic.jp/?pid=130664055</a> プレビューが碧2になっとるのでURLのみ。</p> <p>折角のmmcxなのでケーブルも買った。音が変わることは分かる。</p> <p>さて、こいつに差さる<a class="keyword" href="http://d.hatena.ne.jp/keyword/microSD">microSD</a>は1枚。社会人になったことだし、でっかくいこうと<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BD%A9%CD%D5%B8%B6">秋葉原</a>で1TBの<a class="keyword" href="http://d.hatena.ne.jp/keyword/microSD">microSD</a>を購入。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Android">Android</a>バージョンは8.1だし本体容量に余裕があるわけでもないのでアプリは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Play">Google Play</a>を導入して<a class="keyword" href="http://d.hatena.ne.jp/keyword/YouTube">YouTube</a> Musicと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Foobar2000">Foobar2000</a>を導入。手持ち音源が96&#x2009;kHz程度までなのでまあ良いんですよこれで。 入力用に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Android">Android</a>版<a class="keyword" href="http://d.hatena.ne.jp/keyword/ATOK">ATOK</a>を購入。<a class="keyword" href="http://d.hatena.ne.jp/keyword/ATOK">ATOK</a>を買っていたアカウントが現在メインでないアカウントだったので<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E1%A5%A4%A5%F3%A5%A2%A5%AB%A5%A6%A5%F3%A5%C8">メインアカウント</a>で買い直した。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CA%A3%BF%F4%A5%A2%A5%AB%A5%A6%A5%F3%A5%C8">複数アカウント</a>が紐付いている<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%DE%A1%BC%A5%C8%A5%D5%A5%A9%A5%F3">スマートフォン</a>だと別アカウントで同じアプリを買うことができなかったんですが、これ不具合では?</p> <p>暫く使ってみて。</p> <ul> <li>通勤時の<a class="keyword" href="http://d.hatena.ne.jp/keyword/QoL">QoL</a>が上がった。すぐに聴きたい曲が検索できる。汎用OSの利点~。</li> <li>他の人の感想でもあったがBTの接続は不安定。</li> <li>画面サイズがデカくなったのでジャケット画像の解像度が気になってきた。</li> <li>4.4&#x2009;mmで聞いててもP.O(Phone Out)とL.O(Line Out)で出力音量変わるのに「3.5mm Interface」って書いてあるのよく分かってない。</li> <li>光デジタルに対応してると思って3.5&#x2009;mm-角型光デジタルケーブル買ったがそんなことはなかった(対応しているのはSPDIF 3.5&#x2009;mm-同軸)</li> </ul> <p>そして「なんか<a class="keyword" href="http://d.hatena.ne.jp/keyword/microSD">microSD</a>差しっぱなしだと起動しない」</p> <p>相性問題か? これ自体は音量と電源同時押しによるリセットやなんかで「起動しなくなる」は避けられるんですが。まあ起動時に外して差し直せば認識はするので暫く(一ヶ月ほど)これで運用した。</p> <p>そしてふと気付いた。</p> <p>「フォーマットなんだっけこれ」</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/exFAT">exFAT</a>だった。オイオイオイ。</p> <p>ということで<a class="keyword" href="http://d.hatena.ne.jp/keyword/FAT32">FAT32</a>で再フォーマット。問題はセコセコ入れてた楽曲の入れ直しよ。 現在の楽曲管理は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a>にしてあって、ここから入れ直すことになる。 ところでアンドロイドアプリの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a>は1曲ずつしかダウンロードできない。 数千曲をそれでやるのはまあ大変なのでWin機で作業。 数千曲を一気にやろうとしたら途中でアレな状態になったらしく何もかも止まった<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a> File Stream(まあ今は名前が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a>なんですが)は見た目そのまま<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a>のファイルにすぐアクセスできるように見えるが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AF%A5%E9%A5%A6%A5%C9">クラウド</a>ストレージの常として、利用時にローカルにダウンロードされるんで同時に他のデ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D0%A5%A4%A5%B9">バイス</a>へのコピーとかが走ってるとときどき怖いんだな。 結局2日くらいにチマチマ作業を進めた。管理上1ファイルずつ<a class="keyword" href="http://d.hatena.ne.jp/keyword/flac">flac</a>はやっぱ辛いね。 要件を満たすのはmkaなんですが、再生環境が少ないのと皆もはや使っとらんのでアルバムのまとめ方とか本当にこれでいいんかみたいな感じで作ってみては破棄している。</p> <div class="footnote"> <p class="footnote"><a href="#fn-c6f37f67" name="f-c6f37f67" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text">電源ON時にポップノイズ走るのが改善しなかったのが本当に残念だった。</span></p> </div> hidden_alma XSL-FO組A6小説暫定公開 hatenablog://entry/26006613672574620 2021-01-01T00:02:38+09:00 2021-01-01T00:02:38+09:00 この記事は百合SS Advent Calendar 2020の25日目ということにします。 adventar.org https://drive.google.com/file/d/1-wG6iqoZesniTzK6IXau9qAo7cQ6P8cQ/view?usp=sharing XSL-FO組版をしていますが、使っていないプロパティや版面計算を詰めていないなどあるのでFOの公開は暫くしません。 <p>この記事は百合SS Advent Calendar 2020の25日目ということにします。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F5688" title="百合SS Advent Calendar 2020 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/5688">adventar.org</a></cite></p> <p><a href="https://drive.google.com/file/d/1-wG6iqoZesniTzK6IXau9qAo7cQ6P8cQ/view?usp=sharing">https://drive.google.com/file/d/1-wG6iqoZesniTzK6IXau9qAo7cQ6P8cQ/view?usp=sharing</a></p> <p>XSL-FO<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>をしていますが、使っていないプロパティや版面計算を詰めていないなどあるのでFOの公開は暫くしません。</p> hidden_alma fewerfloatpagesパッケージの概略 hatenablog://entry/26006613667390963 2020-12-19T23:08:26+09:00 2020-12-19T23:08:26+09:00 この記事は TeX & LaTeX Advent Calendar 2020の19日目の記事です。 adventar.org 18日目はtamuratakさんでした。 Github Actions 上の Windows に TeX Live をインストールする · GitHub 自動組版に3つの最適化有り。1つは段落内の行バランス最適化、1つはページネーションの最適化、1つは……とまあそんなそんな感じで、フロートの配置アルゴリズムというのは結構な方が関心を持つトピックですね。 www.latex-project.org MittelBach氏は16年の『Alice goes floating』… <p>この記事は <a class="keyword" href="http://d.hatena.ne.jp/keyword/TeX">TeX</a> & <a class="keyword" href="http://d.hatena.ne.jp/keyword/LaTeX">LaTeX</a> Advent Calendar 2020の19日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fusers%2F22736" title="Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/users/22736">adventar.org</a></cite></p> <p>18日目はtamuratakさんでした。</p> <p><a href="https://gist.github.com/tamuratak/9a5b4c655ae793ee9753c29fa4fdc6db">Github Actions &#x4E0A;&#x306E; Windows &#x306B; TeX Live &#x3092;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x3059;&#x308B; &middot; GitHub</a></p> <p>自動<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>に3つの最適化有り。1つは段落内の行バランス最適化、1つはページネーションの最適化、1つは……とまあそんなそんな感じで、フロートの配置<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0">アルゴリズム</a>というのは結構な方が関心を持つトピックですね。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.latex-project.org%2Fpublications%2F" title="Articles published by the LaTeX project by year" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://www.latex-project.org/publications/">www.latex-project.org</a></cite></p> <p>MittelBach氏は16年の『Alice goes floating』や17年の『Through The Looking Glass — and what Alice found there …』など、ページネーションとフロート配置についての研究を行ってきました。『Effective Floating Strategies』とか学術向け資料感の強い題のものもありますが、まあ長いこと取り組まれているということです。14年とかのfigureやtableについて言及したものもそうかもしれないけれど私は追い切れていないです。</p> <p>そんな氏の成果物として2020年fewerfloatpagesパッケージが登場しました。TUGBoat41号にも載っています。というかパッケージのドキュメントPDFがまんまか?</p> <p>このドキュメントは<code>texdoc fewerfloatpages</code>とかで読めると思うので、興味が出たら↑のpublicationsと合わせて読むとよい、というかここ以後の文を読むよりオススメします。</p> <p>まずはフロートについて軽く。</p> <p>図表などを配置するときに「<code>htb</code>」のように「できればこの位置に配置してほしいな」順を書いたことがありますか? なくてもいいんですが、フロート要素が書かれた記述位置、この位置をアンカーとして、置ける場所に置かれる、それがフロートです。変な指定をすると容易にぶっとんだ位置にいきますが、とりあえず<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>システムはアンカー位置を基準に、指定場所に置けるかどうかチャレンジをしながら最終的な位置を決定します。この<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0">アルゴリズム</a>によっては、本来挿入されて欲しい位置に入らず、次のページにデデンと配置されてページ数が増え、論文の規定ページ数に収まらなくなり、……ということも起こり得るワケです。</p> <p>軽く例が出ましたが、フロート配置<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0">アルゴリズム</a>への要望の多くは、「もっとページ数が少なくて済むように置いてほしい」という方向になります。ページ数がたっぷり使える富豪<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>方針ならとりあえず次のページにフロートも本文も送ってしまえば良いケースが多いでしょうし、それはそう。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0">アルゴリズム</a>として、まず置こうとして、ダメなら待機リストみたいのに突っこんで待機リストから放出できる位置まで保持、みたいな方法が素朴である程度は上手くいくんですが、待機リストにどんどん待機が貯まっていくと放出時に大変そうというのは直感で感じませんか? 素朴だとどんなことが起こるかというと、待機リストの先頭にあるヤツが条件1をのフロート候補位置に求めるとして、待機リスト2番目のヤツが条件2をフロート位置に求めるとします。フロート候補位置が条件2を満たすけれども待機リスト先頭は条件1待ちだからスルー、とかそんなことも起こるかもしれません。</p> <p>この辺はちゃんとパッケージの説明読みましょう。ひだるまはざっとしか読んでいないので。</p> <p>ざっくりとした<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E6%A1%BC%A5%B9%A5%B1%A1%BC%A5%B9">ユースケース</a>として「これ以上フロートページは増やせないとき、前の位置に戻ってねじこめないか、すでに置き終わっているフロート含めて探索しなおす」ようなことを行います。</p> <p>うっかり、フロートが大量な文書などは用意できなかったのでbefore-afterはないですが。</p> <pre class="code latex" data-lang="latex" data-unlink>\usepackage{fewerfloatpages} </pre> <h2>パラメータ指定</h2> <p>このパッケージはあらかじめ指定したパラメータを基に、「この範囲内だからヨシ!」「超えてるので再計算や!」みたいにフロート位置を考えるパッケージなので、とりあえずビルドしてみて気に入らなかったらこれを弄ることでユーザは調整を行う。</p> <pre class="code latex" data-lang="latex" data-unlink>\setcounter{floatpagedeferlimit}{&lt;number&gt;} \setcounter{floatpagekeeplimit}{&lt;number&gt;} \renewcommand\floatpagekeepfraction{&lt;decimal&gt;}</pre> <p><code>floatpagedeferlimit</code>はフロート待機列に置いておける期限ですね。1を指定してあると、1ページ以上は待機リストを持ち越せずフロートページを作成します。フロートを記述した場所から離れられる限界ページですね。</p> <p><code>floatpagekeeplimit</code>は<code>floatpagedeferlimit</code>の逆というか、待機リストに置いて最適な配置を伺うページ数の期限です。deferlimitがこの値より少ないと意味見られることもない、という解釈でいいのかな。あと、<code>p</code>指定のフロートが来た時点でこの値に関係なく置かれるっぽい。</p> <p>一個だけ<code>renewcommand</code>、<code>\floatpagekeepfraction</code>。まあまず、ナンチャラfractionという「その要素がページに占めてよい割合」みたいな数字がイロイロあって。あと<code>topnumber</code>とか置いていい数の上限を決める数値もあります。<code>\floatpagekeepfraction</code>はデフォルトで<code>\textfraction</code>、これはテキストを置いていい最小割合とオソロです。テキストを置ける領域も置けないならフロートも置けないよね的な理解でいいんだろうか。まあ再定義できます。</p> <p><code>floatpagedeferlimit</code>が1のときは優先順位低まるはず。</p> <h2>pitfallの避け方と書いてある。</h2> <pre class="code latex" data-lang="latex" data-unlink>\usepackage[checktb]{fewerfloatpages}</pre> <p>再配置のときの挿入箇所とフロートのサイズが合わない(けど入れる)とき警告が出たりする。</p> <pre class="code latex" data-lang="latex" data-unlink>\usepackage[addbang]{fewerfloatpages}</pre> <p><code>!</code>によるちょっと強制力高めな位置指定があるんですが、こいつが効くようになる、でいいんだろうか。</p> <h2>完全に理解しているので自動チェックをしなくても手動でフロートのパラメータを置ける人</h2> <pre class="code" data-lang="" data-unlink>\usepackage[nocheck]{fewerfloatpages}</pre> <h2>挙動のトレース</h2> <pre class="code latex" data-lang="latex" data-unlink>\usepackage[trace]{fewerfloatpages}</pre> <p>オプション付きで呼ぶと、文書のビルド時にベロベロっと動作を教えてくれます。</p> <hr /> <p>「いかがでしたか?」ってつけたくなるくらい何も理解できていない概略になった気がするので、ちゃんとドキュメント読もうね。</p> <p>明日はwtsnjpさんです。</p> hidden_alma GPDWINMAX購入と環境整備 hatenablog://entry/26006613664288819 2020-12-17T23:20:53+09:00 2020-12-17T23:20:53+09:00 この記事はWORDIAN Advent Calendar 2020 17日目の記事ということにします。 adventar.org GPDWIN2が、リボンケーブルが切れてヒンジが破損したため、コーディングやくりえいてぃぶしないお遊び環境の移行先としてGPDWINMAXを購入した。他候補として、OneGXPro、GPDWIN3があったが、最低確保したい画面サイズ、ストレージの容量を鑑みてGPDWINMAXにした。加えてLANポートがある。 www.gpd.hk SSDは自前でNVMeストレージを交換できる(保証シールを剥がすことになる)ので、WesternDegitalのSN750を 別途購入。… <p>この記事はWORDIAN Advent Calendar 2020 17日目の記事ということにします。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F5974" title="WORDIAN Advent Calendar 2020 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/5974">adventar.org</a></cite></p> <hr /> <p>GPDWIN2が、リボンケーブルが切れてヒンジが破損したため、コーディングやくりえいてぃぶしないお遊び環境の移行先としてGPDWINMAXを購入した。他候補として、OneGXPro、GPDWIN3があったが、最低確保したい画面サイズ、ストレージの容量を鑑みてGPDWINMAXにした。加えてLANポートがある。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.gpd.hk%2F" title="Shenzhen GPD Technology Co., Ltd. - GPD Pocket 2 GPD WIN 2 GPD Pocket GPD WIN GPD XD Plus GamePad Headheld Game Console Video Game Play Mini Laptop" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://www.gpd.hk/">www.gpd.hk</a></cite></p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/SSD">SSD</a>は自前でNVMeストレージを交換できる(保証シールを剥がすことになる)ので、WesternDegitalのSN750を 別途購入。片面実装なら大体大丈夫のようだが、速度よりもコストと容量、あと他の人間の動作確認記事があったので。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">my new gear... <a href="https://t.co/GZB0Fj8sAZ">pic.twitter.com/GZB0Fj8sAZ</a></p>&mdash; ひだるま (@hid_alma1026) <a href="https://twitter.com/hid_alma1026/status/1337390712153763847?ref_src=twsrc%5Etfw">2020年12月11日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <h2>ハードウェアいじいじ</h2> <p>早速<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%AB%C9%F5">開封</a>してキーボードをチェック。数字、記号の列がめっちゃ細い。GPDWINや2ではもっと小さかったが、本体サイズが小さいのであんまり気にならなかった。全部親指でアクセスできる距離だったし。 ただ、このサイズになるとラップトップ的用途が望まれ、そうすると気になりどころ。 それはまあギリギリ良いとして、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%EB%A5%C0">チルダ</a>とタブキーの小ささよ。US配列系で日本語モードは大体Alt+~なわけで、これはやりづらい。シンプルな<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%AB%A4%CA%B4%C1%BB%FA%CA%D1%B4%B9">かな漢字変換</a>システムの出番ですよ。</p> <p>画面保護シール貼りは失敗した。風呂でやらなかったのが敗因か。</p> <p>さて、こいつ。マウスに使えるジョイパッドの他にマウスパッドがある。タッチパネルディスプレイと合わせて3種の移動、クリック手段があることに。なんだコイツ。</p> <p>ジョイパッドの位置はGPDWIN、GPDWIN2での位置逆転の果て、アナログスティックがマウスパッドを挟み左に並ぶ構造に。実際両手で使ってみるとしっくりきた。こういうとこは本体サイズによってよいポジションが変わるので感動した。</p> <h2>じゃ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AF%A5%EA%A1%BC%A5%F3%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB">クリーンインストール</a>しよっか</h2> <p>ポチポチ押しながら<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a>の設定。コルタナくん忘れたころにこういうところで見かけて吃驚するよね。</p> <p>GPDのサイトからドライバ一式を落としてきて適当なストレージなりに保存して、マシンの認証を済ませ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a>のユーザ紐付けも一応済ませ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows%20Update">Windows Update</a>をかける。20H2か。まあ大丈夫やろ。</p> <p>アプデと再起動を行い、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a>(C:)を右クリック。「ツール」で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%D5%A5%E9%A5%B0">デフラグ</a>を行う。ついでに「スケジュールされた最適化」は切る。</p> <p>「設定」から「更新とセキュリティ」、右側の「回復」、そして「このPCを初期状態に戻す」、ここまで流れるようにやる。</p> <p>キレイになった<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a>の起動、設定を確認したらスイッチオフ。</p> <h2>NVMe換装</h2> <p>GPDWINMAXをひっくり返し裏面のネジを外していく。シールされてる真ん中部分も外す。さらば保証。 側面の2つも外す。</p> <p>爪を溝につっこみ、頑張って一周。パコっと外れるかと思ったが、バッテリが筐体カバー側に貼り付けてある。まあ作業には支障なさそうだったのでそのまま。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/SSD">SSD</a>は結構見やすい位置にあった。NVMe固定ネジの他、ファンにも挟まれていやがる。一応ファンもカパっとあける。</p> <p>微妙に横からスライドさせるように入れないと差さらない。まあ何とかなったんでヨシ!</p> <h2>再起動とソフトウェア類導入</h2> <p>問題なく起動確認。容量はちゃんと1.81TB。やったぜ。 「ディスク」を開いて空いている領域をCドライブに統合。Dとかにしたいところなんですが、インストール可能なのがCドライブ限定のソフトをやる予定があるからね……。</p> <p>先ずは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>を入れます。……ちゃうねん。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Chromium">Chromium</a> Edgeがかなり良くできてることは分かってんねん。 ただ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>でアカウント紐付けているサービスが結構あるんで。</p> <p>ところで、「Alt+~」が打ちにくいって話しましたね。ええっそんなキーボード事情からでもシンプルに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%AB%A4%CA%B4%C1%BB%FA%CA%D1%B4%B9">かな漢字変換</a>ができる入力システムがあるんですか?</p> <p>ということで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/SKK">SKK</a>のインストール。 <a class="keyword" href="http://d.hatena.ne.jp/keyword/SKK">SKK</a> <a class="keyword" href="http://d.hatena.ne.jp/keyword/FEP">FEP</a>を入れました。「Ctrl+j」や「l」、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A1%D6q%A1%D7">「q」</a>はそこそこ普通に打てるんで、これは勝ちです。</p> <p>Free <a class="keyword" href="http://d.hatena.ne.jp/keyword/Wi-Fi">Wi-Fi</a>しかない環境で起動することも考え、<a class="keyword" href="http://d.hatena.ne.jp/keyword/WARP">WARP</a>もインストール。CloudflareとFree <a class="keyword" href="http://d.hatena.ne.jp/keyword/Wi-Fi">Wi-Fi</a>どっちが信じられるっていったらCloudflareだよなあ。</p> <p>そしてNotoFontをフルセットで入れる。いつ何語のフォントが無くって困るか分からないからね。</p> <p>個人で契約している<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> Workspace Enterpriseの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a>をシームレスに利用するため、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a> File Streamもインストール。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a>はこの辺楽ですね。</p> <p>cppcryptfsもインストール。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Drive">Google Drive</a>に上げるファイルは、すごくどうでもいいのを除いて暗号化して上げているので。</p> <p>ゲーミング(主にADV用)PCとしてのセットアップが大体終了。</p> <p>My DocumentsはOneDriveに紐付いているのでセーブデータの移行はゲームによるがあまり考えなくて良かった。着実にゲーム機に向かってないか?<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a>。</p> hidden_alma 個人でAH Formatterを買いました hatenablog://entry/26006613663342988 2020-12-10T23:46:40+09:00 2020-12-10T23:46:40+09:00 ついでなのでXSL Advent Calender 2020の10日目の記事ということにしておこう。技術的な話はしません。 adventar.org XML-FO&CSS組版ソフトAH Formatter V7.0の改訂6版が出ました。 『AH Formatter』の評価版は https://t.co/QVrX8B8bbw よりお申し込みいただけます。お試しの上、ご要望の機能・ご意見ございましたら、ぜひお聞かせください。お待ちしております。 https://t.co/pqKAPoCMoP pic.twitter.com/zZQ9ZEc73j— Antenna House, Inc. (@Ant… <p>ついでなのでXSL Advent Calender 2020の10日目の記事ということにしておこう。技術的な話はしません。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F5027" title="XSL Advent Calendar 2020 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/5027">adventar.org</a></cite></p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>-FO&amp;<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSS">CSS</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>ソフトAH Formatter V7.0の改訂6版が出ました。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">『AH Formatter』の評価版は <a href="https://t.co/QVrX8B8bbw">https://t.co/QVrX8B8bbw</a> よりお申し込みいただけます。お試しの上、ご要望の機能・ご意見ございましたら、ぜひお聞かせください。お待ちしております。 <a href="https://t.co/pqKAPoCMoP">https://t.co/pqKAPoCMoP</a> <a href="https://t.co/zZQ9ZEc73j">pic.twitter.com/zZQ9ZEc73j</a></p>&mdash; Antenna House, Inc. (@AntennaInfo) <a href="https://twitter.com/AntennaInfo/status/1336968874068078592?ref_src=twsrc%5Etfw">2020年12月10日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>別に待ってたワケではないんですが、この度購入しました。デスクトップの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%BF%A5%F3%A5%C9%A5%A2%A5%ED%A5%F3">スタンドアロン</a>版です。流石に。 普通に買ったし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%B1%A5%C6%A5%A3%A5%F3%A5%B0">マーケティング</a>行為かと言われると難しいところ。まあ業務で使っているから他より習熟しているという利点があります。</p> <p>とはいえ、それでも中々趣味で買うには敷居が高いお値段。私も金銭的に余裕があるかと言われれば、大学時代の後輩に真剣に心配される程度の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BC%AB%C5%BE%BC%D6%C1%E0%B6%C8">自転車操業</a>。とはいえ、ただちに死ぬレベルではないので、誰かのブログ記事ではありませんが脳を騙せばポチッとできてしまった。</p> <p>何らかの方法でドキュメントをページドメディア化して出力する趣味を持っているという前提です。 あまり得意でないソフトウェアをいじくりまわしながらイベントでの頒布に間に合わせるコストを考えてみます。東京都の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BA%C7%C4%E3%C4%C2%B6%E2">最低賃金</a>、まあブレるし計算も面倒なので仮に時給1000円としましょう。 準備期間は3ヶ月ほど、そのうち執筆やPDF生成に使える時間は、そうですね、平日は帰宅後1時間、休日は4時間として、1h*5+4h+4h=13hが週、52hが月、3ヶ月では156hです。技能職ではない時給1000円でも156000円。これはそこそこお値段のする<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>ソフトを買えてしまう値段です。時間をお金で買って、トントンくらいの結果が得られる。これは買うしかないですね。</p> <p>勿論現実には執筆時間と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>時間がまるまる削減できるワケがなく、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>ソフトを買ったところで別の言語で云々唸っていることは変わらなかったりする。ただまあ、「ソフトが合わないなら別の代替を探すことにコストを割いた方が互いに有益なケースもある」ということは忘れないようにしたいですね。そして何らかの方法でドキュメントをページドメディア化して出力する趣味を持っている人間はどんなソフトを使っていてもドキュメントをページドメディア化して出力するのにコストを費やすんだな。</p> hidden_alma 唐突にBGM10個紹介するやつ hatenablog://entry/26006613608195638 2020-08-01T20:23:08+09:00 2020-08-01T20:23:08+09:00 唐突に。 成人向けWindowsゲームサウンドラック縛り。嫌悪感を感じたり対象年齢に達していない人は作品タイトルで調べないようにしませう。 別にこれが私的ベスト10とかそういうのではない。例えば、『Quartett!』 の「咲き誇る季節」をここで紹介するのはちょっと違うかな、とかそういう感じ。『Clover Day's』タイトル画面の「Clover Day's suite」ではクリアごとに音が増えるが何番目が好みとかあるけどOPアレンジだから今回は無しとか。持っている中からなので偏りはあるが、バラけるように選んでみた。 「幻影」 作曲 編曲 作品名 収録 水月陵 水月陵 Peace@Piece… <p>唐突に。</p> <p>成人向け<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a>ゲーム<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%A6%A5%F3%A5%C9">サウンド</a>ラック縛り。嫌悪感を感じたり対象年齢に達していない人は作品タイトルで調べないようにしませう。</p> <p>別にこれが私的ベスト10とかそういうのではない。例えば、『<a class="keyword" href="http://d.hatena.ne.jp/keyword/Quartett%21">Quartett!</a>』 の「咲き誇る季節」をここで紹介するのはちょっと違うかな、とかそういう感じ。『Clover Day's』タイトル画面の「Clover Day's suite」ではクリアごとに音が増えるが何番目が好みとかあるけどOPアレンジだから今回は無しとか。持っている中からなので偏りはあるが、バラけるように選んでみた。</p> <h2>「幻影」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%E5%B7%EE%CE%CD">水月陵</a> </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%BF%E5%B7%EE%CE%CD">水月陵</a> </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Peace%40Pieces">Peace@Pieces</a>! </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Peace%40Pieces">Peace@Pieces</a>! ORIGINAL SOUNDTRACK </td> </tr> </tbody> </table> <p>杏EDテーマですが、まあボーカル曲でないし。ゲームプレイによる評価の補正もありますが、ゲームBGMなんだからゲームと含めてなんぼ、とも思う。幸せいっぱいのというよりは最悪の自体は避けられて良かったねという感じの空気で流れるのもあり、非常にしっとりとしている。それでええんかお前、それがお前の幸せでええんかと。伸ばした手が空を切る感じが出た曲だと思います。</p> <p>サントラを買うようになり、ピアノメイン曲だと低<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D3%A5%C3%A5%C8%A5%EC%A1%BC%A5%C8">ビットレート</a>では露骨に割れることが分かり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/DAP">DAP</a>に入れていた全楽曲の保存音質を上げることを決意させた。</p> <h2>「ふと口ずさんでいた故郷の歌」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> 樋口秀樹 </td> <td> 樋口秀樹 </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C5%B7%BB%C8%A4%CE%B1%A9%BA%AC%A4%F2%C6%A7%A4%DE%A4%CA%A4%A4%A4%C7%A4%C3">天使の羽根を踏まないでっ</a> </td> <td> 天使の歌声 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C5%B7%BB%C8%A4%CE%B1%A9%BA%AC%A4%F2%C6%A7%A4%DE%A4%CA%A4%A4%A4%C7%A4%C3">天使の羽根を踏まないでっ</a> オリジナル<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%A6%A5%F3%A5%C9">サウンド</a>トラック </td> </tr> </tbody> </table> <p>『<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C5%B7%BB%C8%A4%CE%B1%A9%BA%AC%A4%F2%C6%A7%A4%DE%A4%CA%A4%A4%A4%C7%A4%C3">天使の羽根を踏まないでっ</a>』、「中二が大人しい朱門作品」として有名な作品ですね。 日常シーンBGMの1つ。「どこでかかっていたか思い出せないけど耳に覚えがある」というのも良いBGMの1つだと思う。</p> <p>声優として出演されている<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%D2%C2%C0%CC%C0">子太明</a>さんのメッセージが「俺が出てるぜ」なのは笑った。もう新らしい作品で聴けないのだと思うと本当に寂しい。</p> <p>WHITE-LIPSの主題歌はこの前WHITELIPS VOCAL COLLECTION3が出るまでこの初回特典サントラでしか入手できなかったはず、多分<a href="#f-ddeb38cc" name="fn-ddeb38cc" title="まあ初回特典サントラにもWHITE-LIPS曲は入っていなかった『シュガーコート・フリークス』なんかよりは入手可能性はあったけども。">*1</a>。</p> <h2>「Granfia」</h2> <p>| 作曲 | 編曲 | 作品名 | 収録 | |-------------|--------|-----------|--------l| |神保伸太郎 |神保伸太郎 |<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%EE%B8%F7%A4%CE%A5%AB%A5%EB%A5%CD%A5%F4%A5%A1%A1%BC%A5%EC">月光のカルネヴァーレ</a> | 御伽の国の綺想曲 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%EE%B8%F7%A4%CE%A5%AB%A5%EB%A5%CD%A5%F4%A5%A1%A1%BC%A5%EC">月光のカルネヴァーレ</a> Original Soundtrack |</p> <p>勝ち確BGMとして名高い(勝てるとは言っていない)。バトルBGMですが、緊迫感とかは感じさせず、「ゾーンに入った」、そんな感じ。</p> <p>これは贔屓目ですが、他のNitro作品サントラと比べ頭1つ抜けた完成度を誇る。ゲームやってなくても聴けば「面白いゲームだったよね」って記憶を捏造できるレベル。実際にやると戦闘描写のところでプレイ続行できる人とそうでない人がでるっぽいですが。</p> <h2>「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B2%C6%A4%CE%C2%E7%BB%B0%B3%D1">夏の大三角</a>」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> ryo </td> <td> ryo </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C7%C0%B2%A4%E9%A4%B7%A4%AD%C6%FC%A1%B9">素晴らしき日々</a>〜不連続存在〜 </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C7%C0%B2%A4%E9%A4%B7%A4%AD%C6%FC%A1%B9">素晴らしき日々</a>〜不連続存在〜 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%A6%A5%F3%A5%C9">サウンド</a>トラックCD </td> </tr> </tbody> </table> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%BD%AA%A5%CE%B6%F5">終ノ空</a>楽しみですね。サクラノt……いえ、止めておきましょう。 「夜の向日葵」は敢えて選曲からは外しています。</p> <p>ryoさんの作曲。 序章の雰囲気とかにとてもあっている、爽やかかつ一抹の寂寥感を感じさせる曲です。</p> <p>すば日々、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CB%A5%B3%A5%CB%A5%B3%C6%B0%B2%E8">ニコニコ動画</a>なネタもちょこちょこある。モンどう見てたっぽい。</p> <p>すば日々のサントラは作曲者クレジットあるんですが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%AF%A5%E9%A5%CE%BB%ED">サクラノ詩</a>には無くて作曲者当てゲームをしなければならないんですよね。『春ノ雪』段階では多分ryoさんがBGM担当になってると思うんで、春ノ雪で聴ける曲はryoさんじゃないかな。確証はないんで信用はしないでください。</p> <p>また若干入手しにくくなってきている『<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%B7%A4%E5%A4%D7%A4%EC%A1%C1%A4%E0%A5%AD%A5%E3%A5%F3%A5%C7%A5%A3">しゅぷれ〜むキャンディ</a>』のOP曲のオリジナル版はあの人が歌っていますね。</p> <h2>「orz〜真・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BC%BA%B0%D5%C2%CE%C1%B0%B6%FE">失意体前屈</a>〜」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> 井原恒平 </td> <td> </td> <td> しゅきしゅきだいしゅき!! </td> <td> しゅきしゅきだいしゅき!! Olriginal Sound Track </td> </tr> </tbody> </table> <p>作品名を『好き好き大好き』と間違えてはならない。どっちが業が深いかは難しそうだが。</p> <p>脱力系BGM。割と直球のタイトルで、聴いてみると情景がバッチリはまっている。「真」でない方よりがっくり来ている感じがある、</p> <p>EDテーマ曲「しゅきしゅきだいしゅき!! 愛のテーマ」はオマージュ曲としての完成度がかなり高い。オリジナリティとの配分がいいんですよ。</p> <p>あと、Irisの別作品『ちいちゃくないもんっ!』のOP曲も凄い完成度の曲なので是非聴いてみてほしい。</p> <h2>「Dynamic equilibrium」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C6%A3%C5%C4%BD%DF%CA%BF">藤田淳平</a> </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C6%A3%C5%C4%BD%DF%CA%BF">藤田淳平</a> </td> <td> 猫撫<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%B9%A5%C8%A1%BC%A5%B7%A5%E7%A5%F3">ディストーション</a> </td> <td> 猫撫<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%B9%A5%C8%A1%BC%A5%B7%A5%E7%A5%F3">ディストーション</a> コンプリート<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%A6%A5%F3%A5%C9">サウンド</a>トラック </td> </tr> </tbody> </table> <p>この曲のタイトルがこれであることは考えさせられる。曲自体は落ち着いていて軽やか、</p> <p>猫撫のサントラは大体どの曲を選んでも好きの値があまり変わらなかったりする。</p> <p>友人は「World eyes」が最推し。この作品におけるWorld Eyeってアレだよな……って思いながら聴くと違った味のある曲です。</p> <p>Exodus追加楽曲を除いた世界観とのマッチ具合が高いサントラ。いや、世界からの脱出をするのだからあれも合っていると言えなくもないか。</p> <p>『<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AE%A5%E3%A5%F3%A5%B0%A5%B9%A5%BF">ギャングスタ</a>・リパブリカ』はもっと明らかに作りの違う曲があって、サントラのクレジット見たら藤田さん以外にも載っていて納得があった。</p> <h2>「Glass dust」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> PK<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BF%A1%BC%A5%C8%A5%EB%A5%BA">タートルズ</a> </td> <td>PK<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BF%A1%BC%A5%C8%A5%EB%A5%BA">タートルズ</a> </td> <td> イブニクル </td> <td> ALICE SOUND ALBUM Vol.27 Evenicle </td> </tr> </tbody> </table> <p>作品内では砂漠あたりのマップBGM。砂漠にも色々あるわけですが「ああ、こういう砂漠か」とイメージの助けをしてくれる曲。</p> <p>どうでもいいですが、ボーカルアレンジ最初に聴いたときは「解釈違いだな」と思いました。 別の曲だと思うと普通に好き。</p> <h2>「Party time!」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> ms-jacky&amp;QUARITY </td> <td> ms-Jacky&amp;QUARITY </td> <td> キラ☆キラ </td> <td> Cross The Music キラ☆キラ&amp;<a class="keyword" href="http://d.hatena.ne.jp/keyword/DEARDROPS">DEARDROPS</a> Original Soundtrack </td> </tr> </tbody> </table> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/OVERDRIVE">OVERDRIVE</a>の、BGM楽曲から抜き出して選ぶのは私にはハードルが高くて、作品に練り込まれてしまった曲を取り出して捉えるのは難しい。他の作品がそうではないとかの話ではなくって。</p> <p>よく分からない焦燥を裏に抱えたままの開放感のある曲というか、追い立てられるようなハイテンションの曲。</p> <p>特典小説届いてしまったしいい加減『MUSICUS!』をやらなければ。でも怖いんですよ。しかしこれ以上何かが終わってしまう前にやらなければならない。</p> <h2>「ともしびのうた」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td> ファクトリーノイズ&amp;AG </td> <td>ファクトリーノイズ&amp;AG </td> <td> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%DA%A4%AB%A4%CB%B6%C4%A4%AE%A1%A2%CE%EF%A4%B7%A4%CE">遥かに仰ぎ、麗しの</a> </td> <td><a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%DA%A4%AB%A4%CB%B6%C4%A4%AE%A1%A2%CE%EF%A4%B7%A4%CE">遥かに仰ぎ、麗しの</a> 初回特典<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%A6%A5%F3%A5%C9">サウンド</a>トラック </td> </tr> </tbody> </table> <p>BGMの出来と楽曲の音質は分けて考える必要はありますし、時代としての要求スペックも踏まえる必要がありますが、非常に勿体無い。ばっちし切なくなれるはずのメロディで別の意味で悲しくなる。BGMというよりボーカルなしの楽曲に近い。というか後にボーカル付きが出るし。</p> <h2>「街角のドーナツ屋さん」</h2> <table> <thead> <tr> <th> 作曲 </th> <th> 編曲 </th> <th> 作品名 </th> <th> 収録 </th> </tr> </thead> <tbody> <tr> <td>BURTON</td> <td>BURTON </td> <td> しゅがてん!-sugarful tempering- </td> <td>しゅがてん! -sugarful tempering- Original Soundtrack</td> </tr> </tbody> </table> <p>ちょっと仰々しい感じもあるものの、石畳な町並みの活発な通りとかそんな感じがある曲。 一応書いておくと作品の舞台はケーキ屋。喫<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C3%E3%C5%B9">茶店</a>でもないよ。 CLEARRAVEはサントラ販売機会をもっと増やしてほしい。</p> <div class="footnote"> <p class="footnote"><a href="#fn-ddeb38cc" name="f-ddeb38cc" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text">まあ初回特典サントラにもWHITE-LIPS曲は入っていなかった『シュガーコート・フリークス』なんかよりは入手可能性はあったけども。</span></p> </div> hidden_alma Inkscapeのバージョン1.0で引数が変わりMakefileを書き換える必要がありそう hatenablog://entry/26006613580050104 2020-06-07T02:50:15+09:00 2020-06-07T02:53:07+09:00 ドキュメントで、SVG画像をInkscapeで変換処理を噛ませるようにしていて、それをmakeでやっているプロジェクトはちらほらあるらしい。 Inkscapeは2020年5月7日に.0となり、旧バージョンから引数が整理されているらしい。普段触らないアプリケーションなので違っていたら記述は直します。 とりあえず、Makefileに書かれている引数設定が inkscape --help で出てくるものと違っていたので多分メジャーバージョンアップデートによる整理だと思う。 雑にGistにモンキーパッチを書いてみた。 そもそもInkscapeとmakeでSVG処理するのはそろそろ切り換えるタイミングか… <p>ドキュメントで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/SVG">SVG</a>画像を<a class="keyword" href="http://d.hatena.ne.jp/keyword/Inkscape">Inkscape</a>で変換処理を噛ませるようにしていて、それをmakeでやっているプロジェクトはちらほらあるらしい。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Inkscape">Inkscape</a>は2020年5月7日に.0となり、旧バージョンから引数が整理されているらしい。普段触らないアプリケーションなので違っていたら記述は直します。 とりあえず、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Makefile">Makefile</a>に書かれている引数設定が <code>inkscape --help</code> で出てくるものと違っていたので多分メジャーバージョンアップデートによる整理だと思う。</p> <p>雑にGistにモンキーパッチを書いてみた。</p> <script src="https://gist.github.com/hidaruma/ea76b39f2ca7ec1b62802c13785661a3.js"></script> <p>そもそも<a class="keyword" href="http://d.hatena.ne.jp/keyword/Inkscape">Inkscape</a>とmakeで<a class="keyword" href="http://d.hatena.ne.jp/keyword/SVG">SVG</a>処理するのはそろそろ切り換えるタイミングかもしれない。</p> hidden_alma LwDITAのDITAVALの書き方 hatenablog://entry/26006613570036386 2020-05-18T23:02:55+09:00 2020-06-17T01:01:48+09:00 Creating Intelligent Content with Lightweight DITAをPODで購入したので読んでいる。 いや、電子書籍版を前に買ったのだが(Kindleでない)、実用に耐えないデスクトップアプリからしか読めなかったので あらためてAmazon PODから買った。 Creating Intelligent Content with Lightweight DITA (ATTW Series in Technical and Professional Communication)作者:Evia, Carlos発売日: 2018/12/05メディア: ペーパーバック … <p>Creating Intelligent Content with Lightweight DITAをPODで購入したので読んでいる。 いや、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%BD%F1%C0%D2">電子書籍</a>版を前に買ったのだが(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Kindle">Kindle</a>でない)、実用に耐えないデスクトップアプリ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%AB%A4%E9%A4%B7">からし</a>か読めなかったので あらためて<a class="keyword" href="http://d.hatena.ne.jp/keyword/Amazon">Amazon</a> PODから買った。</p> <p><div class="hatena-asin-detail"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/0815393822/laughingandg-22/"><img src="https://m.media-amazon.com/images/I/41dZuEqVC2L._SL160_.jpg" class="hatena-asin-detail-image" alt="Creating Intelligent Content with Lightweight DITA (ATTW Series in Technical and Professional Communication)" title="Creating Intelligent Content with Lightweight DITA (ATTW Series in Technical and Professional Communication)"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/0815393822/laughingandg-22/">Creating Intelligent Content with Lightweight DITA (ATTW Series in Technical and Professional Communication)</a></p><ul><li><span class="hatena-asin-detail-label">作者:</span><a href="http://d.hatena.ne.jp/keyword/Evia%2C%20Carlos" class="keyword">Evia, Carlos</a></li><li><span class="hatena-asin-detail-label">発売日:</span> 2018/12/05</li><li><span class="hatena-asin-detail-label">メディア:</span> ペーパーバック</li></ul></div><div class="hatena-asin-detail-foot"></div></div></p> <p>ChairのCarlos氏が書いているので、内容の正確性は信用してよいだろう。 DITA-OTなどの実装側の挙動はまた別の話として。</p> <p>記事タイトルの内容より雑感の方が多い。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.oasis-open.org%2Fcommittees%2Ftc_home.php%3Fwg_abbrev%3Ddita-lightweight-dita" title="Lightweight DITA SC | OASIS" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita-lightweight-dita">www.oasis-open.org</a></cite></p> <p>LwDITAについては塩漬けしている同人誌でそれなりに詳しく書く予定なので、ここではざっくりと書く。 DITAについては「<a href="https://www.antenna.co.jp/dita/dita-intro.html">DITA &#x8D85;&#x5165;&#x9580;</a>」なんかを見て。 で、「<a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CA%A5%A6%A4%C7%A5%E4%A5%F3%A5%B0%A4%CA">ナウでヤングな</a>世代はあんまり扱わない」 「DITAは構造化文書初学者がこれから取り組むには仕組みも要素の数もヘヴィ」 「(GFM程度の)<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>+−<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5Calpha" alt="\alpha"/>の表現力で書けるくらいの入門セット」大体そういう感じ <a href="#f-22e6d31c" name="fn-22e6d31c" title="XMLの直接記述をちょっと避けられてもXSLTなどは既存資産を活用するには必須になってくるから、 ライティングはともかくオーサリングの人間の負担はそこまで減らない気もする。">*1</a>。</p> <p>で、+<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5Calpha" alt="\alpha"/>な要素である、DITA機能リミテッド版の1つにフィルタリングがある。 通常のDITAでは、<code>&lt;p product="&lt;任意&gt;" &gt;&lt;/p&gt;</code>のように書くところ、 XDITA(<a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>版LwDITA)では次のように書く。</p> <pre class="code lang-xml" data-lang="xml" data-unlink><span class="synIdentifier">&lt;p </span><span class="synType">props</span>=<span class="synConstant">&quot;&lt;任意&gt;&quot;</span><span class="synIdentifier">&gt;&lt;/p&gt;</span> </pre> <p>MDITA(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>版LwDITA)とHDITA(<a class="keyword" href="http://d.hatena.ne.jp/keyword/HTML5">HTML5</a>版LwDITA)では次のように書く。</p> <p>~~~html</p> <p><p data-props="<任意>" >フィルタリングされる文章......</p></p> <p>~~~</p> <p>フィルタリング処理はDITAと同じくDITAVAL(<a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>)ファイルに書いていくのだが、通常DITAではここは</p> <p><pre class="code lang-xml" data-lang="xml" data-unlink><span class="synIdentifier">&lt;val&gt;</span> <span class="synIdentifier">&lt;prop </span><span class="synType">att</span>=<span class="synIdentifier">product</span><span class="synConstant">&quot; val=&quot;</span><span class="synError">&lt;</span><span class="synIdentifier">任意&gt;</span>&quot; action=&quot;exclude&quot; /&gt; <span class="synIdentifier">&lt;/val&gt;</span> </pre></p> <p>のように書く。で、LwDITAでは次のようになるワケだが。</p> <p><pre class="code lang-xml" data-lang="xml" data-unlink><span class="synIdentifier">&lt;val&gt;</span> <span class="synIdentifier">&lt;prop </span><span class="synType">att</span>=<span class="synConstant">&quot;props&quot;</span><span class="synIdentifier"> </span><span class="synType">val</span>=<span class="synConstant">&quot;&lt;任意&gt;&quot;</span><span class="synIdentifier"> </span><span class="synType">action</span>=<span class="synConstant">&quot;exclude&quot;</span><span class="synIdentifier"> /&gt;</span> <span class="synComment">&lt;!-- XDITA --&gt;</span> <span class="synIdentifier">&lt;prop </span><span class="synType">att</span>=<span class="synConstant">&quot;data-props&quot;</span><span class="synIdentifier"> </span><span class="synType">val</span>=<span class="synConstant">&quot;&lt;任意&gt;&quot;</span><span class="synIdentifier"> </span><span class="synType">action</span>=<span class="synConstant">&quot;exclude&quot;</span><span class="synIdentifier"> /&gt;</span> <span class="synComment">&lt;!-- MDITA, HDITA --&gt;</span> <span class="synIdentifier">&lt;/val&gt;</span> </pre></p> <p>Creating Intelligent Content with Lightweight DITAで出てくるまで、フィルタリング機能をLwDITAで使うことは考えていなかった。 (Fullweight )DITAと併用できるという特性を考えればこういう書き方になるのは「それはそう」という感じだが、 「<a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita-lightweight-dita">Lightweight DITA SC | OASIS</a>」ではtopicとmap以外の書き方についてはほどんどなく、 「DITAのこれは制限されたこれが使えるよ」のような書き方なので、LwDITAからのDITA初学者が学ぶには大分厳しい。 lntroductionとは書いてあるが、DITAを知っている人間に向けたLwDITA Introductionのように感じた。LwDITAのコンセプトが 「DITA沼の浅いところを作ってそこからひきずりこみたいわね」であることを考えると<a href="#f-7b0c34ec" name="fn-7b0c34ec" title="[要出典]">*2</a>どうなんだそれは。 DITA機能で特徴的なconref, keyref, フィルタリングといったものを使わない場合、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>のドキュメントツールとして GitBookやPandocより優位な点をLwDITAに見出すのは苦労すると思う。</p> <p>2018年にLwDITAの仕様が1.0になったのだが、まとまった資料はCreating Intelligent Content with Lightweight DITAと、 DITA on Diet くらいに感じてしまう。DITAっぽい機能については Creating Intelligent Content with Lightweight DITA の方を読む必要があるが、 個人が学習をはじめる本としては5000円弱はちょっと躊躇らうのではなかろうか。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Flarrykollar%2FDITAdiet" title="larrykollar/DITAdiet" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://github.com/larrykollar/DITAdiet">github.com</a></cite></p> <p>まあ、コミュニティ内部では色々回っているのかもしれないが。</p> <p>DITAオー<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%EA%A5%F3">サリン</a>グ対応ソフトやDITA対応のCCMSなどではLwDITA対応もされているようだが、 LwDITAから学ぼうとする人間がいきなりOxygenを買うかというと微妙なところでは。 <a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>を書かない手段としての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>の話の延長で<a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>エディタを買うだろうか。</p> <p>P.S. DITA on Dietは私訳版を作成している。今進捗半分くらいだけど。CC-BY-SA 4.0なので公開は可能なはず。でもOje Mediaというところ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>アカウントは活動している様子だけれど、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Website">Website</a>はGoDaddyのやつが出てくるんだが、どうなっているんだ。</p> <p>P.S. もうちょっと直接的なサンプル群が公開されているな。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2FDITAWriter%2FLwDITA_Code_Samples" title="DITAWriter/LwDITA_Code_Samples" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://github.com/DITAWriter/LwDITA_Code_Samples">github.com</a></cite></p> <p>LwDITAの流れについての資料は「インテリジェントコンテンツにおけるAXの役割と考察 (関根, 2016)」もある。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Factive_action%3Drepository_view_main_item_detail%26page_id%3D13%26block_id%3D8%26item_id%3D175945%26item_no%3D1" title="情報学広場:情報処理学会電子図書館" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_id=13&block_id=8&item_id=175945&item_no=1">ipsj.ixsq.nii.ac.jp</a></cite></p> <div class="footnote"> <p class="footnote"><a href="#fn-22e6d31c" name="f-22e6d31c" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text"><a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>の直接記述をちょっと避けられても<a class="keyword" href="http://d.hatena.ne.jp/keyword/XSLT">XSLT</a>などは既存資産を活用するには必須になってくるから、 ライティングはともかくオー<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%EA%A5%F3">サリン</a>グの人間の負担はそこまで減らない気もする。</span></p> <p class="footnote"><a href="#fn-7b0c34ec" name="f-7b0c34ec" class="footnote-number">*2</a><span class="footnote-delimiter">:</span><span class="footnote-text">[要出典]</span></p> </div> hidden_alma ライトウエイト構造化と記法の種類数 hatenablog://entry/26006613488261466 2019-12-23T23:03:04+09:00 2019-12-23T23:03:04+09:00 この記事はEWBアドベントカレンダー2019の23日目の記事です。 adventar.org EWBとRe:VIEWの記法の数 書籍用マークアップEWBとその影響を受けて作られたRe:VIEWは、軽量マークアップとしてはかなり記法の数は少ないものとなります。 組版トリガ或いはプリプロセッサのマークアップを外すと、そのほぼ全てが2種類程度に収まってしまいます。EWBでは //トリガ[オプション]{値 //トリガ} //トリガ[オプション] 値 なので実質1つですし、Re:VIEWでは @<inline>{値} //block[オプション]{ 値 //} と、リスト記法程度です。テーブルは、ここで… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の23日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <h3>EWBと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>の記法の数</h3> <p>書籍用<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>EWBとその影響を受けて作られた<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>は、軽量<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>としてはかなり記法の数は少ないものとなります。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガ或いは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%EA%A5%D7%A5%ED%A5%BB%A5%C3%A5%B5">プリプロセッサ</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>を外すと、そのほぼ全てが2種類程度に収まってしまいます。EWBでは</p> <pre class="code ewb" data-lang="ewb" data-unlink>//トリガ[オプション]{値 //トリガ} //トリガ[オプション] 値</pre> <p>なので実質1つですし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>では</p> <pre class="code review" data-lang="review" data-unlink>@&lt;inline&gt;{値} //block[オプション]{ 値 //} </pre> <p>と、リスト記法程度です。テーブルは、ここではテーブルブロック内での独自の話とさせてください。</p> <p>例えば強調のインラインは</p> <pre class="code" data-lang="" data-unlink>It is //g{Emphasis//g}. It is @&lt;em&gt;{Emphasis}.</pre> <p>となります。つまり、専用の記法ではなく汎用の記法となります。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>では強調は<code>*Emphasis*</code>ですね。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>に汎用記法がないという主張ではありません。それこそHTMLタグがそうなってしまうので。</p> <p>あ、最初に書き損ねましたが、今回はお気持ちだけで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%D3%A5%C7%A5%F3%A5%B9">エビデンス</a>なしでやっていきます。</p> <h3>easybooks</h3> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Ferukiti%2Feasybooks" title="erukiti/easybooks" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://github.com/erukiti/easybooks">github.com</a></cite></p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>の記法を使いつつ、必要な箇所は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>で書いて<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB">コンパイル</a>まで持っていけるようにするツールだそうです。 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>でHTMLタグを使うところを<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>が担うという認識でいいんですかね。</p> <p>とりあえず<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>にあった統一性のようなものが失われたとも言えますね。 EWBから<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>で他のLWMLから記法が追加されている(後継というワケではないので当たり前ですが)のに今更ですが。 即ち、専用<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%F3%A5%BF%A5%C3%A5%AF%A5%B9">シンタックス</a>を持つ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>記法と汎用<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>記法の混在です。</p> <p>まあEWBと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>で近すぎる関係性ではあるので、もう1つの有名な専用記法と汎用記法を持つdocutils及び<a class="keyword" href="http://d.hatena.ne.jp/keyword/Sphinx">Sphinx</a>の話も持ってきます。</p> <h3>docutilsと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Sphinx">Sphinx</a>(reStructuredText)</h3> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Python">Python</a>という巨大プロジェクトのドキュメントのために生み出されたこれらはreSTという軽量<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>を使います。 特徴として、強調などには<code>*Emphasis*</code>といったよく見られる専用の記法があり、それに留まらないものを記述できるroleとDirectiveがあります。 多くはインラインとブロックで対応しますが、まあ拡張次第ではあります。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.sphinx-doc.org%2Fja%2Fmaster%2Fusage%2Frestructuredtext%2Fbasics.html" title="reStructuredText入門 — Sphinx 3.0.0+/87946340 ドキュメント" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://www.sphinx-doc.org/ja/master/usage/restructuredtext/basics.html">www.sphinx-doc.org</a></cite></p> <p>プレーンテキスト上で<code>*Emphasis*</code>と<code>//g{Emphasis//g}</code>、どちらが見易いか或いは書き易いかと問えばどちらも前者である人が多いのではないでしょうか。 慣れの問題の側面もありますが、書き易さではまあ合意が得られるはずです。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/SGML">SGML</a>は一般的に山括弧を用いる記法で統一されています。<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CTeX%7B%7D" alt="\TeX{}"/>も、これは嘘ですが、<code>\</code>と<code>{</code> <code>}</code> と <code></code>があれば文書に必要な<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>のための記法は調います。 これだけで構成された文書は人間には読みづらく、人は様々な互換記法を生み出してきました。 その多くは頻出する構造に対しショートハンドを与える形です(「そのように変換される」といった方が良いか)。 頻出する構造の全てに専用の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>をつける、それに近い試みはあるにはありますが、普及率はイマイチといえます。 人は数十種類の専用記法を覚えるのが苦手なので。 そこを割り切ったからこその<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>の隆盛という見方も よく見掛けるものです。</p> <h3>つまりreSTがライトウエイト構造化だったんだよ!(な、なんだってー</h3> <p>現在easybooksのようなアプリケーションが登場したのは、特定用途のときには統一的記法でよかったもの、 汎用・日常的な用途の延長として書き(見)易い装飾的な記法のバランシングが行き着く形の1つがお気に入りの素材によって再生産されると この辺りのバランスの試みがみられるということかもしれません。 reSTの設計の歴史はちゃんと調べていないので強引ではありますが、文書毎に専用の記述をしたい場合に汎用記法を利用して拡張を行う仕組みという バランスについてなので、この辺りは突っこまれると困る。 Pandocについては、SpanとDivがこの辺りに対応するという見方をすれば似た構造に見えてきます。</p> hidden_alma よくわかっていないツールと言語でよくわかっていないマークアップのCustom Writerをやっていく hatenablog://entry/26006613487472896 2019-12-21T23:34:41+09:00 2019-12-21T23:34:41+09:00 この記事は EWB アドベントカレンダー2019の21日目の記事です。 adventar.org Pandocアドベントカレンダー2019の21日目の記事です。 https://adventar.org/calendars/4338 20日目は某ZR(ざんねん🙃) (@zr_tex8r) | Twitterさんで https://zrbabbler.hatenablog.com/entry/2019/12/04/234053でした。 最初に書いておくと完成してません。 明日夜だと思っていたタスクが朝締切だったりするなど、師走を実感しますね。 前置き さて、EWBの情報を色々と集めてきたわけです… <p>この記事は</p> <p>EWB <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の21日目の記事です。</p> <p><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>Pandoc<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の21日目の記事です。</p> <p><a href="https://adventar.org/calendars/4338">https://adventar.org/calendars/4338</a></p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/20%C6%FC">20日</a>目は<a href="https://twitter.com/zr_tex8r">&#x67D0;ZR&#xFF08;&#x3056;&#x3093;&#x306D;&#x3093;&#x1F643;&#xFF09; (@zr_tex8r) | Twitter</a>さんで <a href="https://zrbabbler.hatenablog.com/entry/2019/12/04/234053">https://zrbabbler.hatenablog.com/entry/2019/12/04/234053</a>でした。</p> <p>最初に書いておくと完成してません。 明日夜だと思っていたタスクが朝締切だったりするなど、師走を実感しますね。</p> <h3>前置き</h3> <p>さて、EWBの情報を色々と集めてきたわけですが、</p> <p><cite class="hatena-citation"><a href="https://www.slideshare.net/shimizukawa/python2sphinx">www.slideshare.net</a></cite></p> <p>「reSTをEWBに!」「いいですとも!」</p> <p>ということで、他の軽量<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>形式からEWBにして作成された書籍がありました。残念ながら変換処理については出版社内部で行われたようで詳細は分かりませんが、DocutilsはreST以外のReader、<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>やHTML以外のWriterを独自に作ることもできるので、この辺りを活用するとちょっと楽そうですね。楽だとは言っていませんが。</p> <p>そんな感じに記事のネタを探していたワケですが、うっかり21日にPandoc<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>の登録をしていたことを思い出しました。</p> <p>そういえば鹿野さんの記事でPandocとDocutilsの相似について言及されていました。</p> <p><cite class="hatena-citation"><a href="https://golden-lucky.hatenablog.com/entry/2019/12/16/072822">golden-lucky.hatenablog.com</a></cite></p> <p><strong>ヨシ!</strong></p> <h3>EWBの記法おさらい</h3> <p>EWB文書本体の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>には 「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガ」と「編集トリガ」 があります。このうち「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガ」は書籍上の見た目に関わるものなので、今回Pandocで変換元とする<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>からは考えなくとも良さそうです。</p> <p>編集トリガの基本文法は以下のようになります。実はブロックかインラインかは記法上は区別がなく、各トリガそれぞれで異なり、なんだったら書き換えられます。</p> <pre class="code ewb" data-lang="ewb" data-unlink>//&lt;文字列&gt;{ ...//&lt;文字列&gt;}... </pre> <p>見出しなどは開始タグ閉じタグがつきません。</p> <pre class="code ewb" data-lang="ewb" data-unlink>//i 見出し </pre> <p>リストの基本は以下のようになります。</p> <pre class="code ewb" data-lang="ewb" data-unlink>///k1{ &lt;記号&gt; &lt;文字列&gt; &lt;記号&gt; &lt;文字列&gt; //k1} </pre> <p>テーブルはシンプルな構造であれば タブ文字区切りで似たことをやればよいので、基本は大体これでいける気がしてきました。</p> <p>今回はこれらの基本的なところに絞り、 Custom Writerに挑戦してみます。</p> <h4>みりあやんないよ</h4> <ul> <li>EWBでは<strong>改行が反映されます</strong>が、今回は正しく処理できるかは考慮しないものとします。一応<code>SoftBreak</code>設定してやれば動くハズ?</li> <li>EWBで使える文字種はJIS全角範囲とされています。EWBで処理時にエラーを吐いてくれるはずなので今回はスルーします。</li> </ul> <h3>Pandoc Custom Writer</h3> <p>Pandoc<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019にはReaderの記事がありますが、</p> <p><cite class="hatena-citation"><a href="https://golden-lucky.hatenablog.com/entry/2019/12/17/085438l">golden-lucky.hatenablog.com</a></cite></p> <p>Writerは既にPandocに渡っている構造の出力を弄るだけなのでより簡単、な筈、です。</p> <p>カスタムライターを作るために、先ずは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Lua">Lua</a>における出力例の一覧を取得します<a href="#f-146c2b96" name="fn-146c2b96" title="[https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#custom-writers:title]">*1</a>。</p> <p>これを書き換えていきます。</p> <p>例えば</p> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synComment">-- sample.lua</span> <span class="synIdentifier">function</span> Emph(s) <span class="synStatement">return</span> <span class="synConstant">&quot;&lt;em&gt;&quot;</span> .. s .. <span class="synConstant">&quot;&lt;/em&gt;&quot;</span> <span class="synIdentifier">end</span> </pre> <p>が</p> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synComment">-- ewbfilter.lua</span> <span class="synIdentifier">function</span> Emph(s) <span class="synStatement">return</span> <span class="synConstant">&quot;//g{&quot;</span> .. s .. <span class="synConstant">&quot;//g}&quot;</span> <span class="synIdentifier">end</span> </pre> <p>になる、といった感じですね。実際のEWBでは 文字<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%F3%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0">エンコーディング</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/SJIS">SJIS</a>か<a class="keyword" href="http://d.hatena.ne.jp/keyword/EUC">EUC</a>-JPになりますが、そんなんは後で変換かければええ。</p> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>ケープ</h4> <p>さて、出力毎に調整が必要な機能として <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>ケープがあります。</p> <p>(Pandoc)<a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>では問題の無かった表現がEWBではNG、というものですね。</p> <p>EWBのトリガは先頭に<code>//</code>があるので、ここから3種くらいの区切りまでがトリガとされます。<code>//</code>がきたら特別な場合を除き <code>////</code>に直してやる必要があります。</p> <p><code>/**hoge**</code>といった並びのとき、素朴な置換をすると<code>///g{hoge//g}</code>となりますが、ここはEWB(ハンドブック)を信じてそのままに。</p> <p>また、今回扱わないといった<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガも <a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>文中に表われるのはけしからんので<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>ケープします。<code>@@</code>は<code>@@@@</code>にします。</p> <h4>改行</h4> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synIdentifier">function</span> SoftBreak() <span class="synStatement">return</span> <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span> <span class="synIdentifier">end</span> <span class="synIdentifier">function</span> LineBreak() <span class="synStatement">return</span> <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span> <span class="synIdentifier">end</span> </pre> <h4>箇条書き</h4> <h5>BulletList</h5> <p>ある意味単純ですね。ネストも問題無いハズ。 項目先頭の記号はとりあえず<code>・</code>でハードコーディング。</p> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synIdentifier">function</span> BulletList(items) <span class="synStatement">local</span> buf = <span class="synType">{}</span> <span class="synStatement">for</span> _, items <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(items) <span class="synStatement">do</span> <span class="synIdentifier">table.insert</span>(buf, <span class="synConstant">&quot;・ //|&quot;</span> .. item .. <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) <span class="synStatement">end</span> <span class="synStatement">return</span> <span class="synConstant">&quot;//k1{{&quot;</span> ..<span class="synIdentifier">table.concat</span>(buf, <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) .. <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">//k1}&quot;</span> <span class="synIdentifier">end</span> </pre> <h5>OrderedList</h5> <p>先程よりちょっと厄介なのは、<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>やHTMLと違って自動インクリメントされる<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>ではないので、 数字をこちらで回すこと。まあそれだけのハズ。</p> <pre class="code lang-lua" data-lang="lua" data-unlink> <span class="synIdentifier">function</span> OrderedList(items) <span class="synStatement">local</span> buf = <span class="synType">{}</span> <span class="synStatement">for</span> i, item <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(items) <span class="synStatement">do</span> <span class="synIdentifier">table.insert</span>(buf, i .. <span class="synConstant">&quot;.//| &quot;</span> .. item .. <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) <span class="synStatement">end</span> <span class="synStatement">return</span> <span class="synConstant">&quot;//k2{{&quot;</span> .. <span class="synIdentifier">table.concat</span>(buf, <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) .. <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">//k2}}&quot;</span> <span class="synIdentifier">end</span> </pre> <h5>DefinitionList</h5> <p>まあ箇条書きのグループとしてみれば、やることは大体同じでしょう。</p> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synIdentifier">function</span> DefinitionList(items) <span class="synStatement">local</span> buffer = <span class="synType">{}</span> <span class="synStatement">for</span> _, item <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(items) <span class="synStatement">do</span> <span class="synStatement">for</span> k, v <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(item) <span class="synStatement">do</span> <span class="synIdentifier">table.insert</span>(buf, k .. <span class="synConstant">&quot; //| &quot;</span>.. v ..<span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) <span class="synStatement">end</span> <span class="synStatement">end</span> <span class="synStatement">return</span> <span class="synConstant">&quot;//k3{&quot;</span> .. <span class="synIdentifier">table.concat</span>(buf, <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) .. <span class="synConstant">&quot;//k3}&quot;</span> <span class="synIdentifier">end</span> </pre> <h4>コードブロック</h4> <p>元のサンプルだと<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>ケープ処理挟んでたんですが、 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C8%A5%EA%A5%D3%A5%E5%A1%BC%A5%C8">アトリビュート</a>はまあオプション引数に影響するにしても トリガ定義側でなんとかする奴なので今回は飛ばします。</p> <p>ただ、コードブロック内部のコメントは特殊な処理をしてコメントであることを明示するようにしなければなりません。 えっア<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%C7%A5%A2">イデア</a>が浮かばない。とりあえず空のローカル関数を定義して濁します。</p> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synIdentifier">function</span> CodeBlock(s, attr) <span class="synStatement">local</span> cmt_parse = comment_perse(s) <span class="synStatement">return</span> <span class="synConstant">&quot;//list1{</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span> .. cmt_perse ..<span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">//list1}&quot;</span> <span class="synIdentifier">end</span> <span class="synStatement">local</span> <span class="synIdentifier">function</span> comment_parse(s) <span class="synStatement">return</span> s <span class="synIdentifier">end</span> </pre> <h4>水平線</h4> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synIdentifier">function</span> HorizontalRule() <span class="synStatement">return</span> <span class="synConstant">&quot;//kei</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span> <span class="synIdentifier">end</span> </pre> <h4>Caption付き図表</h4> <p>EWBでは、基本的には図表を文書中では扱いません。テーブル などは記述可能ですが、文書中には基本的にユニークな番号とキャプションの文字列だけです。実際に図表リストを別に作成するのは処理が複雑化するのでスルーします。 ユニークな番号に関しては数字以外でもいいはずですが、面倒なので数字ということにしましょう。実装も手を抜いて 使用直前にインクリメントでいきましょう。</p> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synStatement">local</span> fignum = <span class="synConstant">0</span> <span class="synIdentifier">function</span> CaptionedImage(src, tit, caption, attr) fignum = fignum + <span class="synConstant">1</span> <span class="synStatement">return</span> <span class="synConstant">'//f'</span>.. fignum .. <span class="synConstant">&quot; &quot;</span> .. caption .. <span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span> <span class="synIdentifier">end</span> </pre> <h4>Table</h4> <p>EWBのテーブルはそれなりに複雑な図表も可能ですが、シンプルテーブルの入力を仮定します。 寄せの指定は簡単ですが、カラム幅の文字数指定って互換ありそうでないんですよね。今回はやりません。</p> <pre class="code lang-lua" data-lang="lua" data-unlink><span class="synIdentifier">function</span> Table(caption, aligns, widths, headers, rows) <span class="synStatement">local</span> buf = <span class="synType">{}</span> <span class="synStatement">local</span> <span class="synIdentifier">function</span> add(s) <span class="synIdentifier">table.insert</span>(buf, s) <span class="synIdentifier">end</span> add(<span class="synConstant">&quot;//table1&quot;</span>) <span class="synStatement">for</span> _, align_raw <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(align) <span class="synStatement">do</span> <span class="synStatement">local</span> align = ewb_align(align_raw) add(<span class="synConstant">&quot;[&quot;</span> .. align .. <span class="synConstant">&quot;]&quot;</span>) <span class="synStatement">end</span> add(<span class="synConstant">&quot;{</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) <span class="synStatement">local</span> header_row = <span class="synType">{}</span> <span class="synStatement">local</span> empty_header = <span class="synConstant">true</span> <span class="synStatement">for</span> i, h <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(headers) <span class="synStatement">do</span> empty_header = empty_header <span class="synStatement">and</span> h = <span class="synConstant">&quot;&quot;</span> <span class="synStatement">end</span> <span class="synStatement">if</span> empty_header <span class="synStatement">then</span> head = <span class="synConstant">&quot;&quot;</span> <span class="synStatement">else</span> add(<span class="synConstant">&quot;//g{&quot;</span>) <span class="synStatement">for</span> _, h <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(header_row) <span class="synStatement">do</span> add(h .. <span class="synConstant">&quot;</span><span class="synSpecial">\t</span><span class="synConstant">&quot;</span>) <span class="synStatement">end</span> add(<span class="synConstant">&quot;//g}</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) <span class="synStatement">for</span> _, row <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(rows) <span class="synStatement">do</span> <span class="synStatement">for</span> i, c <span class="synStatement">in</span> <span class="synIdentifier">pairs</span>(row) <span class="synStatement">do</span> add(c .. <span class="synConstant">&quot;</span><span class="synSpecial">\t</span><span class="synConstant">&quot;</span>) <span class="synStatement">end</span> add(<span class="synConstant">&quot;</span><span class="synSpecial">\n</span><span class="synConstant">&quot;</span>) <span class="synStatement">end</span> <span class="synStatement">end</span> add(<span class="synConstant">&quot;//table1}&quot;</span>) <span class="synStatement">return</span> <span class="synIdentifier">table.concat</span>(buf,<span class="synConstant">'</span><span class="synSpecial">\n</span><span class="synConstant">'</span>) <span class="synIdentifier">end</span> </pre> <h4>未完</h4> <p>とりあえず<code>local</code>でないsample.<a class="keyword" href="http://d.hatena.ne.jp/keyword/lua">lua</a>に出てくる関数を全部埋めれば完成するハズ。 <code>Span</code>や<code>Dev</code>も、本格的に変換を作るなら編集トリガと対応を作るべきなんだろうなあ。</p> <p>というワケで、Readerでの難しい話が嘘のようにWriterの出力を弄るのは楽かもしれないという結びです<a href="#f-fa31f86c" name="fn-fa31f86c" title="ならなぜ完成してないんでしょうねぇ">*2</a>。</p> <p>明日の枠も空いてるみたいですが、明日は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Sphinx">Sphinx</a>をやっている予定なのでこの続きで埋めるとかはないです。</p> <div class="footnote"> <p class="footnote"><a href="#fn-146c2b96" name="f-146c2b96" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text"><a href="https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#custom-writers">&#xFF08;&#x65B0;&#x30FB;&#x5DE5;&#x4E8B;&#x4E2D;&#xFF09;Pandoc&#x30E6;&#x30FC;&#x30B6;&#x30FC;&#x30BA;&#x30AC;&#x30A4;&#x30C9; &#x65E5;&#x672C;&#x8A9E;&#x7248; &mdash; &#x65E5;&#x672C;Pandoc&#x30E6;&#x30FC;&#x30B6;&#x4F1A; 2019.02.21 &#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;</a></span></p> <p class="footnote"><a href="#fn-fa31f86c" name="f-fa31f86c" class="footnote-number">*2</a><span class="footnote-delimiter">:</span><span class="footnote-text">ならなぜ完成してないんでしょうねぇ</span></p> </div> hidden_alma 動いているEWBを見るの巻 hatenablog://entry/26006613486999598 2019-12-20T19:19:12+09:00 2019-12-20T19:19:12+09:00 この記事はEWBアドベントカレンダー2019の20日目の記事です。 adventar.org 作成済みVMイメージの起動 以前の記事を読むと、最新FreeBSD環境でのEWB関連パッケージ展開に失敗してる有様が分かるかと思います。やりようはあるのかもしれませんが、とりあえずモチベは高くなかったので、例のDVDについてきたFreeBSD+EWB.vmdkのイメージをVirtual Boxで起動することに。ううっ。 まあ使うと決めたら難しいことはないんで、やるだけ。 やっていき VM起動。EWBアリ さっそくsampleディレクトリのファイルを触ってみます。 $ xemacsで、おお、xemacs… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の<a class="keyword" href="http://d.hatena.ne.jp/keyword/20%C6%FC">20日</a>目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <h3>作成済み<a class="keyword" href="http://d.hatena.ne.jp/keyword/VM">VM</a>イメージの起動</h3> <p>以前の記事を読むと、最新<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>環境でのEWB関連パッケージ展開に失敗してる有様が分かるかと思います。やりようはあるのかもしれませんが、とりあえずモチベは高くなかったので、例のDVDについてきた<strong><a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>+EWB.vmdk</strong>のイメージをVirtual Boxで起動することに。ううっ。</p> <p>まあ使うと決めたら難しいことはないんで、やるだけ。</p> <h3>やっていき</h3> <p><figure class="figure-image figure-image-fotolife" title="VM起動。EWBアリ"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hidden_alma/20191220/20191220181207.png" alt="f:id:hidden_alma:20191220181207p:plain" title="f:id:hidden_alma:20191220181207p:plain" class="hatena-fotolife" itemprop="image"></span><figcaption><a class="keyword" href="http://d.hatena.ne.jp/keyword/VM">VM</a>起動。EWBアリ</figcaption></figure></p> <p>さっそくsample<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8">ディレクト</a>リのファイルを触ってみます。 <code>$ xemacs</code>で、おお、xemacs君が。適当に<code>sample.ewb</code>を開いてみると。</p> <p><figure class="figure-image figure-image-fotolife" title="xemacs sample.ewb"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hidden_alma/20191220/20191220181534.png" alt="f:id:hidden_alma:20191220181534p:plain" title="f:id:hidden_alma:20191220181534p:plain" class="hatena-fotolife" itemprop="image"></span><figcaption>xemacs sample.ewb</figcaption></figure></p> <p>あっ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9">文字コード</a>が。</p> <pre class="code lang-sh" data-lang="sh" data-unlink>$ <span class="synStatement">echo</span><span class="synConstant"> </span><span class="synPreProc">$LANG</span> </pre> <p>をすると<code>ja_JP.EUC</code>の表示。ターミナルは<a class="keyword" href="http://d.hatena.ne.jp/keyword/EUC">EUC</a>-JPと。ではこのファイルは<a class="keyword" href="http://d.hatena.ne.jp/keyword/SJIS">SJIS</a>とかかな。</p> <pre class="code lang-sh" data-lang="sh" data-unlink>$ nkf <span class="synSpecial">--guess</span> sample.ewb </pre> <p>出ません。そう、思い出してください。当時の<code>nkf</code>のバージョンは…… 1.9! <a class="keyword" href="http://d.hatena.ne.jp/keyword/UTF-8">UTF-8</a>なんかは知らない子扱いですよ。ちょっと扱いづらすぎますね。</p> <p>とりあえずEWBが置いてある場所を見てみます。最新環境で入れてみることを諦めたわけではないですからね。</p> <p><figure class="figure-image figure-image-fotolife" title="EWBが実際に置いてあった場所"><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/h/hidden_alma/20191220/20191220182329.png" alt="f:id:hidden_alma:20191220182329p:plain" title="f:id:hidden_alma:20191220182329p:plain" class="hatena-fotolife" itemprop="image"></span><figcaption>EWBが実際に置いてあった場所</figcaption></figure></p> <p>サーバの<a class="keyword" href="http://d.hatena.ne.jp/keyword/CUI">CUI</a>探索気分はこのへんで。</p> <p>「こんな不便な環境にいられるか! 俺はホスト環境に戻らせてもらう!」</p> <p>というワケで、EWBをこの<a class="keyword" href="http://d.hatena.ne.jp/keyword/VM">VM</a>牧場で飼うことができました。 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB">コンパイル</a>やツールを試す予定だったんですが、集中が切れたので。</p> <h3>Next</h3> <p>明日Pandoc<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>の担当だったんですがどうしましょう。 EWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>も担当ですね。 そうだ! PandocでEWBを出力しよう!(?)</p> <p>:thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face::thinking_face:</p> <p>次回! ひだるま死す! デュエルスタンバイ!</p> hidden_alma Perl to Goしようと思ったら結構既出だった hatenablog://entry/26006613486686735 2019-12-19T23:54:36+09:00 2019-12-19T23:54:36+09:00 この記事はEWB アドベントカレンダー2019の19日目の記事です。 adventar.org この一連の記事の最終的な目標は現代のTeXLive環境で動作するEWBを Invent*1することだというのは初めて書く気もします。アドベントカレンダー中には終わりませんが、長期的にはできるといいな。 さて、EWBを構成するツールはどれもこれもJavaかEmacsLispだと思っていたら、 そこそこPerlスクリプトがあることが過去の記事で判明したワケです。 Perl5が動かない現代的環境はほぼ無いので、これらはそのまま持ってきても 大体の環境で動作してくれるはずです。でも、気軽に達成感が得られそう… <p>この記事はEWB <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の19日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>この一連の記事の最終的な目標は現代のTeXLive環境で動作するEWBを Invent<a href="#f-fa8a0a58" name="fn-fa8a0a58" title="1. 発明する 2. でっち上げる">*1</a>することだというのは初めて書く気もします。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>中には終わりませんが、長期的にはできるといいな。</p> <p>さて、EWBを構成するツールはどれもこれも<a class="keyword" href="http://d.hatena.ne.jp/keyword/Java">Java</a>かEmacsLispだと思っていたら、 そこそこ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Perl">Perl</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>があることが過去の記事で判明したワケです。 Perl5が動かない現代的環境はほぼ無いので、これらはそのまま持ってきても 大体の環境で動作してくれるはずです。でも、気軽に達成感が得られそうな手段を放置するのはなんかアレだし、モチベーションアップのために手作業のあたたかみのある車輪を手に入れたい。</p> <p>一般的な話として、「かつて<a class="keyword" href="http://d.hatena.ne.jp/keyword/Perl">Perl</a>で書き捨てた<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>をGoに直したい」欲求は 多いようで、様々な記事が見つかります<a href="#f-860fe05c" name="fn-860fe05c" title="CUIツールが作りやすいことなどが関連しているのでしょうか。">*2</a>。例えば</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fqiita.com%2Fbelq%2Fitems%2F96cffacb9665d3ad40d9" title="PerlとGolangの対応表っぽいもの - Qiita" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://qiita.com/belq/items/96cffacb9665d3ad40d9">qiita.com</a></cite></p> <p>のような。</p> <p>あと19日が1時間もない状態でこの記事を書きはじめたので、ザッと見ていきましょう。</p> <h3>gettoc</h3> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fhidaruma%2Fewb-tool-scripts-old%2Fblob%2Fmaster%2Fgettoc%2Fgettoc" title="hidaruma/ewb-tool-scripts-old" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://github.com/hidaruma/ewb-tool-scripts-old/blob/master/gettoc/gettoc">github.com</a></cite></p> <p>サルベージした<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>群からgettocの登場です。 読みこむewbファイルを登録したファイルを元に、Table of Contentsを作るという目的のツールですね。<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>も読み込んだファイルの見出しから<a class="keyword" href="http://d.hatena.ne.jp/keyword/toc">toc</a>を生成してくれますが、 こちらはいつ使うんだ、という。各トリガなどの読み込みをしてEWBファイルとしての目次を出力します。<code>\tableofcontents</code>で<a class="keyword" href="http://d.hatena.ne.jp/keyword/tex">tex</a>の処理になると、<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CTeX%7B%7D" alt="\TeX{}"/>nitianの仕事になってしまうので、この独自<a class="keyword" href="http://d.hatena.ne.jp/keyword/toc">toc</a>を使っていくようです。</p> <p>方針としては</p> <ul> <li>init処理 -> os/flagでやればよさそう</li> <li>トリ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AC%A5%EA">ガリ</a>スト取得 -> 読み込んだファイル中のトリガをstringのリストにする</li> <li>ファイル処理 -> メモリ容量を超越する超巨大ファイルは後で考えるとしてとりあえずio/utilかな</li> <li>見出し文字列をファイルから取得 -> 一先ずreadLine()あたりで良さそう。少なくとも見出しは行頭スタートで見出しになる程度の文字数しかないと仮定すれば。</li> <li>出力用ハードコード文字列 -> text/templateで別にした方が取り回しがいい?</li> </ul> <p>といった感じですね。その後で元にないお節介機能を加えるなら、巨大ファイル対策、並列化、パスのOS間差異吸収あたりでしょうか。</p> <h3>Next</h3> <p>やっていきをしたいんですが、1日は24時間しかない。 尻切れトンボな25日目にならないようにはしたい。したいが。</p> <div class="footnote"> <p class="footnote"><a href="#fn-fa8a0a58" name="f-fa8a0a58" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text">1. 発明する 2. でっち上げる</span></p> <p class="footnote"><a href="#fn-860fe05c" name="f-860fe05c" class="footnote-number">*2</a><span class="footnote-delimiter">:</span><span class="footnote-text"><a class="keyword" href="http://d.hatena.ne.jp/keyword/CUI">CUI</a>ツールが作りやすいことなどが関連しているのでしょうか。</span></p> </div> hidden_alma 技術書典7で頒布した同人誌の公開 hatenablog://entry/26006613486629448 2019-12-19T21:22:37+09:00 2019-12-19T21:30:05+09:00 この記事はアドベントカレンダー2019の19日目の記事です。 adventar.org 18日は Xs (@qp_mzzt) | Twitter さんの LaTeXで目次のカスタマイズをしてみた - Qiita でした。 間に合わなかったよ…… 本来であれば本日は技術書典7にて頒布した「LuaLaTeX微文書作成入門」の改稿版を公開する予定となっておりましたが、 別の某アドベントカレンダーやら様々にバタバタしておりましたところ、嘘です、忙しさにかまけて自分の書いた文書から 目を逸らし改稿が遅々として進まなかったところ、この日を迎えてしまいました。本日は頒布した内容をそのまま公開させて いただき… <p>この記事は<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CTeX%7B%7D%5CLaTeX%7B%7D" alt="\TeX{}\LaTeX{}"/><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の19日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4087" title="TeX & LaTeX Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4087">adventar.org</a></cite></p> <p>18日は <a href="https://twitter.com/qp_mzzt">Xs (@qp_mzzt) | Twitter</a> さんの <a href="https://qiita.com/Xs_TeX/items/87bc75c9c5b6899ce96d">LaTeX&#x3067;&#x76EE;&#x6B21;&#x306E;&#x30AB;&#x30B9;&#x30BF;&#x30DE;&#x30A4;&#x30BA;&#x3092;&#x3057;&#x3066;&#x307F;&#x305F; - Qiita</a> でした。</p> <h3>間に合わなかったよ……</h3> <p>本来であれば本日は技術書典7にて頒布した「LuaLaTeX微文書作成入門」の<strong>改稿版</strong>を公開する予定となっておりましたが、 別の某<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>やら様々にバタバタしておりましたところ、嘘です、忙しさにかまけて自分の書いた文書から 目を逸らし改稿が遅々として進まなかったところ、この日を迎えてしまいました。本日は頒布した内容をそのまま公開させて いただきます。</p> <h3>何の本だったか</h3> <ul> <li>LuaLaTeX入門本を目指すもの</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/LaTeX">LaTeX</a>入門書を読んでいる前提</li> <li>LuaLaTeX向けクラスファイルの紹介</li> <li>フォント設定</li> <li>tcolorboxでlistingができる</li> <li>TikZで図以外ができるよ</li> <li>ビルドツール紹介</li> <li>分割ビルドとパッケージ</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/LaTeX">LaTeX</a>用<a class="keyword" href="http://d.hatena.ne.jp/keyword/Web%A5%B5%A1%BC%A5%D3%A5%B9">Webサービス</a>紹介</li> </ul> <h3>既知の要訂正箇所(2019年12月19日公開版では直っていません。改稿後直る箇所です。)</h3> <ul> <li>ClutTeXの動作の訂正(正しい内容に関しては<a href="https://blog.miz-ar.info/2019/12/cluttex-material-for-texconf2019/">TeXConf 2019&#x5411;&#x3051;&#x306E;ClutTeX&#x767A;&#x8868;&#x8CC7;&#x6599; | &#x96D1;&#x8A18;&#x5E33;</a>や <a href="https://lab.miz-ar.info/cluttex-book/">&#x3060;&#x3081;&#x307D;&#x30E9;&#x30DC; &#x300C;LaTeX&#x6587;&#x66F8;&#x51E6;&#x7406;&#x81EA;&#x52D5;&#x5316;&#x30C4;&#x30FC;&#x30EB;ClutTeX &#x4F7F;&#x3044;&#x65B9;&#x3068;&#x305D;&#x306E;&#x4ED5;&#x7D44;&#x307F;&#x300D;</a>にて正しい内容を得てください)</li> <li>各パッケージの更新やGitHubActionsのステートといった頒布後にアップデートされた情報</li> <li>fontspecでのfakeboldについて(書典7での頒布時のバージョンではLuaLaTeXでは無効のはず)</li> <li>本文フォントが小さい</li> <li>tcolorboxの紹介をしているのにtcolorboxを使った部分のデザインがアレ</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Lua">Lua</a>マクロの適例がない</li> </ul> <h3>では、どうぞ</h3> <p><a href="https://drive.google.com/file/d/19OQTORvLstkHt82yQ5woZ4O_Bf5Zav0X/view?usp=sharing">https://drive.google.com/file/d/19OQTORvLstkHt82yQ5woZ4O_Bf5Zav0X/view?usp=sharing</a></p> <h3>今後の更新</h3> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%AF%A5%BF%A5%EA%A5%F3%A5%B0">リファクタリング</a>と一通りの更新が終わったら<a class="keyword" href="http://d.hatena.ne.jp/keyword/GitHub">GitHub</a>にてソースを含めた公開を行います。その際現在の旧版はアクセスできなくなる予定です。</p> <p>ついでなので、改題し新表紙になる予定です。</p> <h3>明日のTeXLaTeX<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a></h3> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/20%C6%FC">20日</a>目は<a href="https://twitter.com/enukasu">&#x3048;&#x306C;&#x306C;&#x306C;&#x306C;&#x306C;&#x306C;&#x306C;&#x306C;&#x3093; (@enukasu) | Twitter</a>さんです。</p> hidden_alma 投稿とアドベントカレンダーに関する訂正 hatenablog://entry/26006613486274220 2019-12-18T22:54:17+09:00 2019-12-18T22:54:17+09:00 この記事は EWBアドベントカレンダー2019の18日目の記事です。 adventar.org おわび 過去「EWBについて扱った書籍が1冊くらいしかない。しかもアスキー社からは出てない」旨の発言を何度かしておりましたが、訂正いたします。 www.d-sys.co.jp www.d-sys.co.jp !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1989年に刊行されておりました書籍がEWBを扱ったものであるようです。 1989年となるとかなり素朴な1系についてのものでしょうか。積極的に探してみようと思います。 <p>この記事は EWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の18日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <h3>おわび</h3> <p>過去「EWBについて扱った書籍が1冊くらいしかない。しかも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%B9%A5%AD%A1%BC">アスキー</a>社からは出てない」旨の発言を何度かしておりましたが、訂正いたします。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=http%3A%2F%2Fwww.d-sys.co.jp%2Fcgi-bin%2Fyear.cgi%3Fpage%3D350%26sort%3D1" title="ドキュメントシステム : 過去の全ての制作物" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="http://www.d-sys.co.jp/cgi-bin/year.cgi?page=350&sort=1">www.d-sys.co.jp</a></cite></p> <p><iframe src="https://hatenablog-parts.com/embed?url=http%3A%2F%2Fwww.d-sys.co.jp%2Fcgi-bin%2Fbook.cgi%3Fsir%3D177" title="詳細" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="http://www.d-sys.co.jp/cgi-bin/book.cgi?sir=177">www.d-sys.co.jp</a></cite></p> <p><strong>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</strong></p> <p>1989年に刊行されておりました書籍がEWBを扱ったものであるようです。</p> <p>1989年となるとかなり素朴な1系についてのものでしょうか。積極的に探してみようと思います。</p> hidden_alma 簡易マークアップテーブル記法まとめ hatenablog://entry/26006613485447397 2019-12-17T12:18:39+09:00 2019-12-17T21:05:20+09:00 この記事はEWBアドベントカレンダー2019の17日目の記事ということになりました。 adventar.org 20191217 20時30追記:Textileの複雑な表を追記。Textile、はてな記法の参考ページを追加 20191217 21時追記: CAS-UB記法の表と参考ページ追加。シンプルなテーブルでそれぞれのコードから得られる表が大体同じになるようにした Caution 対象言語は大体wikipediaの軽量マークアップ言語のページから。 テーブルヘッダ = TH テーブルデータ = TD 必ずしも記法フル対応では載せていない。 それぞれ同じ出力を得るテーブルを書くのは思った以上… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の17日目の記事ということになりました。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>20191217 20時30追記:Textileの複雑な表を追記。Textile、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%B5%AD%CB%A1">はてな記法</a>の参考ページを追加 20191217 21時追記: CAS-UB記法の表と参考ページ追加。シンプルなテーブルでそれぞれのコードから得られる表が大体同じになるようにした</p> <h3>Caution</h3> <p>対象言語は大体<a class="keyword" href="http://d.hatena.ne.jp/keyword/wikipedia">wikipedia</a>の軽量<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>言語のページから。</p> <p>テーブルヘッダ = TH テー<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%EB%A5%C7%A1%BC">ブルデー</a>タ = TD</p> <p>必ずしも記法フル対応では載せていない。 それぞれ同じ出力を得るテーブルを書くのは思った以上に面倒そうなのでやっていない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>のWebエディタで書き始めるんじゃなかった。</p> <h3>シンプルなテーブル</h3> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Markdown">Markdown</a>(<a class="keyword" href="http://d.hatena.ne.jp/keyword/PHP">PHP</a> Extra)</h4> <ul> <li>テーブル(セル)内改行は<code>&lt;br&gt;</code>で実現</li> </ul> <pre class="code lang-markdown" data-lang="markdown" data-unlink> | TH | TH | | ---- | ---- | | TD | TD | | TD | TD | </pre> <p>寄せ</p> <pre class="code lang-markdown" data-lang="markdown" data-unlink> | TH (left) | TH (center) | TH (right) | | :--- | :---: | ---: | | TD | TD | TD | | TD | TD | TD | </pre> <h4>AsciiDoc</h4> <ul> <li>行頭<code>.</code>以後改行までキャプションタイトル</li> <li>2行目表示オプション、<code>header</code>の他に<code>footer</code>などがある。</li> </ul> <pre class="code asciidoc" data-lang="asciidoc" data-unlink> .An example table [options=&#34;header&#34;] |======================= |TH|TH |TD |TD |TD |TD |======================= </pre> <h4>reST</h4> <pre class="code restructuredtext" data-lang="restructuredtext" data-unlink>===== ===== TH TH ===== ===== TD TD TD TD ===== ===== </pre> <h4>Textile</h4> <h5>行見出し</h5> <pre class="code textile" data-lang="textile" data-unlink>|_. TH |_. TH | | TD | TD |</pre> <h5>列見出し</h5> <pre class="code textile" data-lang="textile" data-unlink>|_. TH | TD | |_. TH | TD | |_. TH | TD |</pre> <h5>寄せ</h5> <pre class="code textile" data-lang="textile" data-unlink>|_. TH | |=. TD(center) | |&gt;. TD(right) | |&lt;. TD(left) |</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Wiki">Wiki</a></h4> <ul> <li>先頭行<code>|~</code>でその行全体がヘッダ? 派生によるかも</li> </ul> <pre class="code wiki" data-lang="wiki" data-unlink>|~TH|TH| |TD|TD| |TD|TD|</pre> <h4>Org-mode</h4> <ul> <li><code>!</code> <code>#</code> といった記号で属性を付与できる?</li> </ul> <pre class="code" data-lang="" data-unlink>|-----+-----| | TH | TH | |-----+-----| | TD | TD | |-----+-----| | TD | TD | |------+----|</pre> <h4>Almost Free Text</h4> <pre class="code" data-lang="" data-unlink>#---SET-CONTROL tableparser=new ! TH ! !------------! ! TD ! TD ! !-------------! ! TD ! TD !</pre> <h4>EWB</h4> <ul> <li>ハードタブ</li> <li>罫線は罫線用トリガで</li> </ul> <pre class="code ewb" data-lang="ewb" data-unlink>//table1{ //tkei //g{TH TH//} //bkei TD TD //tkei TD TD //tkei //}</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <ul> <li>ハードタブ</li> <li>空欄の場合は<code>.</code>。文字列の最初の行頭の<code>.</code>もこの関係で消えるので対処が要る?</li> </ul> <pre class="code review" data-lang="review" data-unlink>//table{ TH TH ------------ TD TD TD TD //} </pre> <h4>CAS-UB</h4> <pre class="code" data-lang="" data-unlink>|=Heading TH |=Heading TH | |TD |TD | |TD |TD |</pre> <h4>setext</h4> <pre class="code setext" data-lang="setext" data-unlink>___________ TH ___________ TH TD TD --------------- ---------------- TD TD ============== ==============</pre> <h4>Terence's Markup Language</h4> <pre class="code tml" data-lang="tml" data-unlink>[ *TH* | *TH* ---- TD | TD ---- TD | TD ] </pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%B5%AD%CB%A1">はてな記法</a></h4> <ul> <li><code>*</code>を先頭につけるとTH化?</li> </ul> <pre class="code" data-lang="" data-unlink>|*TH|*TH| |TD|TD| |TD|TD|</pre> <h4>Plain2</h4> <ul> <li>交差位置の記号は<code>-</code> <code>+</code> <code>|</code>どれでも同じ。</li> <li>基本的に罫線は表現通り</li> <li><code>[[T``]]T</code>は、「両脇の脇線がない場合」以外は省略可能</li> </ul> <pre class="code" data-lang="" data-unlink>[[T --------------------- | TH | TH | ============ | TD | TD | --------------------- | TD | TD | --------------------- ]]T</pre> <h4>KARAS</h4> <pre class="code karas" data-lang="karas" data-unlink>!| TH || TH || TD || TD || TD || TD</pre> <h3>複雑なテーブル</h3> <h4>reST</h4> <h5>グリッドテーブル</h5> <pre class="code restructuredtext" data-lang="restructuredtext" data-unlink>+------------------------+------------+----------+----------+ | Header row, column 1 | Header 2 | Header 3 | Header 4 | | (header rows optional) | | | | +========================+============+==========+==========+ | body row 1, column 1 | column 2 | column 3 | column 4 | +------------------------+------------+----------+----------+ | body row 2 | ... | ... | | +------------------------+------------+----------+----------+</pre> <h4>StructuredText</h4> <pre class="code structuredtext" data-lang="structuredtext" data-unlink> |---------------------------------------| | This should give a row with colspan 3 | |---------------------------------------| | Col 1 | Col 2 | Col 3 | |---------------------------------------| | Col 1 | Col 2 | |---------------------------------------| | Col 1 | Col 2 | |---------------------------------------| |---------------------------------------| | Column 1 | Column 2 |---------------------------------------| | Align Top | OK | | | | |---------------------------------------| | | | | Align Bot | OK | |---------------------------------------| | | | | Align Mid | OK | | Note the | offset unequal. | | | | |---------------------------------------| |Align left | Align Right| |---------------------------------------| </pre> <h4>Plain2</h4> <pre class="code" data-lang="" data-unlink> --------------------------------- |へん|つくり||  あわせて   | |  |   || 漢字 | よみかた | |===============================| | 金 |   || 錫 | すず   | |----| 易 ||------+-----------+ |  |   || 鯣 | するめ  | |  |------||------+-----------+ | 魚 | 非 || 鯡 | にしん  | |  |------||------+-----------+ |  |   || 鯰 | なまず  | |----| 念 ||------+-----------+ | 手 |   || 捻 | ひねる  | ---------------------------------</pre> <h4>KARAS</h4> <ul> <li><code>::</code>が水平左結合、<code>:::</code>が垂直上結合。</li> </ul> <pre class="code karas" data-lang="karas" data-unlink>|| Cell 1 || :: || Cell 2 || Cell 3 || Cell 4 || Cell 5 || ::: || Cell 6 || ::: || Cell 7 || ::: || Cell 8</pre> <h4>AsciiDoc</h4> <pre class="code asciidoc" data-lang="asciidoc" data-unlink>.Multiline cells, row/col span |==== |Date |Duration |Avg HR |Notes |22-Aug-08 .2+^.^|10:24 | 157 | Worked out MSHR (max sustainable heart rate) by going hard for this interval. |22-Aug-08 | 152 | Back-to-back with previous interval. |24-Aug-08 3+^|none |====</pre> <h4>Textile</h4> <ul> <li><code>\&lt;数字&gt;.</code>で数字分水平結合、<code>/&lt;数字&gt;^ .</code>で上付き、<code>/&lt;数字&gt;~.</code>で下付きの垂直結合</li> </ul> <pre class="code" data-lang="" data-unlink>|{background:#ddd}. Cell with background|Normal| |\2^. Cell spanning 2 columns| |/2. Cell spanning 2 rows|one| |two| |&gt;. Right-aligned cell|&lt;. Left-aligned cell|</pre> <hr /> <p>Pandocで対応記法出力させたらそれなりに統一できたのでは。</p> <h3>参考リンク</h3> <ul> <li><a href="https://docutils.sourceforge.io/mirror/setext/">Index of /mirror/setext</a></li> <li><a href="https://github.com/kmuto/review/blob/master/doc/format.ja.md">review/format.ja.md at master &middot; kmuto/review &middot; GitHub</a></li> <li><a href="https://github.com/hidaruma/ewb-handbook">GitHub - hidaruma/ewb-handbook: Under EWB License, redistribution of EWB Handbook.</a></li> <li><a href="https://github.com/zopefoundation/zope.structuredtext/blob/master/src/zope/structuredtext/regressions/table.stx">zope.structuredtext/table.stx at master &middot; zopefoundation/zope.structuredtext &middot; GitHub</a></li> <li><a href="http://asciidoc.org/">AsciiDoc Home Page</a></li> <li><a href="http://lightweightmarkuplanguage.com/jpn/syntax/basicsyntax.html#table">KARAS - Basic Syntax</a></li> <li><a href="https://www.antlr2.org/TML/index.html">Terence&#39;s Markup Language</a></li> <li><a href="http://www.asahi-net.or.jp/~vw4k-kbys/plain2/plain2.html">&#x3079;&#x305F;&#x66F8;&#x304D;&#x5165;&#x529B;&#x306B;&#x3088;&#x308B;&#x6587;&#x66F8;&#x6E05;&#x66F8;&#x30B7;&#x30B9;&#x30C6;&#x30E0; plain2</a></li> <li><a href="https://www.promptworks.com/textile">Textile Reference Manual</a></li> <li><a href="https://help.hatenablog.com/entry/text-hatena-list">&#x306F;&#x3066;&#x306A;&#x8A18;&#x6CD5;&#x4E00;&#x89A7; - &#x306F;&#x3066;&#x306A;&#x30D6;&#x30ED;&#x30B0; &#x30D8;&#x30EB;&#x30D7;</a></li> <li><a href="http://www.cas-ub.com/howto/reference/index.html">CAS&#x8A18;&#x6CD5;&#x30EA;&#x30D5;&#x30A1;&#x30EC;&#x30F3;&#x30B9;</a></li> </ul> hidden_alma EWB Licenseニアリィイコール3条項BSD hatenablog://entry/26006613485139229 2019-12-16T01:31:28+09:00 2019-12-16T01:31:28+09:00 この記事はEWBアドベントカレンダー2019の16日目の記事です。 adventar.org 前回のEWBライブ binディレクトリに入ってるやつの中に実行用バイナリでないツールが結構入っていることが発覚。 EWB LICENSE web.archive.org Copyright (C) 1986, 1999 ASCII Corporation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の16日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <h3>前回のEWBライブ</h3> <p>bin<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8">ディレクト</a>リに入ってるやつの中に実行用バイナリでないツールが結構入っていることが発覚。</p> <h3>EWB LICENSE</h3> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fweb.archive.org%2Fweb%2F20090816183955%2Fhttp%3A%2F%2Fascii.asciimw.jp%2Fascii%2FEWB%2Fdwld%2Flicense.html" title="EWB頒布規約" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://web.archive.org/web/20090816183955/http://ascii.asciimw.jp/ascii/EWB/dwld/license.html">web.archive.org</a></cite></p> <pre class="code" data-lang="" data-unlink>Copyright (C) 1986, 1999 ASCII Corporation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS&#39;&#39; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</pre> <p>EWBの頒布規約は大体3条項<a class="keyword" href="http://d.hatena.ne.jp/keyword/BSD">BSD</a>になります。上の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A1%BC%A5%AB%A5%A4%A5%D6">アーカイブ</a>に記載された日本語訳を掲載しますと、</p> <pre class="code" data-lang="" data-unlink>【著作権表示】 Copyright (C) 1986, 1999 ASCII Corporation. All rights reserved. 【契約条件】 改変の有無にかかわらず、本ソフトウェアのソースコード及びバイナリーコー ド形式による再頒布及び使用は、次の契約条件の下に許諾される。 1. ソースコードの再頒布に際しては、上記の【著作権表示】、この【契約条 件】及び次の【免責条項】の表記を、引き続き維持して明記しなければな らない。 2. バイナリー形式による再頒布に際しては、上記の【著作権表示】、この 【契約条件】及び次の【免責条項】を、再頒布に際し提供する説明書及び その他の関連資料に改めて明記しなければならない。 3. 特別な事前の書面による許諾がない限り、本ソフトウェアから派生した製 品を推奨又は宣伝するために、著作権者名は使用してはならない。 【免責条項】 本ソフトウェアは、著作権者により、「現状有姿のまま(そのままの形で)」 提供されるものであり、商品性又は特定目的への適合性に関する黙示的保証な ど、明示又は黙示の保証を問わず、いかなる保証をも行うものではない。 いかなる理由によっても、また、契約責任、厳格責任又は(過失によるものを 含む)不法行為責任を問わずどのような責任の理論によっても、著作権者は、 いかなる場合も、本ソフトウェアを使用することにより発生する、あらゆる直 接損害、間接損害、偶発損害、特別損害、懲罰的損害あるいは派生的損害(代 替製品・代替サービスの調達、使用利益、データ又は収益に関する損失、営業 中断による損失など)について何らの責任も負わない。これは、本ソフトウェ アを使用することにより、これらの損害が発生する可能性について、あらかじ め示唆されていた場合であっても同様である。 </pre> <p>ということで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/GitHub">GitHub</a>上に上のライセンスを表示しながら配置するのはセーフのはず。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fhidaruma%2Fewb-tool-scripts-old" title="hidaruma/ewb-tool-scripts-old" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://github.com/hidaruma/ewb-tool-scripts-old">github.com</a></cite></p> <p>ででーん! ちょこちょこ足します。</p> <h3>謎</h3> <p>実はEWB3.2リリースと3.3のリリースタイミングで頒布のライセンスが変わったとの履歴があるんですが、それ以前のライセンスが分からないんですね。 3条項<a class="keyword" href="http://d.hatena.ne.jp/keyword/BSD">BSD</a>自体は1999年に登場していますし、コピーライトの表記年はEWB3の登場時の固定っぽいんですよね。</p> <p>それと、よく見る最近の<a class="keyword" href="http://d.hatena.ne.jp/keyword/BSD">BSD</a>だとクオーテーションマークが<code>""</code>ですが、バッククオート2つとシングルクオート2つの<a class="keyword" href="http://d.hatena.ne.jp/keyword/LaTeX">LaTeX</a>でよしなにしてくれるやつになってます。</p> <h3><a class="keyword" href="http://d.hatena.ne.jp/keyword/pTeX">pTeX</a>のライセンス</h3> <p>同じく<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%B9%A5%AD%A1%BC">アスキー</a>社の開発である<img src="https://chart.apis.google.com/chart?cht=tx&chl=p%5CTeX%7B%7D" alt="p\TeX{}"/>のライセンスを確認してみましょう。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Ftexjporg%2Fhistorical-ptex" title="texjporg/historical-ptex" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://github.com/texjporg/historical-ptex">github.com</a></cite></p> <p>こちらはtexjporgによって管理されている歴史資料になります。</p> <p>COPYRIGHTを見ると、こちらも3条項<a class="keyword" href="http://d.hatena.ne.jp/keyword/BSD">BSD</a>ですね。表記年と著作者表記は2009年<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%B9%A5%AD%A1%BC%A1%A6%A5%E1%A5%C7%A5%A3%A5%A2%A5%EF%A1%BC%A5%AF%A5%B9">アスキー・メディアワークス</a>になっていますが。</p> hidden_alma 分かったのはツール群大体そのまま読めるスクリプトってことだけ hatenablog://entry/26006613484910425 2019-12-15T22:47:55+09:00 2019-12-15T22:47:55+09:00 この記事はEWBアドベントカレンダー2019の15日目の記事です。 技術書典の当落によって残りの10日のやる気がかわりそう。 adventar.org 進捗 新しめのFreeBSDに古いパッケージを入れて動くか試すのは「失敗」です。予定通りですね。 そもそも、互換が用意されてるとはいえ32bit時代のパッケージ群を64bit用OSに入れるときは色々考えるべきですね。 収穫は一応ありまして、 EWB-Shelfといったコアなものではなく、ツール群で軽量なものはそのまま読めるシェルスクリプトやPerlスクリプトであることが分かりました。 「GUIを開く」とあるツールのスクリプトを開くとwishでフ… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の15日目の記事です。 技術書典の当落によって残りの10日のやる気がかわりそう。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <h3>進捗</h3> <p>新しめの<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>に古いパッケージを入れて動くか試すのは「失敗」です。予定通りですね。 そもそも、互換が用意されてるとはいえ32bit時代のパッケージ群を64bit用OSに入れるときは色々考えるべきですね。</p> <p>収穫は一応ありまして、</p> <p>EWB-Shelfといったコアなものではなく、ツール群で軽量なものはそのまま読める<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%A7%A5%EB%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">シェルスクリプト</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Perl">Perl</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>であることが分かりました。</p> <p>「<a class="keyword" href="http://d.hatena.ne.jp/keyword/GUI">GUI</a>を開く」とあるツールの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>を開くと<code>wish</code>でファイルを開くのに味付けをする程度あったり、<code>tounix</code>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Perl">Perl</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>だったりといった具合です。 <strong>現代化、意外と困難でもないかもしれない</strong>。</p> <p>バイナリ以外のツールはここに追記していく予定。</p> <p>あ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/GUI">GUI</a>ツールの中にはEmacsLispを呼ぶものも確認できました。XEmacsでは確かにそうなるやね。</p> <h3>ToDo</h3> <p>大人しくDVD付属のイメージから実行環境を用意します。</p> hidden_alma FreeBSDに解凍したEWBを入れた(入れたのか?) hatenablog://entry/26006613483572310 2019-12-14T22:20:49+09:00 2019-12-14T22:20:49+09:00 この記事はEWBアドベントカレンダー2019の14日目の記事です。 adventar.org これから電車移動で1時間以上吸われるのに何も進んでいないのですが。 前回FreeBSDをインストールしたので、先ずはEWBのパッケージが入ったDVDをFreeBSD側に認識させます。 VirtualBoxに認識させたディスクをマウントする 今回は雑に/mediaにぶちこみました。devの名前今回はエスパーで検討つけたんですが VirtualBox側で変更できるんですかね。何もわからん。 # mount -t cd9660 /dev/cd0 /media で、/media/Packages/*を全部/h… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の14日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>これから電車移動で1時間以上吸われるのに何も進んでいないのですが。</p> <p>前回<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>をインストールしたので、先ずはEWBのパッケージが入ったDVDを<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>側に認識させます。</p> <h3><a class="keyword" href="http://d.hatena.ne.jp/keyword/VirtualBox">VirtualBox</a>に認識させたディスクをマウントする</h3> <p>今回は雑に<code>/media</code>にぶちこみました。devの名前今回は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>パーで検討つけたんですが <a class="keyword" href="http://d.hatena.ne.jp/keyword/VirtualBox">VirtualBox</a>側で変更できるんですかね。何もわからん。</p> <pre class="code lang-sh" data-lang="sh" data-unlink><span class="synComment"># mount -t cd9660 /dev/cd0 /media</span> </pre> <p>で、<code>/media/Packages/*</code>を全部<code>/home/ewb(作成したユーザ名)</code>以下に<code>mv</code>でドーン。</p> <p>これで実質インストール完了といえなくもない(いえない)。</p> <p>帰りの電車でこれをなんやかんやして起動できるか試します。</p> hidden_alma GCP無料枠でZerotierVPNを立てる hatenablog://entry/26006613480311676 2019-12-14T22:00:45+09:00 2019-12-14T22:00:45+09:00 この記事はWORDIANアドベントカレンダー2019の14日目の記事になります。 adventar.org 今日は自分を編集部員だと思いこんでいるので……。 TL;DR; Google Cloud Platformには「金を払うと無料」、もといクレカ登録すると使える「無料枠」という概念があります。 この無料枠内で使える構成でVMのインスタンスを立てることができ、ここにVPNサーバを立ててみようという話です。 OpenVPNなどについては先例があり、 sorapoo.hatenablog.com のように構築しています。 今回は一般に馴染みが薄いであろう、「ZeroTierVPN」をここに立てて… <p>この記事はWORDIAN<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の14日目の記事になります。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4377" title="WORDIAN Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4377">adventar.org</a></cite></p> <p>今日は自分を編集部員だと思いこんでいるので……。</p> <h3>TL;DR;</h3> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> Cloud Platformには「金を払うと無料」、もといクレカ登録すると使える「無料枠」という概念があります。</p> <p>この無料枠内で使える構成で<a class="keyword" href="http://d.hatena.ne.jp/keyword/VM">VM</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%B9%A5%BF%A5%F3%A5%B9">インスタンス</a>を立てることができ、ここに<a class="keyword" href="http://d.hatena.ne.jp/keyword/VPN">VPN</a>サーバを立ててみようという話です。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/OpenVPN">OpenVPN</a>などについては先例があり、</p> <p><iframe src="https://hatenablog-parts.com/embed?url=http%3A%2F%2Fsorapoo.hatenablog.com%2Fentry%2F2017%2F11%2F12%2F182350" title="無料で公衆WiFiからVPNする仕組みを作ってみた - sorapooのブログ" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="http://sorapoo.hatenablog.com/entry/2017/11/12/182350">sorapoo.hatenablog.com</a></cite></p> <p>のように構築しています。</p> <p>今回は一般に馴染みが薄いであろう、「ZeroTierVPN」をここに立ててみましょう。</p> <h3>ZeroTierVPN</h3> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.zerotier.com%2F" title="ZeroTier – Global Area Networking" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://www.zerotier.com/">www.zerotier.com</a></cite></p> <p>ZeroTier <a class="keyword" href="http://d.hatena.ne.jp/keyword/VPN">VPN</a>は独自の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%EC%A5%B9%B6%F5%B4%D6">アドレス空間</a>によって管理する、様々なプラットフォームに対応した<a class="keyword" href="http://d.hatena.ne.jp/keyword/VPN">VPN</a>ソフトウェアとサーバです。 アカウントを作成したら無料で100個までアカウントにマシンを割り当てられ、簡単に<a class="keyword" href="http://d.hatena.ne.jp/keyword/VPN">VPN</a>を構築できるのが特徴です。<strong>ただし、自前サーバでアカウント管理部分(controller)までやろうとするとその限りでない。</strong></p> <h3>手順(<a class="keyword" href="http://d.hatena.ne.jp/keyword/GCP">GCP</a>)</h3> <p>上のリンク先などに既にある通りなので、要約すると</p> <ol> <li>アカウント登録</li> <li>カード登録</li> <li>マシンを<code>f1-micro</code></li> <li>ディスクを30GBに拡張</li> <li>CentOS8で作成</li> </ol> <p>で、作ったらIPの固定をして<a class="keyword" href="http://d.hatena.ne.jp/keyword/ssh">ssh</a>鍵の登録をしたら完了です。</p> <h3>Zerotier-One</h3> <p>本来なら「myzerotier.comにアカウントを登録して〜」で終了しますが、 controllerを自分の手で管理したいとなるとそうはいきません。 自分で管理する気がなければそもそも<a class="keyword" href="http://d.hatena.ne.jp/keyword/GCP">GCP</a>使う必要もないです。ローカルとリモートにzerotier-oneを入れてドキュメントをなぞりましょう。</p> <p>建てた<a class="keyword" href="http://d.hatena.ne.jp/keyword/VM">VM</a>に入り、gitを入れ、</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fzerotier%2FZeroTierOne" title="zerotier/ZeroTierOne" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe></p> <p>を<code>git clone</code>して、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ubuntu">Ubuntu</a>でいうところの <code>build-essential</code> などを入れます。</p> <p>ところで、f1-microのメモリは600MBそこらです。ちょっと大きくなった<a class="keyword" href="http://d.hatena.ne.jp/keyword/C%2B%2B">C++</a>プログラムなんかはビルドがメモリ不足で失敗します。</p> <p>令和の時代にswapファイル作るのが有効な案件に出会うとは思ってもみませんでした。 なお、後程「ローカルの仮想環境でビルドして持ち込めばよかったのでは」と突っこまれるなど。</p> <p>controllerのビルドにはそれ以外に、postgresとそのdev、RabbitMQ用に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Erlang">Erlang</a>とRabbitMQを入れる必要があります。sqlite3で代用できる?ようですが、更に複雑化しそうだったのでスルー。</p> <p>ビルドが終わったら<code>./zerotier-one -d</code> で起動すると、controllerにアクセスできるようになります。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Curl">Curl</a>でGETとPOSTをすると簡単に値の確認ができますが、 通常<code>/var/lib/zerotier-one</code>以下に生えるはずのauthtoken.secretの値をクエリに<code>?auth=</code> で入れる必要があるので確認しておきましょう。</p> <p>このとき、</p> <pre class="code lang-sh" data-lang="sh" data-unlink>curl <span class="synSpecial">-X</span> GET <span class="synStatement">&quot;</span><span class="synConstant">ZT-Auth</span><span class="synStatement">&quot;</span> http://localhost:9993/controller?<span class="synIdentifier">auth</span>=xxxxxxxxxxx </pre> <p>のように叩きます。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fzerotier%2FZeroTierOne%2Ftree%2Fmaster%2Fcontroller" title="zerotier/ZeroTierOne" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://github.com/zerotier/ZeroTierOne/tree/master/controller">github.com</a></cite></p> <p>この辺りは追記予定。</p> <h3>クライアント(local machine)</h3> <p>実は<code>snap</code>で入るよ<code>zerotier-one</code>。サーバ(controller)側のサポートはCentOS7なんで (サポートするとはいっていない)、<a class="keyword" href="http://d.hatena.ne.jp/keyword/VM">VM</a>上で態々ビルドしたワケですが。 注意点としては、snapで入れると、<code>ZEROTIER_HOME</code>のパスが通常のビルドと違う場所になるので、snapの<code>var</code>内の該当箇所に<code>export</code>してやる必要があります。 Ubuntu18.04だと <code>/var/snap/zerotier-one/common</code> ですね。</p> <p>さあ、<code>zerotier-one.zerotier-one -d</code>で起動を、<strong>しないんだなこれが</strong>。 <code>/snap/zerotier-one/current/command-zerotier-one.wrapper</code>にある <code>PATH</code> の場所に<code>zerotier-one</code>の実行ファイルが無かったので<code>ln -s</code>して/snap/zerotier-one/current/usr/zerotier-one`に繋ぎます。</p> <h3>挫折</h3> <p>あの、サーバの zerotier-oneをローカルホスト以外に割り当てて起動する方法が分からないのですが!</p> <p>年明けなど、落ち着いた時期に更新したい。</p> hidden_alma 何もしてないがとりあえずFreeBSDを用意した hatenablog://entry/26006613482547402 2019-12-13T22:06:20+09:00 2019-12-13T22:06:20+09:00 この記事はEWB アドベントカレンダー2019の13日目の記事です。 adventar.org なんだったらアウトライン以上の内容がないです。 そわそわとメールを待っていたり、 アパレルメーカーOVERDRIVEがブランド最終ゲーム作品として制作した「MUSICUS!」が 自宅に到着してしまうなどすると人は作業ができないことで知られている。ゲームの方は一般発売日まで寝かせておくつもりですが。できればもっと感情がフラットになるまで 寝かせたいんですが、絶対期間限定のホニャララとか忘れるんで。 ゲームを応援したら何故かついてきた2017年のライブのBDは計4時間超えある。物販とかも含めるとあの日あ… <p>この記事はEWB <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の13日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>なんだったらアウトライン以上の内容がないです。</p> <p>そわそわとメールを待っていたり、 アパレルメーカー<a class="keyword" href="http://d.hatena.ne.jp/keyword/OVERDRIVE">OVERDRIVE</a>がブランド最終ゲーム作品として制作した「<strong>MUSICUS!</strong>」が 自宅に到着してしまうなどすると人は作業ができないことで知られている。ゲームの方は一般発売日まで寝かせておくつもりですが。できればもっと感情がフラットになるまで 寝かせたいんですが、絶対期間限定のホニャララとか忘れるんで。 ゲームを応援したら何故かついてきた2017年のライブのBDは計4時間超えある。物販とかも含めるとあの日あの時あの会場何時間いたんだろうね。</p> <h3>EWBの実行環境である<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a></h3> <p>以前に触れた気もしますが、EWB自体は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Unix">Unix</a> Like環境なら動く筈ですが、手元にあるのが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9">ソースコード</a>ではなく<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>用バイナリなんで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>を叩く必要が今私にはあります。 DebianJPに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A1%BC%A5%AB%A5%A4%A5%D6">アーカイブ</a>所持者がいるのではというご意見をもらいごもっともと思いましたが、先ずはこちらで試してみたいと思います。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.freebsd.org%2Fja%2F" title="The FreeBSD Project" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://www.freebsd.org/ja/">www.freebsd.org</a></cite></p> <blockquote><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a> は、最新のサーバ、デスクトップおよび組み込み プラットフォーム 用の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AA%A5%DA%A5%EC%A1%BC%A5%C6%A5%A3%A5%F3%A5%B0%A5%B7%A5%B9%A5%C6%A5%E0">オペレーティングシステム</a>です。 多くの コミュニティ が 30 年以上にも渡って開発を続けています。</p></blockquote> <p>ということで、配布サイトからディスクのisoをダウンロードし、準備します。例のDVDに動作確認されたバージョン(4.7)のイメージが付いてたんですが、まあパッケージ群は別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8">ディレクト</a>リに収まってるし 動くなら新しいOSの方がええはずや!と新しめのstable(12.0)をダウンロード。そして後悔するまでが1セット。後悔は明日やります。</p> <p>ローカルでは<a class="keyword" href="http://d.hatena.ne.jp/keyword/VirtualBox">VirtualBox</a>を準備します。LXDで動いたら楽なのになあ。コンテナでは無いんで致し方無し。</p> <p>ところで何で<a class="keyword" href="http://d.hatena.ne.jp/keyword/freebsd">freebsd</a>.orgの日本語版サイト、ゲタをこんなに使ってるんでしょうね。</p> <h3>Done</h3> <ul> <li>Virtual Boxで仮想環境を用意して<a class="keyword" href="http://d.hatena.ne.jp/keyword/FreeBSD">FreeBSD</a>をインストール</li> <li><code>sudo</code>をインストール</li> <li>EWB+<a class="keyword" href="http://d.hatena.ne.jp/keyword/VMWARE">VMWARE</a>のDVDをマウント</li> <li>解凍しないパッケージのアタリをつける(xemacs, <a class="keyword" href="http://d.hatena.ne.jp/keyword/kakasi">kakasi</a>など)</li> </ul> <h3>ToDo</h3> <ul> <li>全て</li> </ul> <h3>NEXT</h3> <p>EWB-Shelfを動かすところまでやりたい。やるとはいっていない。</p> hidden_alma EWBとRe:VIEW 記法編 hatenablog://entry/26006613481686206 2019-12-12T23:27:27+09:00 2019-12-12T23:27:27+09:00 この記事はEWBアドベントカレンダー2019の12日目の記事です。 adventar.org 昨日は記法以外の違いをみたので、今日は記法編です。 全部を紹介するのは面倒臭いのでRe:VIEWの公式やEWBハンドブックに任せるとして、 比較して楽しい箇所をみていきます。 Re:VIEWはEWBの他にもRD記法やwiki記法の影響を受けた、とあるので一部他記法も参考に載せます。 記法が同じ他の言語もあるかもしれませんが、キリが無いので別の機会にそういう話はやりたいですね。 ブロックの記法 EWB //<トリガ名>{ ... //} Re:VIEW //<ブロック名>[<オプション>]{ ... /… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の12日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>昨日は記法以外の違いをみたので、今日は記法編です。 全部を紹介するのは<del>面倒臭いので</del><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>の公式やEWBハンドブックに任せるとして、 比較して楽しい箇所をみていきます。</p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>はEWBの他にもRD記法や<a class="keyword" href="http://d.hatena.ne.jp/keyword/wiki">wiki</a>記法の影響を受けた、とあるので一部他記法も参考に載せます。 記法が同じ他の言語もあるかもしれませんが、キリが無いので別の機会にそういう話はやりたいですね。</p> <h3>ブロックの記法</h3> <h4>EWB</h4> <pre class="code ewb" data-lang="ewb" data-unlink>//&lt;トリガ名&gt;{ ... //} </pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code review" data-lang="review" data-unlink>//&lt;ブロック名&gt;[&lt;オプション&gt;]{ ... //} </pre> <hr /> <p>EWBの方は短縮記法ですが、ほぼ一致しますね。</p> <h3>内部要素を持たないブロック</h3> <h4>EWB</h4> <pre class="code ewb" data-lang="ewb" data-unlink>//&lt;トリガ名&gt; &lt;引数&gt;</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code ewb" data-lang="ewb" data-unlink>//&lt;ブロック名&gt;[&lt;オプション引数&gt;]</pre> <hr /> <p>同じといえば同じですが、オプションがある場合見た目に差が出てきます。 比較するとEWBの方が<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>というより関数に引数を渡してる感があるような。</p> <h3>インライン</h3> <h4>EWB</h4> <p>範囲を指定するグループトリガというケースに含まれ、記法自体は基本的にブロックのときと 同じです。指定されたトリガ毎にブロック扱いされたりインライン扱いされたりするので、基本はトリガを把握しておく必要があります(それはそう)。</p> <pre class="code ewb" data-lang="ewb" data-unlink>...//&lt;トリガ名&gt;{... //}...</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code review" data-lang="review" data-unlink>...@&lt;インライン名&gt;{...}...</pre> <p>私は最初このブロックとインラインの書式の違いがEWBから引き継いだものだと思ってました。</p> <h3>見出し</h3> <p>見出しの番号についてはプレフィクス<code>//</code> のない<code>chapter</code> のようなトリガで番号を指定します。</p> <h4>EWB</h4> <pre class="code ewb" data-lang="ewb" data-unlink>//iii 見出し</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code review" data-lang="review" data-unlink>=== 見出し</pre> <h4>RDoc</h4> <pre class="code rdoc" data-lang="rdoc" data-unlink>=== 見出し</pre> <hr /> <p>EWBだとナンバリングが分かりやすい一方で、数字的意味が強いので番号無しのセクションが切りにくい気がします。</p> <h3>小組み</h3> <h4>EWB</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>との対応でここだけ閉じタグがフルの記法です。</p> <pre class="code ewb" data-lang="ewb" data-unlink> //c1{ ... //c1} </pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code review" data-lang="review" data-unlink>===[column] ===[/column] //&lt;note/memo/tip/info/warning/important/caution/notice&gt;{ //} </pre> <hr /> <p>EWBの方は数値が入るトリガがでてくるので、単純な記法だけで見ると 気持ち良くないかもしれません。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>ではヘディングというかセクショニングの 仲間であるというように見えますね。いや、それはコラムだけで、囲み記事は下のブロック記法なんで 実質EWBです。</p> <h3>箇条書き</h3> <h4>EWB</h4> <pre class="code ewb" data-lang="ewb" data-unlink>//k1{ ・ hoge ・ fuga //} //k1{ (1.) hoge (2.) fuga //}</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code review" data-lang="review" data-unlink> * hoge * fuga 1. hoge 2.fuga</pre> <hr /> <p>Bullet Listはどちらもネストした箇条書き可能ですが、 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>は番号付き箇条書きはネストできなかったりします。</p> <p>EWBの方は「ネスト可能」と対応表にはあるのですが例が無かったため載せていません。 説明を読む限りは<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>やHTMLのそれに近い書き方のようですが。</p> <h4>Description</h4> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code review" data-lang="review" data-unlink> : &lt;DT&gt; &lt;DD&gt; </pre> <h4>RDoc</h4> <pre class="code rdoc" data-lang="rdoc" data-unlink>:&lt;DT&gt; &lt;DD&gt;</pre> <hr /> <p>EWBではDL相当のものはない、というか表を使っているようです。調べ不足かもしれませんが。</p> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/LaTeX">LaTeX</a>直書き</h4> <h4>EWB</h4> <pre class="code ewb" data-lang="ewb" data-unlink>//LaTeX{ ... //}</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code review" data-lang="review" data-unlink>//raw[|latex|...] //embed[latex]{ ... //}</pre> <hr /> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガ的な記法の分離はどちらかというと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>においては<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%EA%A5%D7%A5%ED%A5%BB%A5%C3%A5%B5">プリプロセッサ</a>記法が対応します。 <img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>の直書きなどを行える<code>raw</code> <code>embed</code>はEWBにおける編集トリガに近い文脈の流れということですね、多分。</p> <h3><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガ</h3> <h4>EWB</h4> <pre class="code ewb" data-lang="ewb" data-unlink>@@&lt;トリガ&gt;(&lt;引数&gt;) @@&lt;トリガ&gt;(&lt;引数&gt;) ... @@end</pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%EA%A5%D7%A5%ED%A5%BB%A5%C3%A5%B5">プリプロセッサ</a>)</h4> <pre class="code review" data-lang="review" data-unlink>#@&lt;プリプロセス処理名&gt;() #@&lt;プリプロセス処理名&gt;{ ... #@end</pre> <hr /> <p>この対応は個人的なものなので、開発者的な立ち位置は不明ですが、 文章と異なる処理の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>なのでこうなんじゃないかな。</p> <hr /> <p>他にもテーブルが基本的にタブ区切りな部分なども共通点といえばそうですね。</p> <h3>Next</h3> <p>不安で不安で記事が手につかない。</p> hidden_alma EWBとRe:VIEW hatenablog://entry/26006613480709361 2019-12-11T22:38:19+09:00 2019-12-11T23:32:50+09:00 この記事はEWBアドベントカレンダー2019の記事です。 adventar.org 2019年12月11日23時30分追記: 紹介あざます。layouts内はサブフォルダではなくその直下にlayout.tex.erbとlayout.html.erbとなっています(その経緯でwebmakerとepubmakerでレイアウトが分けられなくてちょっと困っています…) https://t.co/n7hYzlDrDB— kmuto (@kmuto) 2019年12月11日 該当箇所を修正しました。ついでに出力について、EWBは印刷前チェックの目的もありましたね。 Re:VIEW Re:VIEWは青木峰郎… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>2019年12月11日23時30分追記:</p> <p><blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">紹介あざます。layouts内はサブフォルダではなくその直下にlayout.<a class="keyword" href="http://d.hatena.ne.jp/keyword/tex">tex</a>.erbとlayout.html.erbとなっています(その経緯でwebmakerとepubmakerでレイアウトが分けられなくてちょっと困っています…) <a href="https://t.co/n7hYzlDrDB">https://t.co/n7hYzlDrDB</a></p>&mdash; kmuto (@kmuto) <a href="https://twitter.com/kmuto/status/1204760887740878848?ref_src=twsrc%5Etfw">2019年12月11日</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p> <p>該当箇所を修正しました。ついでに出力について、EWBは印刷前チェックの目的もありましたね。</p> <h3><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h3> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>は青木峰郎氏によって開発され、現在<a href="https://twitter.com/kmuto">@kmuto</a>氏によって 保守・開発されている、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby">Ruby</a>製の書籍用<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>とその処理系です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fkmuto%2Freview" title="kmuto/review" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe></p> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>公式に言及されているように、EWBにその源流があり、それは書式の他の点にも見ることができます。</p> <p>というわけで、今日はファイル構成とドキュメント以外の書式比較について言及します。 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>のバージョンは4系、EWBのバージョンは3.3のものを基準とします。</p> <h3><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8">ディレクト</a>リ構成</h3> <p>一般的と思われる構成です。</p> <h4>EWB</h4> <p><code>lst</code>や<code>tbl</code>の中身はEWBフォーマットのプレーンテキスト。<code>.ewb</code>にもできます。 <code>doc</code>もEWBドキュメントであることを示すだけでMSWordではないです。 基本的にeucjp<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%F3%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0">エンコーディング</a>です。</p> <p>ドキュメントは同じ箇所にまとめて配置し、画像やリスト(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9">ソースコード</a>)などはまとめてそれぞれの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8">ディレクト</a>リに配置しています。これらの配置位置を マップするのが<code>dat</code>などに書かれた情報になります。</p> <p>バックエンドは<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>一択、<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>文書用のクラスなどコマンドにより都度生成されるので、処理時に別の場所に置いてあるewbbase3_3.styなどを呼ぶものの、基本的に <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8">ディレクト</a>リ構造がシンプルですね。</p> <p>Styles内のファイルは基本的に各体裁用エディタ(フォーム)の出力<code>dat</code>から生成されます。</p> <p>読み込むファイルと順序などの記載されたcontents.ewbはEWB-Shelfで生成するのが恐らく基本的な方法でしょう。</p> <pre class="code lang-sh" data-lang="sh" data-unlink> root/ ┣FIG/ ┃ ┗*.eps ┣LIST/ ┃ ┗*.lst ┣Styles/ ┃ ┗triger.def //マークアップ挙動記述 ┃ ┗PDFStyle //PDF出力用設定ファイル ┃ ┗*.sty ┃ ┗*.cls ┃ ┗yakumono.<span class="synStatement">sed</span> //実質的pre<span class="synPreProc">(</span><span class="synSpecial">post</span><span class="synPreProc">)</span> process ┃ ┗ewb2latex.cls //基本LaTeX体裁 ┣TABLE/ ┃ ┗*.tbl ┝ForAll.index //索引登録ファイル ┝ForAll.phy //図表登録ファイル ┝MENTUKEinfo //面付出力用設定ファイル ┝PDFinfo ┝common.dat //他メタデータ ┝psidxested.dat //索引体裁 ┝pssted.dat //体裁 ┝contents.ewb //処理ファイル登録ファイル ┝*.doc ┝*.doc ┝ ... </pre> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a></h4> <pre class="code lang-sh" data-lang="sh" data-unlink> root/ ┣layouts/ ┃ ┗<span class="synStatement">&lt;</span>出力形式ごと<span class="synStatement">&gt;</span>.erb //(rubyテンプレート) ┃ ┣lib/ ┃ ┗*.rb //rake用補助ファイルその他 ┣sty/ ┃ ┗*.sty //TeX用体裁補助ファイル ┣Rakefile/ ┃ ┗*.rb ┣images/ ┃ ┗*.* // 画像ファイル ┣doc/ ┃ ┗* // usage ┝style.css //html用体裁ファイル ┝catalog.yml //処理ファイル登録ファイル ┝config.yml //メタデータ、一部体裁記述ファイル ┝*.re ┝*.re ┝ ... </pre> <p>catalog.ymlがcontents.ewb相当になりますが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/YAML">YAML</a>形式なのと、 体裁の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%C3%A5%D4%A5%F3%A5%B0">マッピング</a>はlayouts内のテンプレートとconfig.ymlにあるので かなり見た目がすっきりします。比較は明日の気力次第。</p> <p>config.ymlも</p> <p>また、<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>出力のスタイルに関しては、 現代的な<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>の使い方らしく、各場面に合わせた出力に関してもクラスファイルが担い、 必要に応じてスタ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%EB%A5%D5%A5%A1">イルファ</a>イルを足したりする形なので、やろうと思わなければ体裁系のファイル群は爆発しません。 EWBが<img src="https://chart.apis.google.com/chart?cht=tx&chl=p%5CLaTeX%7B%7D" alt="p\LaTeX{}"/>と周辺の過渡期のものであるという歴史を踏まえる必要がありますが。</p> <p>また、ビルド用ツールの設定がデフォルトで用意されていることで、個別コマンドで出力を調えていくコストが下がっているのも現代的ツールの特徴といえるでしょう。</p> <h3>体裁入力ツール</h3> <p>EWBのやや<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A5%E9%A5%AF%A5%C6%A5%A3%A5%D6">インタラクティブ</a>な体裁入力エディタ(pssted)は長年<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>には無いものでしたが、Re:VIEW4からは ブラウザで見られる体裁入力画面が使えます! すごい! えらい!<a href="#f-ea30b752" name="fn-ea30b752" title="[https://review-knowledge-ja.readthedocs.io/ja/latest/releases/review400.html#52d388e8b9dcde21ea707c6bb9f80787:title]">*1</a></p> <h3>出力</h3> <p>これを比較と書くべきか分かりませんが、フォーマットの面で触れるであろう事項なので。 EWBはプリンタレディな出力予想とPostScript出力を得るのが目的であり、(少なくとも現在の)<a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a>はもう少し汎用的あるいは前段階の出力を意図しています、多分。このことは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>入力書式において、意図していたかはおいておいて、両者の違いに表れてきます。</p> <ul> <li>EWB <ul> <li>DVI</li> <li>PS</li> <li></li> </ul> </li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Re%3AVIEW">Re:VIEW</a> <ul> <li>HTML</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/EPUB">EPUB</a></li> <li>PDF</li> <li>IDGXML</li> <li>...</li> </ul> </li> </ul> <h3>Next</h3> <p>内部フォーマットと体裁フォーマットの比較を、折れていなかったら。</p> <div class="footnote"> <p class="footnote"><a href="#fn-ea30b752" name="f-ea30b752" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text"><a href="https://review-knowledge-ja.readthedocs.io/ja/latest/releases/review400.html#52d388e8b9dcde21ea707c6bb9f80787">Re:VIEW 4.0 &#x3067;&#x306E;&#x5909;&#x66F4;&#x70B9; &mdash; Re:VIEW knowledge &#x30C9;&#x30AD;&#x30E5;&#x30E1;&#x30F3;&#x30C8;</a></span></p> </div> hidden_alma EWBの補助ツールの雑感 hatenablog://entry/26006613480030511 2019-12-10T23:05:01+09:00 2019-12-10T23:05:01+09:00 この記事はEWBアドベントカレンダー2019の10日目の記事です。 adventar.org 今どうなっているかというとf1-microでC++製VPNアプリのビルドがメモリ死で通らない。 おかしい。こんなはずでは。 何かしらの完成品を出す予定を変更して 無を語ります。 ちなみに「さっさと実アプリ動かせや」という意見はまだ15日もアドベントカレンダーがあるということを踏まえてもらえれば幸いです。 EWBの補助ツール EWBの補助ツールには2種類あります。透けてるものと透けてないものです。 某DVDにあるパッケージのbinディレクトリの中を見るに、ほとんどが数百kb程度の 小さなアプリケーション… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019の10日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <p>今どうなっているかというとf1-microで<a class="keyword" href="http://d.hatena.ne.jp/keyword/C%2B%2B">C++</a>製<a class="keyword" href="http://d.hatena.ne.jp/keyword/VPN">VPN</a>アプリのビルドがメモリ死で通らない。 おかしい。こんなはずでは。</p> <p>何かしらの完成品を出す予定を変更して 無を語ります。</p> <p>ちなみに「さっさと実アプリ動かせや」という意見はまだ15日も<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>があるということを踏まえてもらえれば幸いです。</p> <h3>EWBの補助ツール</h3> <p>EWBの補助ツールには2種類あります。透けてるものと透けてないものです。</p> <p>某DVDにあるパッケージのbin<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8">ディレクト</a>リの中を見るに、ほとんどが数百kb程度の 小さなアプリケーションです。EWBはプレーンテキストで、バックエンドの<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>もまあプレーンテキストなので、文字列置換や簡単なパースをするものに<a class="keyword" href="http://d.hatena.ne.jp/keyword/GUI">GUI</a>の皮があったりなかったりといったもののはずです。大仰な名前のpastですら、パラメータ入力フォームと四角のイラストでほぼ終わりです。xemacsや<a class="keyword" href="http://d.hatena.ne.jp/keyword/kakasi">kakasi</a>などは失われて久しいワケですが、EWB本体の動作には別に関係ありませんし。つまり、入力と出力予想から<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>パーして同様の結果のアプリケーションを作成することは可能ではないか? という無邪気な欲求が頭をもたげます。流石にEWB本体?であるEWB-Shelf(コマンド名は<code>book</code>だったりしてもう分からん)やewb2latexの実装などは骨が折れそうではありますが、binの中の小さなやつくらいなら、と思ってしまいますね。フラグです。</p> <p>今回は「再実装」という視点を持った上でツールの説明文を見てみましょう。</p> <p>ちょっとEWBハンドブックに記載された動作から当時のアプリケーション動作を予想してみましょう。</p> <p>明らかに<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>ツールなものは省きます。</p> <h3>tounix, tomac, todos</h3> <p>ファイルを各OS向けに変換するそうです。これだけ聞くとヤバそうですが、 変換するのがプレーンテキストで、EWBの必要ツール群に<a class="keyword" href="http://d.hatena.ne.jp/keyword/nkf">nkf</a>があることを考えると 察してしまいますね。改行と文字<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%F3%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0">エンコーディング</a>変換をします。</p> <p>あと<code>todos</code>、「TODO」じゃなくて「To <a class="keyword" href="http://d.hatena.ne.jp/keyword/DOS">DOS</a>」なのを認識するのに少し時間がかかりました。最近の若者なので。</p> <h3>mamehon</h3> <p>翻って難敵なのは「psmentukeで作成されたpsファイルをプリンタに出力」といったもの。バックエンドたる<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>ツール群をどこまで使っていたのか、場合によってはPostScript<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A1%BC%A5%D7%A5%EA%A5%BF">インタープリタ</a>やプリンタドライバの実装までして初めて完成といえるのかもしれません<a href="#f-212570c2" name="fn-212570c2" title="ネタです。悪しからず">*1</a>。でもpsprやfontscanは「psファイルからフォント情報を〜」のようなことが書いてあったりするので、psのパースや編集はできる必要がありそう……。</p> <h3>epscheck</h3> <blockquote><p>EPS フ ァ イ ルの形式がテキスト形式、 改行コード が <a class="keyword" href="http://d.hatena.ne.jp/keyword/UNIX">UNIX</a> 形式に な っ て いる かを チェック し ます。 また、 ヘッダ部分に 漢字が入っ て いれば漢字コ ード が<a class="keyword" href="http://d.hatena.ne.jp/keyword/EUC">EUC</a> になって いる かチェックします。</p></blockquote> <p>EPSの中身をフルでvalidか確認するわけではなさそうなので、幾分か楽そう。</p> <h3>jfontadd, efontadd</h3> <p>メイン部分以外の難所では1、2位を争いそうな部分です。 TFMとVFを作成して登録とか、AFMを使ってTFMを作成とか書いてあります。PSフォントから情報をエクスト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%AF">ラク</a>トする必要もある。</p> <p>CTANで先人のツールを探してラッパを作るのが現実解っぽい気もします。</p> <h3>体裁入力エディタ系</h3> <p>psstedやpastなど。エディタを1からというほどではないにしろ、結果が体裁入力ファイルになるのは確実なので、最初から体裁入力が生で書ければ問題ないはずだ……それを言いだしたら最初からPostScriptで出力結果を生で書ければ何もいらないけど。</p> <p>ちょっとずれますが、索引入力エディタもエディタ系ということでここに書いておきます。これはトリガ上書きなどで使うtriger.defも解釈できる必要があるようなので難易度高そうですね。しかし、基本的にはパースされたEWBでの出現位置、マップする索引入力ファイルを最終的にプレーンテキストで出力できれば良いのかな。</p> <h3>eword</h3> <p>最後にひょこっと載っていて毛色の違うのがこのeword。 入力はEWBフォーマットのプレーンテキストで、入力ファイル中の英単語、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AB%A5%BF%A5%AB%A5%CA%B8%EC">カタカナ語</a>を抽出するとあります。なんかすぐできそうな気がしてきた<a href="#f-70515159" name="fn-70515159" title="この記事に今日完成品が載っていない、そういうことです">*2</a>。</p> <p>最初は「english」かと思ったけどカタカナもなら「extract」なのかな。いややっぱりenglishだろうな。<code>uniq</code> <code>sort</code> と組み合わせれば表記揺れチェックができる、というふうに書いてあるのですが、「漢字で表記揺れなんかしないよ、もししたら埋めてもらっても構わないよ!」と言わんばかりの自信を感じませんか? 感じませんか。</p> <p>英単語はアルファベット及び<code>-</code> <code>_</code>、カタカナは<code>ー</code>(長音)を含むとあるので、 微妙に<code>isLetter()</code>みたいなライブラリ関数を使うと漏らすやつですね。</p> <p>おそらくこれも<a class="keyword" href="http://d.hatena.ne.jp/keyword/Unix">Unix</a>(Like)環境を前提としたツールなんですが、単体バイナリで動いた方がトレンドじゃないですか? 標準ライブラリでできるだけ完結した方がメンテナンスしやすいですよね? よし、Go言語だ! そして冒頭へ……<a href="#f-15bf5875" name="fn-15bf5875" title="補完をすると、アプリを書いていて集中が切れて街へ出て公衆WiFiに繋いで、普段通していたVPNが遅かったので新しく建てようとした、という完全に論理的なエピソードがある。">*3</a>。</p> <hr /> <p>これらのツールは基本的に入力ファイルの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9">文字コード</a>について言及していないのですが、多分<a class="keyword" href="http://d.hatena.ne.jp/keyword/EUC">EUC</a>-JPなんだろうなあ。でも書いていないからには全(主要<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9">文字コード</a>)対応できるべきでは。そんな感じに脱線してるから今日完成してないんですけれど。</p> <h3>Next</h3> <p>たぶん時間がとれないんで数日は茶を濁した内容になるのではないでしょうか。</p> <div class="footnote"> <p class="footnote"><a href="#fn-212570c2" name="f-212570c2" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text">ネタです。悪しからず</span></p> <p class="footnote"><a href="#fn-70515159" name="f-70515159" class="footnote-number">*2</a><span class="footnote-delimiter">:</span><span class="footnote-text">この記事に今日完成品が載っていない、そういうことです</span></p> <p class="footnote"><a href="#fn-15bf5875" name="f-15bf5875" class="footnote-number">*3</a><span class="footnote-delimiter">:</span><span class="footnote-text">補完をすると、アプリを書いていて集中が切れて街へ出て公衆<a class="keyword" href="http://d.hatena.ne.jp/keyword/WiFi">WiFi</a>に繋いで、普段通していた<a class="keyword" href="http://d.hatena.ne.jp/keyword/VPN">VPN</a>が遅かったので新しく建てようとした、という完全に論理的なエピソードがある。</span></p> </div> hidden_alma テーブルと図表挿入 hatenablog://entry/26006613479287843 2019-12-09T21:16:16+09:00 2019-12-09T21:16:16+09:00 この記事はEWBアドベントカレンダー2019 9日目の記事です。 adventar.org テーブルの記法 軽量マークアップ最大の課題*1であるテーブルマークアップ。 EWBハンドブックには 表の項目が単純に並んでいるような体裁の表を作成することができます( 各項目が連結しているような表は対象外)。表組の種類は必要に応じて増やすことができます。 とあり、アスキーにも複雑な図表のマークアップ決定版は出せなかったんだと思うと 勇気づけられますね。そもそも複雑な表組を求める人間が悪いのはそれはそう。 //table1[<トップ寄せ>(<トップ幅>)][<寄せ>(<幅>)]{ //g{項目トップ 項目… <p>この記事はEWB<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%C9%A5%D9%A5%F3%A5%C8%A5%AB%A5%EC%A5%F3%A5%C0%A1%BC">アドベントカレンダー</a>2019 9日目の記事です。</p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fadventar.org%2Fcalendars%2F4401" title="EWB Advent Calendar 2019 - Adventar" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://adventar.org/calendars/4401">adventar.org</a></cite></p> <h3>テーブルの記法</h3> <p>軽量<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>最大の課題<a href="#f-b67b80d9" name="fn-b67b80d9" title="要出典">*1</a>である<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C6%A1%BC%A5%D6%A5%EB%A5%DE%A1%BC%A5%AF">テーブルマーク</a>アップ。</p> <p>EWBハンドブックには</p> <blockquote><p>表の項目が単純に並んでいるような体裁の表を作成することができます( 各項目が連結しているような表は対象外)。表組の種類は必要に応じて増やすことができます。</p></blockquote> <p>とあり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%B9%A5%AD%A1%BC">アスキー</a>にも複雑な図表の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>決定版は出せなかったんだと思うと 勇気づけられますね。そもそも複雑な表組を求める人間が悪いのはそれはそう。</p> <pre class="code ewb" data-lang="ewb" data-unlink>//table1[&lt;トップ寄せ&gt;(&lt;トップ幅&gt;)][&lt;寄せ&gt;(&lt;幅&gt;)]{ //g{項目トップ 項目トップ//g} 項目 項目 ... //table1} </pre> <p><code>//table1{...//table1}</code>で囲みます。項目はタブ区切り。ハードタブです。 幅指定オプションをしない場合、表組の字送りの値が使われます。 table「1」。表組の体裁種類が増やせるために数字なんですね。 <code>//g{ ... //g}</code>を項目トップに書いているのはゴシック体にするためで、必須ではないですね。 項目が長くなる場合は自動で行送りが入ります。<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>の素の表を考えるとちょっと嬉しい。</p> <p>体裁で決めるのは各種書体の他、字下げと字上げ(表のインデントとデデント)、タブをスペース幾つに展開するかなどになります。 囲み罫は体裁で指定とありますね。</p> <h3>図表の取り込み、処理</h3> <p>EWBは図表の取り扱いについてその他の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>とは異なる処理順を取ります。 ここで言う図表はテーブル、画像、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9">ソースコード</a>といったものです。変わったところでは数式を <code>.tex</code>としてここに分類します。</p> <p>先ず、フロートするもの、しないものに分類されます。 しないものは原稿中の指定位置に必ず出力されます。複数ページに跨がる場合は 自動改ページされます。<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>的な対応については余裕がないので割愛します。</p> <p>「フロートするもの」はhere, top, bottom, pageといった位置指定ができます。</p> <p>これによる結果が気に入らない場合は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガで調整することになります。</p> <p>この辺りまでだと特殊性が分かりませんね。数日前に登場した物理属性さんの出番です。</p> <p>先に挙げたようにテーブルはEWB形式の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%AF%A5%A2%A5%C3%A5%D7">マークアップ</a>なので本文に挿入することが可能なはずですが、別ファイルに分けて<code>//f&lt;数字&gt;</code>や<code>//t&lt;数字&gt;</code>といったキャプション定義をしている箇所が呼び出しを行います。</p> <p>EWB-Shelfを起動し、コンテンツ登録を行う際にオプションとして<code>tex2</code>を<code>usephy tex2</code>に……<code>tex2</code>ってなんだ……? EWBなんもわからん……。多分出力の<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CTeX%7B%7D" alt="\TeX{}"/>がバージョン2系ってことなんかな……。 いや<img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>2系か? とりあえず書き換えます。次に物理属性エディタpast君を起動します。 本体名に<code>.phy</code>をつけた名前を<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%DE%A5%F3%A5%C9%A5%E9%A5%A4%A5%F3">コマンドライン</a>引数にするそうです。</p> <p>キャプション定義した番号がリスト表示され、選択してリターンを押すと 図表の「メニュー画面」、体裁調整ができるようになります。ここで「ファイル」「EPS」「アタリ罫」から選択します。アタリ罫は所謂<code>draft</code>モードのように、矩形を図表位置に置きます。 ここでの体裁調整はどちらかというとフォーム入力のソレなので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/WYSIWYG">WYSIWYG</a>というワケではないようです。こうしてできた.phyファイルに何が書かれているかというと、入力したパラメータをタブ区切りで <img src="https://chart.apis.google.com/chart?cht=tx&chl=%5CLaTeX%7B%7D" alt="\LaTeX{}"/>にこの値で突っこむんだろうなという形に変換されて載っています。 <code>here top bottom</code> が<code>htb</code>となっていたりという感じですね。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>トリガでの調整はこの後なので、 <code>\includegraphic</code>相当の命令のオプション値と<code>figure</code>環境のオプション値でどうにもならなかった箇所の修正を入力といった感じのようです。</p> <h3>NEXT</h3> <p>EWB文書ライクなものを書いてみる予定。パース擬きまでは間に合わないんじゃないかなあ。 もしくは索引。</p> <div class="footnote"> <p class="footnote"><a href="#fn-b67b80d9" name="f-b67b80d9" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text">要出典</span></p> </div> hidden_alma sphinx.styを読もう hatenablog://entry/26006613478862456 2019-12-09T02:55:38+09:00 2019-12-09T22:42:00+09:00 備忘録というか作業中の外部処理装置。 必須環境をTeXLive2017くらいにしてしまうと色々楽なんだよな。 使ってもらって議論するうちにUbuntu16.04のサポートなんてきれそうだし。 \sphinxdeprecationwarning{4} 非推奨機能を使っている場合の警告。TeXのバージョンとの不整合を防ぐのに必要。 パッケージ読み込み 呼んでるパッケージ graphicx (画像その他) titlesec(notbottomltitles*オプション、まあこのままでもいいか? バージョンにより壊れるので分岐) fancyhdr(memoirクラス限定。柱など編集用。うーん) ams… <p>備忘録というか作業中の外部処理装置。 必須環境をTeXLive2017くらいにしてしまうと色々楽なんだよな。 使ってもらって議論するうちにUbuntu16.04のサポートなんてきれそうだし。</p> <pre class="code latex" data-lang="latex" data-unlink>\sphinxdeprecationwarning{4}</pre> <p>非推奨機能を使っている場合の警告。<a class="keyword" href="http://d.hatena.ne.jp/keyword/TeX">TeX</a>のバージョンとの不整合を防ぐのに必要。</p> <h3>パッケージ読み込み</h3> <p>呼んでるパッケージ</p> <ul> <li>graphicx (画像その他)</li> <li>titlesec(notbottomltitles*オプション、まあこのままでもいいか? バージョンにより壊れるので分岐)</li> <li>fancyhdr(memoirクラス限定。柱など編集用。うーん)</li> <li>amstext (bxamstextへ移行? 2016年からは<a class="keyword" href="http://d.hatena.ne.jp/keyword/LaTeX">LaTeX</a>の必須<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8">コンポーネント</a>化してるから読明示的に読ませなくてもよい? 数式記述補助)</li> <li>textcomp(記号拡張)</li> <li>tabulary (表機能拡張。table用スタイル分けるべきか?)</li> <li>varwidth (表機能用。)</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/sphinx">sphinx</a>-multicells(表機能用)</li> <li>makeidx (索引)</li> <li>framed (枠組み用)</li> <li>xcolor or color (色)</li> <li>fancyvrb (verbatim改造)</li> <li>float (図表フローティング拡張)</li> <li>wrapfig(周りこみ画像)</li> <li>parskip(バージョンにより壊れるので分岐)</li> <li>alltt (<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%C6%A5%E9%A5%EB">リテラル</a>表示用等幅表示拡張)</li> <li>upquote (<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%C6%A5%E9%A5%EB">リテラル</a>中のシングルクオートを本物へ)</li> <li>capt-of フロート要素以外へキャプションをつけられるように</li> <li>vspace中でのページブレークの抑制コマンド提供。</li> <li>remreset (バージョンによっては<a class="keyword" href="http://d.hatena.ne.jp/keyword/LaTeX">LaTeX</a>にとりこまれているのでコマンド有無チェック。カウンタのコン<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB">トロール</a>リストからの除外を提供?)</li> <li>hyperref (kanjiskipのあるなしでオプション分岐してるので直したい)</li> <li>atbegshi (日本語endashの挙動などに使っているのでpxjahyperに変更?)</li> <li>sphinxhighlight (pygmentsでのハイライト用。中身によってはmintでもいいのでは)</li> <li>kvoptions (パッケージ補助)</li> <li></li> </ul> <p><a href="https://ctan.org/pkg/needspace">CTAN: Package needspace</a></p> <p><a href="https://www.ctan.org/pkg/capt-of">CTAN: Package capt-of</a></p> <p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fzrbabbler.hatenablog.com%2Fentry%2F20151221%2F1450702868" title="ヤバくない \text 命令を作る話(bxamstext パッケージ) - マクロツイーター" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe><cite class="hatena-citation"><a href="https://zrbabbler.hatenablog.com/entry/20151221/1450702868">zrbabbler.hatenablog.com</a></cite></p> <p><a href="https://www.ctan.org/pkg/amstext">CTAN: Package amstext</a></p> <p><a href="https://ctan.org/pkg/makeidx">CTAN: Package makeidx</a></p> <h3>table系定義</h3> <ul> <li>カラムタイプ<code>\X</code>と<code>\Y</code></li> <li>カラムタイプ<code>T</code> 値は<code>J</code></li> </ul> <p>マルチカラムでのtabularyのバグに由来するとのことなのでバージョンによっては省ける? 要調査</p> <p><a href="https://www.ctan.org/pkg/tabulary">CTAN: Package tabulary</a></p> <ul> <li><code>\sphinxtablepre</code> とりあえず0でおいてある</li> <li><code>\sphinxtablepost</code> 値は<code>\medskipamount</code></li> </ul> <p>dim値。ユーザによる調整用?</p> <ul> <li><p><code>\sphinxbelowcaptionspace{.5\sphinxbaselineskip}</code> キャプション位置がtopの場合のテーブルとのアキ テーブルまたは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%C6%A5%E9%A5%EB">リテラル</a>ブロック用</p></li> <li><p><code>\sphinxbaselineskip</code> longtable内でbaselineskipが0になるので作成とある。基本は<code>baselineskipと同値</code>。theme作成時にややこしくなりそう</p></li> <li>\sphinxatlongtablestart vskipと上のtablepreでのテーブル位置補正。llongtableのskipは0にして<a class="keyword" href="http://d.hatena.ne.jp/keyword/sphinx">sphinx</a>側の値のみを使わせる形。longtableはlongtableのskipのためにbaselineskipきかないようにしたんだろうし単<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BD%E3%B2%BD">純化</a>できないものか。</li> <li><code>\sphinxthelongtablecaptionisattop</code> captionパッケージとの互換とのこと。</li> <li><code>\sphinxlongtablecapskipadjust</code> longtable時のcaption位置を<a class="keyword" href="http://d.hatena.ne.jp/keyword/sphinx">sphinx</a>的に正確にする</li> <li><code>\sphinxatlongtableend</code> <iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Flatex3%2Flatex2e%2Fissues%2F173" title="A longtable does not issue `\@nobreakfalse` resulting in inconsistent spacing · Issue #173 · latex3/latex2e" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;"></iframe><a href="https://github.com/latex3/latex2e/issues/173">A longtable does not issue `\@nobreakfalse` resulting in inconsistent spacing &middot; Issue #173 &middot; latex3/latex2e &middot; GitHub</a> 対策がついとる。アトアキ。sphinxtablepostの値を利用</li> <li><code>\sphinxattablestart</code> longtableでない場合</li> <li><code>\sphinxattableend</code> 用意したもののsphinxatlongtableendの値ぶちこんでる</li> <li><code>\sphinxcapstartof</code> 図表へのref時の位置を良い感じにするため</li> <li><code>\sphinxthecaptionisattop</code> <code>\sphinxthecaptionisatbottom</code> captionパッケージ互換。captionパッケージがあれば調整、なければ無</li> <li><code>\sphinxtablecapwidth</code> longtableの幅。</li> <li><code>\sphinxcaption</code> 上の値を使ってlongtableとtabularのキャプション幅をそろえる</li> </ul> hidden_alma