2023年1月28日土曜日
visual studio の単語区切り
visual studio には単語単位のforward backward 等があるが、
日本語の編集中にはあんまりうまく機能しない。
藤井大洋先生が、形態素解析を行うランゲージサーバでいれてなにかされている
ようだがそれは後で試すとして、とりあえず、単語区切りに「を」とか「が」とか「、」「。」あたりを入れるとちょっとましになる。ちょっとだけど。
こちら を参考に。
2023年1月15日日曜日
SVGファイルの周りを削除
http://alexlenail.me/NN-SVG/LeNet.html
で作った画像はSVGになるのだけど、大きい紙の真ん中に書かれている形になるので、
取り込むと周囲に空白ができて困る。bounding box で crop する方法を調べたら
あっさり
stack overflow にあった。便利だ。。
inkscape -o cropped.svg -D source.svg
2023年1月7日土曜日
jupyter nbconvert でベクタ図入りのノートブックを変換する
nbconvertはpdfやらsvgやらが入ったノートブックを変換すると、inkscapeを使用するらしく、こんなエラーがでる。
FileNotFoundError: [Errno 2] No such file or directory: 'inkscape'なので、inkscape をインストールして、下のようにしてpathを通す。inkscapeは、app storeからは インストールできないみたいなので、webページからダウンロードした。
ln -s /Applications/Inkscape.app/Contents/MacOS/inkscape \ /usr/local/bin/inkscape
nbconvert の日本語対応
こちらの記事に
まとまっている。 テンプレートファイル index.tex.j2 というファイルを見つけて
\documentclass[11pt]{article}となっているところを、
\documentclass[xelatex,ja=standard]{bxjsarticle}と直せばいいのだけど、このindex.tex.j2がどこにあるのかわからない。 こちらにあるように、
$ jupyter nbconvert --to pdf filename.ipynb --debugのようにdebugオプションをつけると、templateを探しに行くパスが表示されるのでそこを見ていけばいい。のだが、めちゃめちゃ数が多くてたいへんだった。
2023年1月5日木曜日
jupyter nbconvert でセルの出力を抑制
jupyter のノートブックからHTMLやPDFを nbconvert で生成することができる。
しかし、多くの場合はすべてのセルを表示したいわけではないので、セル単位で
出力を抑制する必要がある。これにはいくつか方法がある
nbconvert には
preprocessor
という概念がある。
この内の、TagRemovePreprocessorを使うと、特定のタグがついたセルの出力を抑制できる。そもそも「タグ」というのは何なのか知らなかったのだけど、セルごとに任意の属性を付加する事ができる仕掛けで、普通のJupyter notebookでもできるし、vscodeでもつけることができる。ただし結構使いづらい。
これを使うと、
jupyter nbconvert --to html --TagRemovePreprocessor.remove_input_tags='{"hide"}' test.ipynbのようにして、入力セルだけを抑制できる。ここで hide としているのは任意のタグなので、適当に変更することができる。なんで波括弧が要るのか、よくわからない。 remove_input_tags を remove_cell_tags 、 remove_output_tags にすると、それぞれ入出力両方、出力セルのみの出力を抑制できる。
タグは柔軟で素晴らしいのだけど、タグを付けるのが結構面倒だし、ついているのかエディタ上で目視で確認する事ができない。 RegexRemovePreprocessor というものがあり、これはセルの内容に対して、正規表現で検索を行って、マッチしたら出力を抑制してくれる。
jupyter nbconvert --RegexRemovePreprocessor.patterns="['^# hide']" test.ipynb素晴らしい、がこれはまるごと抑制してしまうので、入力だけ抑制することはできない。 ソースコードはsite-packages/nbconvert/preprocessors にあるのだけど、 全く対応していない。ほんのちょっといじればできそうなんだけどなあ。。 ということで、やってみたらできたので、 こちらにまとめた。
登録:
投稿 (Atom)