留学・音ゲー・研究備忘録

heine98の音ゲー・研究・留学の記録。PCの知識はちょっとシェルから操作できます、くらいの人間。

GithubのREADME.mdは数式出せない

マークダウンでREADMEを書いてそのままpushしてもGithubのほうがLatex数式を変換できないので、そのままでは数式読めない。 なんか画像に変換して埋め込むとかすればいいらしいが、今のREADMEは自分用に計算手順を書いたものなので数式てんこ盛り、これを画像にいちいち変換したくない。

(頭の悪い)対処法

README.mdにpdfリンクを貼る。pdfはマークダウンファイルをpdfに変換したもの

手順

  1. VS codeMarkdown Preview Enhancedを利用(必要なら拡張機能からインストール)
  2. Latex文法で数式を書く。
  3. Previewインスコすると、エディタの編集画面右上に虫眼鏡付きのアイコンが2つ表示される。白と青。白を押して白画面のPreviewを表示、右クリックでPDF変換

ただし、使ってるLatexのなんかがKatexとかいうのらしく、align -> alignedとかになるっぽい。つまり

$...$

でインライン数式、

$$...$$

で数式ブロック、

\begin{aligned}
1+1=2
\end{aligned}

でalign環境の数式(表示位置合わせなどできる

Julia: 行列の転置はArrayではない

最初からなのかどっかのバージョンからなのか知らないが、Juliaで行列での転置操作を行うとArrayがArrayでなくなる。どういうことかというと、

A = zeros(2,2)
B = A'
C = transpose(A)

とすると、AはArray{Float64,2}となるが、BはAdjoint{Float64,Array{Float64,2}}に、CはTranspose{Float64,Array{Float64,2}}になる。 もしtype stableな関数を書いているならば、これで関数の引数が違うのでエラーが出てしまう。

どうするのが正解なのかわからないが、とりあえず

A = zeros(2,2)
D = copy(A')

とすれば、DはArray{Float64,2}になるので、現状これを使うしかなさそう。なんか明らかに間抜けなんだが。。。

論文引用環境設定

環境&ゴール

jabref経由のbibtexで引用論文を管理。Author (2019)の形で文中で引用したい。

問題点

そのままだと[1]としか出ない。ダサすぎだし、Econだとこんなの見ない。

解決策

te.bst+natbibパッケージ。パッケージはMiKTeXコンソールから普通に追加。

te.bstはコンソールから入れられないので、以下のリンク先の文中からダウンロード。

このサイト、一見ちゃんと書いてあるように見えるが、置くべき場所の説明が不親切。自分の場合、

/usr/local/texlive/2018/texmf-dist/bibtex/bst/

であった。ここに置いたあと、いつもの

chmod 755 /usr/local/texlive/2018/texmf-dist/bibtex/bst/te.bst
sudo mktexlsr

を実行。1行目は必要なのかわからん。

プリアンブル

\documentclass[11pt,letter]{article}

...省略...

\usepackage[authoryear]{natbib}
\usepackage[unicode=true,
 bookmarks=false,
 breaklinks=false,pdfborder={0 0 1},backref=section,colorlinks=false]
 {hyperref}
\hypersetup{
 colorlinks=true,citecolor=blue}

\begin{document}

...本文 \cite{(bibtexのキー)}...

\bibliography{(bibtexの名前)} 
\bibliographystyle{te}
\end{document}

が指導教官のファイルのそれだったので使おう。こうすればAuthor (2019)のように本文で参照される。\bibliography{(bibtexの名前)} \bibliographystyle{te}の置く場所は\end{document}の前。

Divvy + ScreenJump or BetterTouchTool

やりたいこと

  •  デュアルモニタ環境でアプリケーションのウィンドウのモニタ間の移動や画面のサイズ調整をショートカットで行いたい
  • 縦置きのディスプレイで下2/3にエディタ、上1/3にターミナルやpdfビューワーを置きたい

必要なもの

  1. BetterTouchTool(BTT)またはScreenJump
  2. Divvy

なぜ2つ必要なのか

  • BetterTouchToolにもウィンドウサイズの変更機能があるが、画面下半分など規定のサイズ(1/2)しかできない
  • Divvyにはウィンドウのモニタ間移動の機能がない
  • ScreenJumpはマウスのカーソル(ポインタ?)を移動させるだけ

どうするのか

BTT+Divvyの場合

BTTには規定のアクションとしてモニタ間のウィンドウ移動があるので、それを活用。

  1. BTTでウインドウのモニタ間移動のショートカットを設定(PreferenceのKeyboardタブで右下にある+Add〜を押し、Predifined ActionからWindow Resize & Move→Move Window To Next Monitorを選択(最初の2つはMacの複数ディスプレイ間の移動なので、物理的に存在するモニタ間の移動ではない)
  2. Divvyでショートカットキー作成(下2/3や上1/3など)、その際にお好みのウインドウサイズも設定する

使い方としてはウインドウをモニタ間で移動させてサイズを調整する。

ScreenJump + Divvyの場合

ScreenJumpにもDivvyにもウィンドウを移動させる機能は備わっていない。

しかし、Divvyはショートカットを押したときのアクションがカーソルのあるモニタで行われることので、これを逆手に取って、ポインタを隣のモニタに飛ばしてからウィンドウをポインタのある移動させたいモニタの画面中心に表示させるというステップをとる。

  1. Divvyは下2/3や上1/3などに加えて、ウィンドウ移動をさせたときに表示させたいサイズや位置用のショートカットも設定する。(僕は画面中心にしました)
  2. ScreenJumpは好みに応じてキー割り当て変更

使い方は、まずポインタをモニタ間で移動させてから、Divvyのショートカットでウインドウを真ん中に移動させるショートカットで結果的にウィンドウをモニタ間で移動させる。モニタ内でのサイズ変更はBTTの場合と同じ。

良い点

  • いちいちタッチパッドで移動させなくて良い
  • 常に同じサイズでウィンドウが表示できる
  • 自分でショートカットキーを割り当てられるので都合が良い

悪い点

  • すべてに有料(BTT7ドルで2年間(ただしアップデートできなくなるだけ)、20ドルで一生、Divvy13ドル、ScreenJump2ドル弱)
  • 両方常駐させる必要がある
  • BTT+Divvyの場合、Divvyのウィンドウサイズ変更がポインタのあるウィンドウにで実行される(Aのディスプレイでサイズ変更したくても、ポインタがBのディスプレイにあればそっちに強制的に移される)ことに気をつけないと、ウィンドウを移動させてもサイズ変更のときに元のモニタに戻ってしまうことになる

 

どのアプリもあと一歩、かゆいとこに手が届かない感じ。

 

てかコード書いて回す場合にはこれでいいけど、tex使うときは左右にエディタとpdfビューワーを置きたいから横置きのモニタもほしい。

 

正直IDEでエディタ内にターミナルを表示させるメリットがわからない(計算の途中経過を表示させているので横に長くなる)ので、ターミナルはエディタの外で大きな画面で眺めたい。

Juliaでの行列要素同士の計算

Juliaにおいてよく知られているのが、行列要素ごとの計算において、オペレータの前にドット(.)を逐一つけるか、それとも行頭に@. をつけるかの二通りがある。

どこ家で見たけど後者のほうがメモリAllocationが少なく済むのだが、そのかわり左辺のサイズを先に定義しなければならない。逆に前者はメモリ問題があるが、左辺のサイズを定義しなくてもコードが回る。

sw20jart.styで躓いたら

それはscientific wordのスタイルファイルなのでどうしようもない。まずシンプルにコメントアウト

おそらく、問題なのはjeepのほうなので、そっちを入れる。ただし、MikTexから入れられないパッケージなので、ターミナルから入れる。

Mac版:新しいLateXパッケージを導入したい

styだろうがclsだろうがなんでも。まず、方法として

  1. CTANからダウンロードして、適切な場所へフォルダを移動する(ターミナルの知識必要)
  2. MiKTeXをつかう
  3. TeXLiveユーティリティから追加(なんかリポジトリのバージョンと違うと面倒臭そうだったし、ていうかこれ書いてたらその方法を見つけただけなので今回省く。簡単に言うと、TexLiveユーティリティを開いてパッケージ名検索して追加)

の2つの方法がある。はっきり言ってMiKTeXのほうが楽なので、そちらから。Windows版は前に書いたので過去記事参照。

MikTexでの導入

まず当然ながらMikTeXをインストールしてほしい。MiKTeXのインストール方法については特になにも必要なことはなかったので、自分のOSに適したインストール用のファイルでインストールしよう。ただ、おそらくprivate useか否かで(PCの複数アカウントでの)インストール範囲や権限が変わってくるはず。

  1. MikTeX Consoleを開く。きっとWelcome!みたいな画面が表示されるはず。
  2. 左のタブからPackagesを選択
  3. 必要なパッケージ名を検索して、+ボタンを押せば勝手にインストールされている。すぐに使用可能なはず。

CTANからDLして手動で設定する場合

  1. CTANから必要なパッケージをダウンロードし、解凍。解凍したフォルダをわかりやすい場所に移動しておく(デスクトップとか)
  2. 自分のTeXLiveのバージョン(2017とか2018とか)を確認する(場合によっては先に3を参照してディレクトリ移動してバージョンをチェックしておく)
  3. ターミナルを開いて、1で保存した場所に移動し、そのフォルダをTeXが認識できるようにするため(sudo mv "パッケージフォルダ名" /usr/local/texlive/2017/texmf-dist/tex/latex)を実行。2017は自分のTeXのバージョンにより適宜変更。
  4. (chmod 755 /usr/local/texlive/2017/texmf-dist/tex/latex/"パッケージフォルダ名")を実行
  5. (sudo mktexlsr)を実行

 

こういうとこでコマンドライン?を書くときにどうするのが適切かわからない。。。

まあ僕みたいなターミナルちょっと使えるけど慣れてない人間はおとなしくMikTexかTexLive使えってことですわ。