はやし雑記

はやしです


LaTeXをwordに変換する(多分これが一番きれいに変換できる)

アドベントカレンダーの時期だけど、特に所属している団体とか何も無いので普通の記事です。

LaTeXをwordに変換する方法を色々と模索して、多分一番良さそうな方法を見つけたので書いておく。 もっといい方法があれば教えてください。

多分、LaTeXをwordにするのに一番一般的な方法は PDFで吐き出したやつをwordで読み込むやつだと思うが、 この方法だと数式が崩れたり、なんか色々崩れたりであれなので、 pandocを使って変換した。

ただ、pandocでの変換も完全ではないので、panflute を使って無理やりなんとかした。

panflute はpythonでpandocのフィルターが書けるやつです。 github.com

今回作ったやつのリポジトリはこれです。

https://github.com/hayashikun/latex2docxgithub.com

使い方は、cloneして、pandocの-dオプションで config.yml を指定する。 自分はoverleafで書いたlatexをgithubに同期していて、そのgitリポジトリにlatex2docxをsubmoduleとして追加している。

$ git submodule add git@github.com:hayashikun/latex2docx.git latex2docx
$ ls
figures  latex2docx  main.tex  references.bib
$ pandoc -d latex2docx/config.yml
document.docx  figures  latex2docx  main.tex  references.bib

-d オプションはそれなりに新しいpandocじゃないと動かないので、必要であれば新しいのをインストールする必要がある。 pandoc-crossref も使っています。

pandoc-crossrefciteproc のフィルターを通す前に pre_filter を、後に post_filter を通した。

https://github.com/hayashikun/latex2docx/blob/master/pre_filter.py

pre_filter では、以下のfilterを通した。

  • replace: \Im\mathrm{Im} の変換など (physics packageを使っているが、反映されないので)
  • aligned_block: で align を良い感じになるように
  • extract_eq_label: で数式番号が正しく出るように

https://github.com/hayashikun/latex2docx/blob/master/post_filter.py

post_filter では、以下のfilterを通した。

  • make_index: で数式のインデックスを作る
  • update_eq_label: で数式インデックスに合わせて番号を振る

かなりadhocな対応で、自分のlatexファイルが正しく変換されるようにということだけを考えてfilterを書いた。

panflute はbreakpointなどを張りながらデバッグしたりする方法がわからず、結構面倒だった。 print などで標準出力に吐くとそれがfilterの出力になって後ろのfilterとかでエラーになってしまうので、 エラー出力に吐いてデバッグした。

Appendix

Haskell & Pandocをインストールする

Macだとbrewで最新版がインストールできるが、WSL Ubuntuとかだと自分で入れないと最新のものが入らない。 apt install だとインストールできるPandocのバージョンは2.5だが、2.8より上じゃないと -d オプションは使えないので、自分でインストールする必要がある。

今回改めてWSL Ubuntu上でこれをやるために、Haskellを入れてPandocを入れた。

# Install ghcup & Haskell
$ curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

# Install pandoc
$ cabal new-update
$ cabal new-install pandoc pandoc-crossref

www.haskell.org

もし、 /usr/bin/ld.gold: error: cannot find -lgmp というエラーが出たら、

$ sudo apt install libgmp-dev

とする。

TypescriptでChrome拡張機能を作った

MixchTools

最近ミクチャにはまっていて、PCからウェブ版ミクチャを快適に使うためのChrome拡張機能を作った。

Chrome拡張機能を作るのは初めてだったので、備忘録として残しておく。

github.com

ざっくりとした技術仕様は以下のような感じ。

  • Typescriptで書く
  • scssを使う
  • webpackでpackする

今回作った拡張機能には以下の2つの機能を実装した。 - コメントがあったらPush通知を出す - レイアウトを良い感じに変えられる

続きを読む

Fitbit Charge 5はいいよ

ずっとFitbit Charge 3を使っていたけど、先日Charge 5が新しく出たので買い換えた。

f:id:hayashikunsan:20211024160216p:plain

f:id:hayashikunsan:20211024160458j:plain

今月の頭に届いて、だいたい3週間くらい使ってみた感じの感想を書く。

まず、ディスプレイがカラーになってとても見やすくなった。 画面で表示する情報を切り替えるときに、これまでは小さいアイコンで何を表示しているか確認しないといけなかったけど、 カラーになったので、赤だから心拍数、緑だから歩数、みたいな感じで直感的に判断できるようになった。

電池は1週間くらいは持つので、今のところ不満は全く無い。 Charge 3は徐々に電池がヘタってきた感じがあったので、Charge 5はヘタらないでほしい。

Charge 3のときは一部のスマホのアプリからの通知しか通知が来なかったけど、 Charge 5はほぼすべてのアプリの通知が飛んでくるようになった。 全部の通知が来てもうっとうしいので、一部のアプリの通知が飛んでくるように設定している。

あとはなんか見れる項目が増えたので、それが少し面白い。 Fitbit Premium (Charge 5を買ったら半年分が付いてきた) の機能なのかもしれないが、 ストレスマネジメントとかいうのがあったりする。 自分のここ3週間のストレス量の変動を見ていたら、金曜日あたりがピークの周期変動になっていてちょっと面白かった。 あとはSpO2とかも見れるらしいが、よくわらないのでもう少し使いこなしたい。

あとは、Suicaが使えるらしいけど、スマホのモバイルSuicaで間に合っているし、 既存のSuicaが使えるのかと思ったら新しくSuicaを作ってチャージする感じになるぽくて面倒でやってない。

GPSでランニングのログとかもできるらしいけど、ランニングもしないのでGPSをまだ一回も使えていない。 行動ログとか取れれば面白いけど、できるんだろうか。

少し不満があるとすれば、 画面のタッチセンサーの感度が上がったせいか防水ロックを忘れてシャワー浴びると 勝手に画面がめちゃくちゃ操作されてランニングしてることになってたりする。 Charge 3でも同じようなことはあったけど、Charge 5のほうがよく起きる気がする。

あと、少し時計の文字盤のラインナップに不満がある。 私は月日時分秒を表示させたいけど、秒まで表示させようと思うとあんまり選択肢が無い。 今はStatposterにしているけど、これが日本語表示だと月の表示が「10月」とかになるので、とてもダサい。 f:id:hayashikunsan:20211024155202p:plain

全体的に英語で表示することを想定してデザインされている感があるので、 Charge 5の言語設定は日本語じゃなくて英語にしたいのだけど、 どうも「言語を変更」することはできないぽい。 いちおう、App SettingからLocationを日本からUnited Statesとかにすれば英語にできるのでそうしているけど、 地域によって使える機能が変わったりするらしいので、それをやってしまっていいのかよくわからない。

なにはともあれ、Charge 5には今後もいろんな機能が追加されるらしいので楽しみではある。 毎日充電する必要無いし、アプリからの通知は届くし、運動の記録は残るしでとても便利なので皆さんオススメです。

昨日の夜寝る前はiPhone13を買う気満々だったけど、朝起きてOPPO Reno5 Aをぽちった

1年半ほど使っているOPPO Reno Aがもう限界なので、iPhoneに買い換えたいと思っていたが、 今日の朝起きてiPhone 13の詳細と値段を見てやーめぴ、となってOPPO Reno5 AをAmazonでぽちった

パソコン(MacBook Pro)もタブレット(iPad Pro)もスマホもイヤホンも全部USB Type-C充電で、 最近はもうType-C以外で充電することがないのでやっぱりLightningはな~というのがある

と思ったので、まぁ1年くらいこれで耐えて来年良さそうだったら買いたい (来年のほうが収入も高そうだし)

biz-journal.jp

こんな記事もあるけど、納得できね~~と思ってしまった

OPPO Reno5 AはiPhone 13 miniよりかなり安いし、まぁおサイフケータイもついているので、 iPhoneにしたいなぁ~とは思いつつもまたAndroidにしてしまった

まぁおサイフケータイが使えればなんでも良いみたいなところはあるけど、 Android版よりiOS版のほうが使い勝手の良いアプリが多い(Twitterとか、Twitterとか) ので、そこだけ何とかなってくれたらいいんだけど

去年も一昨年もType-Cじゃないんか~と思ったけど、来年も同じことを思いそう

iPhone 3GS→ P-04D → P-02E → iPhone 5S → iPhone 6S, Xperia z3c → iPhone 8 → OPPO Reno A → OPPO Reno5 A

デカフェの紅茶でミルクティーにしても耐えられるやつ

紅茶が好きなんですが、夜にカフェイン入ったやつを飲むと寝つきが悪くなるので、 できればデカフェの紅茶を飲みたい。

ただ、デカフェの紅茶って風味が飛ぶからなのかアールグレーが多い気がするし、 アールグレーじゃなくてもミルクティーにしたらミルクのお湯割りになってしまうようなやつばっかりで、 ミルクティーにして耐えられるやつはほとんど無い。

ミルクティーにしても耐えられるデカフェ紅茶は、今のところ

フォートナム&メイソンのデカフェのロイヤルブレンドか、

クリッパーのデカフェアッサムブレンド

しか見つけられていない。

両方とも常備しているけど、クリッパーのデカフェアッサムブレンドはフォートナム&メイソンより安い割に美味しいので、クリッパーのやつばっかり飲んでいる。

いつも行くスーパーでこれがずっとあったのに、最近無くなってしまったので悲しい。 仕方ないのでAmazonで買うけど、スーパーの方が安かったのでちょっと悔しい。

他にミルクティーにしても耐えられるデカフェ紅茶は無いもんだろうか。

「アジア文字入門」止以宇HONGA面しろカッ타

大学生協書店で見かけて、面白そうだったので思わず買ってしまった。

日本で生まれ育ったので、漢字やハングルのような東アジアの文字はそれなりに知っているし、 英語やヨーロッパの世界史は学校で習ったので、アルファベットについてもそれなりに知っている。

ただ、インド系文字(タイ文字 อักษรไทย 、インドのデーヴァナーガリー देवनागरी 、ビルマ文字 မြန်မာအက္ခရာ 、梵字 𑖭𑖰𑖟𑖿𑖠𑖽 など)はたまにネットやニュースやお墓で見かけることはあっても、その系統や仕組みなどについて全然知らなかった。

また、アラビア文字もたまに見かけるが、RTLであること以外ほとんど知らなかった。

この本では、アジアの文字、インド系文字やアラビア文字について歴史やその仕組みを解説されている。 タイ文字を筆記せよ!と言われても、これまでは到底無理だったし、 アラビア文字もぐちゃぐちゃした線以上の認識はできなかったが、 これを読んで文字の構成がわかったので、少し文字についての理解が深まったと思う。

日本語でも中国語でも使う漢字を日々使っているし、 英語もドイツ語もアルファベットで書いたことがあるので 知っているはずだったが、 改めて言葉と文字は多対多の関係なんだなと思った。

ローマ字論 - Wikipedia

カナモジカイ - Wikipedia

日本語のハングル表記 - Wikipedia

カタカナダケデニホンゴヲキジュツスルノハサスガニヨミニクイキガスルガ、 にほんごもいつかひらがなだけできじゅつするようになったり、 Arufabettodakedekijutsusuruyouninattari 하ㄴ구루니나쓰타리 寸留乃加毛之礼奈以

言葉と文字は別だけど、大体外国語として学ぶときはセットで学ぶわけだし、 普段同じ系統の文字を使う言語間(タイ語とヒンディー語とか)では言語の習得が早いとかあるのだろうか。 韓国語の習得は(日本人は)簡単だとか聞くし、 中国語は音と漢字が対応付くようになれば大体いけるみたいなことも聞くし、 なんかそういうのあるのかもしれない

アジアの”言葉”についてなんかいい本があったら読んでみたい

僕の家は100年前、花街にあったらしい

僕の家は100年前、花街にあったらしい。

家と言っても、林家のことではなくて、 東京都某区某町にある、安い、でも地方の人からは高いくせになんでそんなに狭いのとよく笑われる、 僕が今住んでいるマンションのことです。

実際には僕は100年前にはいないので、僕の家も無いし、マンションも無いので、 「僕の家は100年前、花街にあったらしい」ってのは嘘なんですが、 まぁだいたいそんな感じです。

ちなみに100年前の林家、今の僕くらいの年齢だったであろう曾祖父は、 地方で花街とは縁が遠そうなお堅い仕事をしていたらしい。

地方だと100年前の情報はほとんどネットには載っていなくて、地域の図書館やお寺に行くしかないが、 東京の昔の情報はインターネットに多くあるので、たまにそれらを眺めている。

先日、なんとなく花街について調べていたら、自分の今住んでいるところが花街(三業地)だったことを知った。

ja.wikipedia.org

ja.wikipedia.org

色々と調べていると、その花街の昔の店の屋号などが書かれた地図も見つかった。 その地図によると、いま僕が住んでいるマンションのところにも料理屋か待合か置屋かはわからないが、 京都のキャバ嬢の源氏名のような名前の店があったらしい。

たしかに、家の近くには今でも古い木造の建物が残っていて、 そう思って見れば、花街の名残が残っているように感じる。

あまり狭い路地には入ったことがないが、今度機会があればもう少し中を見てみようと思う。

最近、家のすぐ近くにあった木造の建物が取り壊されて更地になっていた。 そこは元々料亭だったようで、屋号が玄関に書いてあったりと、趣のある家だった。 そこの住人とは、ゴミ出しのときや、学校に行くときによく顔を合わせていたので、 いつしか挨拶をして、たまに世間話をするくらいの仲にはなっていた。 取り壊されてからは一度も見かけていないので、どこか遠くに引っ越してしまったんだろうか。

もっと早くこの街の歴史を知っていれば、その家の写真を一枚でも撮らせてもらいたかった。

僕はこの場所に引っ越してきて4年半しか経っていないし、あと数年もしたら引っ越すつもりでいる。 (実際、読む人が読めば場所を特定されそうだが、そのうち引っ越すしなぁと思ってこれを書いた) それでも、僕はこの場所が結構気に入っているし、ここが花街だった歴史を知ることができて良かった。

現代の僕が一人で飯を食べている場所で、100年前には男と女が仲良く酒を飲み、飯を食っていたんだろうか。 現代の僕が一人で寝ている場所で、100年前には男と女がよろしくやっていたんだろうか。 クゥ~~~

まぁ芸妓も大変だったそうだし、女に入れ込みすぎて没落した男もいたようですが。

アイドルと色

知り合い(ジャニオタ)と喋っていて、アイドルのメンバーカラーの話になった。

ジャニーズのグループでは各メンバー毎に”担当色”なるものがあるらしい。 Wikipediaでざっくり見た感じ、V6やTOKIOのページにはメンバーの担当色が記載されてなかったので、 担当色制度が始まったのは嵐からなのだろうか。

ジャニーズのグループならメンバー数は高々10人程度なので、一人に一色割り当てても判別可能なレベルに収まるだろうけど、 AKB系列や坂道グループのようなもっと大人数のグループの場合、 それぞれに担当色を割り振ったら ネイビーミディアムブルー とかになってわかんねえよ!ってなるんじゃないか、とか思って少し調べてみた。

X11の色名称 - Wikipedia

続きを読む

使用済み切手を寄付する、というのがあるらしい

大学生協の書店で、使用済み切手を寄付するボックスを見かけた。

そんなことある?と思ったけど、どうも切手コレクターが買う感じで換金されるらしい。

大学で見かけたボックスにはキリスト教って書いてあったから多分JOCSのやつだと思う。

www.jocs.or.jp

www.jcv-jp.org

大体1kg 2000円弱で売れるらしい。

へ〜

LinuxでもAmazon DriveやOneDriveにデータをバックアップしたい

UbuntuにはAmazon photoやOneDriveの公式クライアントは無いが、 odriveを使ってファイルをバックアップできるようにしたので、備忘録として残しておく。

odriveはいろんなクラウドストレージを一元管理するサービスで、Linux向けのCLIクライアントもある。

www.odrive.com

今回、Google PhotoやAmazon photoやDropboxやOneDriveに散らばっていた写真や動画、ドキュメントの類をすべてデスクトップPCのHDDに突っ込んで、そこで管理するようにした。

ただ、外でスマホなどから写真を見たりしたいので、HDDに保存するのをメインとして、 写真や動画をAmazon Driveに、ドキュメントをOneDriveにバックアップするようにした。

なので、基本的にはUbuntuにマウントしたHDDのデータを、Amazon DriveやOneDriveにバックアップするような一方向の想定でセットアップした。

続きを読む