バジルの種類。

技術とは全然関係ありませんが、どこかにメモしておかないと忘れてしまうので。

バジルについてです。


通称 現地名 英語 学名 メモ
ホーリーバジル ガパオ
トゥルシー
Holy Basil Ocimum tenuiflorum ハーブ茶、炒めもの、
アロマオイルなど
タイバジル
タイスイートバジル
ホーラパー Thai Basil
Horapha
Asian Sweet Basil
Ocimum basilicum ゲンキョワーンとか
シャムクイーンバジル Siam Queen Basil Ocimum basilicum
台湾バジル 九層塔 Taiwanese Basil Ocimum citriodorum
レモンバジル Lemon Basil Ocimum citriodorum サラダとか収穫後、オリーブオイルを
絡めて冷凍保存
マンモスバジル
スイートマンモスバジル
Mammoth Basil
Sweet Mammoth Basil
Ocimum basilicum 松の実、オリーブオイル、にんにく、
チーズとあわせてバジルソースに
ジェノベーゼバジル
スイートバジル
Genovese Basil
Sweet Basil
バジルペーストとか炒めもの
パープルラッフルバジル Purple Ruffles Basil Ocimum basilicum カリフォルニアの赤紫蘇?
酢に漬けると赤くなる
シナモンバジル Cinnamon Basil Ocimum basilicum カリフォルニアの青じそ?
ハーブビネガーなど

vimtexがfiletypeで起動しない。その2

Neovim で\(\rm\TeX\)ファイルを編集するときに vimtex が正常に動作していなかった件ですが、どうやら原因がわかりました。

Neovim で編集する\(\rm\TeX\)ファイルを読み込むときにパス名に日本語が含まれていると、vimtex が以下のようなエラーを出します。

Error detected while processing function vimtex#init[4]..50_init_state[1]..vimtex#state#init[1]..52_get_main[24]..52_file_is_main:
line   10:
E484: Can't open file C:\Users\kats\Google_Drive\サーバードキュメント\Setting_up_Manjaro_Linux.tex

Neovim 自体ではこのファイルは正常に開けますが、vimtex が読み込むときにエラーを起こしているようです。具体的にどの文字が悪さしているのかは「ダメ文字」で検索してみると、どうやら「ー」が該当するようです。

これを回避するための方法は2つあります。

  1. ダメ文字を使わないこと。一番確実なのは日本語を使わないことでしょう。
  2. 「ベータ: ワールドワイド言語サポートでUnicode UTF-8を使用(U)」を使ってシステムのエンコーディングを UTF-8 にすること。

他にも vimtex 側で対処してもらうとかありそうですが、UTF-8 にすればダメ文字の呪いから開放されるので、その場合にはファイル名やパス名に日本語が容赦なく使用できます。

defaultuser100000。

Windows 10 May 2019 update (1903)をしたノートPCで、ふと c:\Users を見ると、defaultuser100000 というユーザができていました。これまで通り Default というユーザは別にあります。

調べてみると、Windows 10 Update created a default user accountになにやら書いてあります。

ユーザアカウントをリネームしたときにバックアップを消すことができなかったとかそんな感じです。

そのまま削除しても問題はないようですが、ユーザアカウントがダブっていないか確認したほうがいいようなことが書いてあります。

  1. まず、netplwizで自分が使用しているユーザアカウント名を確認します。また同時に他のユーザアカウントがログオンしていないかどうかも確認します。
  2. 管理者モードでコマンドプロンプトを開いて、whoami /user を実行して SID を確認します。
  3. regedit を起動して、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList からユーザリストに先程の SID があるかどうかを確認します。それが自分の SID であれば問題ありません。ProfileImagePath を確認して、ユーザプロファイルディレクトリがちゃんと設定されていること、また StateValue data0 であることを確認して、問題なければ特にすることはありません。
  4. もし同じSIDのキーが2つあった場合には以下のようにします。
    1. SID に ".bak" がついていた場合には、リネームして末尾の ".bak" を削除します。
    2. ProfileImagePath を開いて、ユーザプロファイルディレクトリが正しいことを確認し、また StateValue data0 であることを確認して、問題なければ終了します。
  5. もし ".bak" なしとありの同じSIDのキーが合った場合には以下のようにします。
    1. ".bak" がないほうの SID キーを削除します。
    2. ".bak" があるほうの SID キーをリネームして、末尾の ".bak" を削除します。
    3. あとは上と同じです。

だそうです。
うちの場合には、上記とは異なり、"cyg_server" という別のユーザアカウントがあることを見つけたのでそれも一緒に削除しました。

LaTeXでのダッシュ。

\(\rm\LaTeX\)でのダッシュで、vimtexではチェックに使っているchktexが"Wrong length of dash may have been used. (8)"という警告を出してきます。

w0rp/aleでこれを抑制するには、

let g:ale_tex_chktex_options = "-n 8"

などとすれば8のチェックを無視してくれるようになるのですが、そもそもこのダッシュの使い方をきちんと理解していないのでまとめです。

ダッシュ類の使い方は言語によって異なるので、ここではあくまで英語を取り上げます。

When should I use an em-dash, an en-dash, and a hyphen?に詳細が説明されていますが、

  • "-" : ハイフン。2つ以上の単語の間をつなぐのに使う。
  • "--" : en-dash。範囲を示すのに使う。"3--7"など。
  • "---" : em-dash。文中のカッコと同様の使い方---たとえばこんな風に---をする。

だそうです。

vimtexがfiletypeで起動しない。

Neovim-Qtとlervag/vimtexで\(\rm\LaTeX\)文書をドラッグ&ドロップするとちゃんと動いていたのに、起動しなくなってしまいました。

検索してみたところ、vimtexのhelpになにか書いてありました。

COMMENT ON INTERNAL TEX PLUGIN                        *vimtex-comment-internal*

Vim ships with some LaTeX support out of the box. In particular, it provides
good syntax highlighting (|ft-tex-syntax|), indentation (see the source file
$VIMRUNTIME/indent/tex.vim for the documentation), and some sensible options
(|ft-tex-plugin|).

When |vimtex| is active, it will be used as the main |ftplugin|. It will
define the same set of sensible settings as the internal plugin. However,
|vimtex| does not provide its own syntax, instead it adds a few minor
improvements to |ft-tex-syntax|, see |vimtex-syntax|. |vimtex| also provides its
own indentation plugin, see |vimtex-indent|.

Vim will generally autodetect filetypes automatically. In most cases this
works as expected, however, in some cases it will detect a file with the `tex`
suffix as a |plaintex|. To prevent this, one may set the option
|g:tex_flavor| in ones `vimrc` file, that is: >

  let g:tex_flavor = 'latex'

Vimはすぐに使えるようにいくつかのLaTeXサポート機能が同梱されています。とりわけ、すぐれたシンタックスハイライト(ft-tex-syntax)、インデンテーション、気の利いたオプション(ft-tex-plugin)を提供しています。

vimtexがアクティブならば、メインのファイルタイププラグインとして使用されます。これは内部プラグインの気の利いた設定と同等のことを定義します。けれども、vimtexは独自のシンタックスを提供する代わりに、ft-tex-syntaxにいくつかの些細な改良を加えています。vimtexはまた独自のインデンテーションを提供しています(vimtex-indent)。

Vimは一般的にファイルタイプを自動的に検出します。ほとんどの場合これは期待通りに動作しますが、いくつかの場合には"tex"拡張子のファイルタイプをplaintexと検出してしまいます。これを防ぐには、g:tex_flavorオプションを設定すると良いかもしれません。

とのことです。
ところがこれをやってみても、どうにもうまく検出してくれません。もしかしたらvimtexのオプション設定でどこかミスがあって、それがvimtexモードになるのを阻害しているのかもしれませんが…。

vimtexの便利な機能が使えないのは結構困るのですが、とりあえず保存するたびにコンパイルしてくれるようにしたいので、以下のようにしました。

latexmk -pvc -view=none %1
というバッチファイルを作成し、ルートtexファイル(\includeなどでいくつかのファイルを読み込んでいる場合の一番親ファイル)を食わせると、子ファイルに変更があったときでも自動でコンパイルを始めてくれます。

それからこんな記事を見つけました。
Writing LaTeX in Neovim with Vimtex
あとで読んでみようと思います。

Neovim+vimtexでのテキストアライン。

テキストアライン、あるいは桁揃えですが、Vim/Noevimでもいくつかのプラグインがあります。Align とか vim-easy-align とか。

ただ、自分で使ってみた感じでは godlygeek/tabular が使いやすかったので、これの使い方をメモです。

tabularでは、範囲指定したうえでどの文字を桁揃えに使用するかを正規表現で指定します。

たとえば現在行から5行分を、'&'文字で桁揃えしたい場合には、
:.,+5Tab /&
とします。この場合、各カラムは左寄せです。

','で区切られた各カラムを中央寄せにし、前後に最低1文字以上のスペースを入れる場合には、
:Tab /,/c1
とします。

','で区切られた各カラムを右寄せにし、','との間に1文字の空白を入れる場合には、
:Tab /,/r1
とします。

桁揃えの指定は正規表現なので、
:Tab /[,|&]
などとすれば ',''|''&'の3つの文字を桁区切りに指定できます。

vimtexのfoldカスタマイズ。

lervag/vimtexで、foldingを有効にしてみたら文書の見通しがよくなったので、自分的カスタマイズとその他のメモなど。

\section や \subsection、あるいは itemize や description、lstlisting などの部分を折りたたむことができれば、文書の構成がより把握しやすくなるし、編集もしやすくなってくるので、なにを折りたたむかの設定やキーマップなどをざっくりとまとめます。

まず vimtex の構成として、折りたたみ動作は fold.vim がやっているようです。その中のvimtex#fold#init_buffer() を見ると、ある程度の初期化がされているのがわかります。つらつら見ていくとどういう構造で折りたたもうとしているのかがおおよそわかります。

折りたたみはデフォルトでは無効になっているので、これを有効にしてやればまずは折りたたみができるようになります。

let g:vimtex_fold_enabled = 1

g:vimtex_fold_manual = 1にすると、デフォルトで折りたたみ処理を行わない状態でファイルを開きます。大きいファイルをよく扱うような場合に、ファイル読み込みが遅くなるのを回避します。このとき、キーマップ zx と zX がリマップされます。

折りたたみの操作は以下の通り。詳細については :h fold を参照。
  • zo カーソルの下の折りたたみを1段階開く。カウントが与えられればカウント数分開く。
  • zO カーソルの下の折りたたみをすべて開く。
  • zc カーソルの下の折りたたみを1段階閉じる。カウントが与えられればカウント数分閉じる。
  • zC カーソルの下の折りたたみをすべて閉じる。
  • za カーソルの下の折りたたみが閉じていれば開く。開いていれば閉じて、foldenableをセットする。
  • zA カーソルの下の折りたたみが閉じていれば再帰的に開く。開いていれば再帰的に閉じて、foldenableをセットする。
  • zm 折りたたみをより閉じる。foldenableをセットする。
  • zM すべての折りたたみを閉じる。foldenableをセットする。
  • zr 折りたたみをより開く。
  • zR すべての折りたたみを開く。
なにを折りたたむかは g:vimtex_fold_types で指定します。基本的には、g:vimtex_fold_types_defaultsで設定されている既定値を必要に応じて上書きします。定義は辞書の形式で行い、{キー:値}で定義していきます。

vimtex のヘルプファイルからキー(と値)の解説から一部引用して加筆翻訳しておきます。
  • 'preamble'
    プリアンブルを折りたたむかどうか。
    • { 'enabled' : 0/1 } -- 0:折りたたまない 1:折りたたむ
  • 'comments'
    複数行のコメントを折りたたむかどうか。デフォルトは無効。
    • { 'enabled' : 0/1 } -- 0:折りたたまない 1:折りたたむ
  • 'envs'
    環境を折りたたむかどうか。'document'環境は折り畳まれない。
    • { 'blacklist' : [] } -- 折りたたまない環境のリスト。正規表現が使える。
    • { 'whitelist' : [] } -- 折りたたむ環境のリスト。正規表現が使える。
  • 'envs_options'
    環境のオプション(複数行などの長いもの)を折りたたむかどうか。
    • { 'enabled' : 0/1 } -- 0:折りたたまない 1:折りたたむ
  • 'sections'
    section とパートを折りたたむかどうか。以下のキーがある。
    • { 'parse_levels' : 0/1} -- vimtex-toc で表示されるような感じでレベルを解析して折りたたむかどうか。デフォルトは 0。有効にするとリソースを食うし遅くなる。
    • { 'sections' : [] } -- 折りたたみする section のリスト。リストには正規表現が使える。デフォルトは [ 'part', 'chapter', 'section', 'subsection', 'subsubsection' ]
    • { 'parts' : [] } -- 折りたたみをするパートのリスト。リストには正規表現が使える。デフォルトは [ 'appendix', 'frontmatter', 'mainmatter', 'backmatter' ]
あとの詳細はヘルプファイル参照。 とりあえず以下の設定を使います。
let g:vimtex_fold_types = {
  \  'envs' : {
  \   'whitelist' : ['table', 'lstlisting'],
  \  },
  \  'comments' : {'enabled' : 1},
  \}

let g:vimtex_fold_enabled = 1

SWDなら3線でいいとはいうものの。

 安価で優秀なデバッグプローブはないかしら、と探したら、 Raspberry Pi Debug Probe というのがあったんですが、これは3線がにゅるんと出てるだけです。 もちろんSWDなら3線を繋げばいいのではありますが、汎用的に考えるなら5x2のリボンケーブルコネクタが欲し...