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

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

ソシャゲ雑記

米国ではすでに外出禁止なので日々を悶々と過ごしつつ,ソシャゲしていた.研究はしていない.

プリコネは3月クラバトで初めて1億超えた,と思ってたら1.3億くらい行けたので嬉しかった.しかし今月のクラバトにヒヨリとレイの星6はできるかかなり怪しい.マコトとクリスをランク16にできた(初めてのランク16

FGO5章を配信2日目にして終わらせた.難しかったなー.ネタバレしたくないから細かいこと言わないけど,概ね良かったです好きです.

macのxelatex日本語環境(文章とBeamer)

てっきり日本語のtex -> pdfにはplatexないしuplatexしか選択肢がないものと思ってたんですけど、そうでもないしこの時間が比較的あるときにやるかーと思って沼にハマったので。

ちなみに、Beamerの問題からBxjscleとかを避ける観点で書かれています。

環境

Latex自体はTexLive(MacTex)2019。

作業環境は、vsCodeにLatexWorkshopを導入。texファイルを保存すると自動的にpdf生成される。ただし、その時使われるlatexmkは時前ではなく

CTAN: Package latexmk

によるもの。

この保存時に勝手にビルドされるってのが厄介で、latexmkがxelatexを使っているので、もしもplatex等を使いたかったら、毎回LatexWorkshopのボタンを押したりしてビルドする羽目になり、(もしくはmakefileを作る等だけれど)たいへん面倒くさかった。

最小限の変更

pLatexでのBeamer

ちなみにpLatexが不便なく使えるなら、Beamerは

\documentclass[dvipdfmx,notes,11pt,aspectratio = 169]{beamer}
\usepackage{bxdpx-beamer}% dvipdfmxなので必要
\usepackage{pxjahyper}% しおりの日本語対応
\renewcommand{\kanjifamilydefault}{\gtdefault}

でいける。別にnotesとかaspect ratioは好みでいいのですが。 ただ、pLatexでのBeamerのもう一つに弱点は、よく使うMetropolis

GitHub - matze/mtheme: A modern LaTeX Beamer theme

が使えないんですよ。

xelatexで日本語

xelatexの場合は、zxjatypeとかzxjafontを使えばなんとかなるんですね。正確には、zxjatypeは文章の一部に和文が含まれる場合には日本語だけ処理を別にしてくれて、zxjafontは日本語のフォントと簡単に変えてくれるパッケージです。なので、別にフォントを英文と和文で分ける必要がないなら、次のコードの2 行目は不要。 (2行目無しでビルドしたら和文でなくなったのでそういうわけではないっぽい

\documentclass[unicode,a4paper,11pt]{article}
\usepackage{zxjatype}%これを含む場合日本語だけ次の行で指定したfontになる
\usepackage[sourcehan]{zxjafont}% Source Han Serif/Sans (JPじゃないやつだそうです)

もちろんこれはそのままbeamerに転用可。

ただし、問題はzxjafontが対応できるフォントが限られている。詳しくは

CTAN: Package ZXjafont

で使えるフォント参考にしてほしい

ちなみにIPAとかMSとかを使おうとしたら全然ビルドが終わらず、

I can't find file `OT'.

的なのがログに出てたら、それはフォントがPCにインスコされてないってことなので、インスコするotcファイル等をインスコする必要がある。macなら普通にPCにインスコすればTeXでも使えるらしい。

んで、問題は、zxjafontでは任意のフォントを使えないので、どうするかと。 例えばSource Han Monoなんかはオプション([sourcehan]の部分)に対応してない。なので

任意のフォントかつフォントサイズ

\documentclass[a4paper,11pt]{article}
\usepackage{zxjatype}

% zxjafontの既定のフォントを使う場合
%\usepackage[sourcehan,scale=0.9]{zxjafont} % Source Han Serif/Sans (JPじゃない奴)
%\usepackage[yu-osx,scale=0.9]{zxjafont} 
% 他の文字を下で指定する場合(なくても可?
\usepackage{zxjafont} 

% zxjafontの既定外のフォントを使う場合
% 基本的に現行Catalina10.15.3では/System/Library/Fontsないし/System/Library/AssetsV2/com_apple_MobileAsset_Font6下にデフォルトで入っているフォントのotfファイルがある
%\setjamainfont[Scale=0.9]{SourceHanMono-Normal}  % fontbookってアプリで確認できる、それか ./Library/Fonts/
\setjamainfont[Scale=0.9]{ToppanBunkyuGothicPr6N-Regular}  % 凸版文久ゴシックレギュラー
%\setjamainfont[Scale=0.9]{YuGothic-Medium} % 游ゴシック体 ミディアム
%\setjamainfont[Scale=0.9]{YuKyo-Bold}  % 游教科書体 ミディアム
%\setjamainfont[Scale=0.9]{TsukuARdGothic-Bold}  % 筑紫A丸ゴシック ボールド

%以下2行は英文と和文フォント合わせる用(多分fontspecはもう呼び出されてる気がするけど
%\usepackage{fontspec} 
%\setmainfont[Scale=1.0]{SourceHanSans-Normal}% これ英語読みづらいかも
%\setmainfont[Scale=1.0,ItalicFont=SourceHanMono-LightIt]{TsukuARdGothic-Regular}
%\setsansfont[Scale=1.0,ItalicFont=SourceHanMono-MediumIt]{TsukuARdGothic-Regular}
%s\setmonofont[Scale=1.0]{TsukuARdGothic-Regular}

んーでもこれやると、欧文と和文のフォントをすり合わせないと気持ち悪いです。それは単にzxjafontがデフォで対応してる場合でもそうなんだけど。 まあ、日本語用文章でそんなに英語長々と書くこともないし、適当にそれっぽくなればいいか。。。

結論

フォントのすり合わせまで来ると、私にはかけているデザイン力というか美意識が必要な気がするんで、誰かいい感じの和文欧文フォント組み合わせとか教えてほしいですね。

JuliaでPyPlot使う

Juliaで図とかを描くとき、どうもPlotsの方が優勢なのかな。 ただ、俺は最初にPyPlotを使ってしまい、そこからPlotsに乗り換えるコストがちょっと。。。とはいえ、別にPyPlotも完全に理解していたわけではないのだけれど、今回かなり理解が進んだのでサンプルコード的に残しておこうと。 Pythonで使うなら以下の記事のほうがくわしいけど、

qiita.com

JuliaでPyPlot使う場合は結局細かいところをJulia文法に即して変えないといけないので、そういうのが余計検索を面倒くさくさせている気がするんですが。まあとにかく。

なお、PyPlotについては、Pythonでよく使われるmatplotlibをJuliaでも使えるようにしたのがPyPlotで、実態は中でPythonですべて動かしているという理解でしかないです。なので、Juliaでオブジェクト指向的な書き方するのもどうなのかとは思うんだけど、まあ知らん、俺は描ければいい。

ということで、独立した1つの図、左右でY軸の値やスケールが違う場合、そして複数の図を描く場合の3パターンのある程度の細かいセッティング(軸のフォントや名前、凡例の入れ方等)を含んだサンプルコードを上げておく。

1つのFigure作成

一つの図に複数の線を入れる場合で、(PPython的オブジェクト指向的な面から)推奨されている方法

# 準備
width = 7.0
hight = 5.0
titlefsize = 15.0
axisfsize = 12.0
labelfsize = 12.0
linewidth1 = 3.0

x=0.01:0.01:10.0

function u(σ::Float64,c::Float64)
    if σ == 1.0
        util = log(c)
    else
        util = c^(1.0-σ)/(1.0-σ)
    end
    return util
end

# !!! ここから図関連
# CRRA効用関数でsigma = 1.0 or 1.1を
# 大枠を作る。だいたいこれで図のウィンドウ作成、表示される。
fig = figure("TITLE",figsize=(width,hight)) #このTitleはウィンドウの名前になる、文字列はJuliaでは" " 

# その周りの軸とか諸々を追加(1 by 1の1つ目の意味)
ax = fig.add_subplot(1,1,1)

# 最初の線(x=0.01:0.01:10.0,y1=log(x) (sigma=1.0))
ax.plot(x,u.(1.0,x),linewidth=linewidth1,label=L"\sigma=1.0") # L""で文字列がlatex処理される

# 2つめの線(x=0.01:0.01:1.0,y=u(x) with sigma = 1.1)
ax.plot(x,u.(1.1,x),linewidth=linewidth1,label=L"\sigma=1.1")

# 軸の調整、あんまり意味ないのかな。。。
axis("tight")

# 図の上部に表示されるタイトル
PyPlot.title("Utility Function",fontsize=titlefsize)

# x軸の左右を規定
xlim([x[1],x[end]])

# y軸の文字の体裁
setp(ax.get_yticklabels(),fontsize=axisfsize) 
ax.set_ylabel("util",fontsize=labelfsize)

# x軸の文字の体裁
setp(ax.get_xticklabels(),fontsize=axisfsize) 
ax.set_xlabel("cons",fontsize=labelfsize)

#凡例
ax.legend(loc="best",fancybox="true",fontsize=axisfsize,,title="CRRA") 

#保存
savefig("utilityfunction.png")# eps、pdfも可

これが結果

f:id:heine98:20200301014535p:plain
図1

左右のY軸の目盛りを変える

fig = figure("TITLE",figsize=(width,hight)) 
ax1 = fig.add_subplot(1,1,1)

# 最初の線(x=0.01:0.01:10.0,y1=log(x) (sigma=1.0))
ax1.plot(x,u.(1.0,x),linewidth=linewidth1,label=L"\sigma=1.0",color="blue") # L""で文字列がlatex処理される

# 2つめの線(x=0.01:0.01:1.0,y=u(x) with sigma = 1.1)
ax2 = ax1.twinx() # これで右にもY軸作成
ax2.plot(x,u.(1.1,x),linewidth=linewidth1,label=L"\sigma=1.1",color="red")


axis("tight")
PyPlot.title("Utility Function",fontsize=titlefsize)
xlim([x[1],x[end]])
setp(ax1.get_yticklabels(),fontsize=axisfsize) 
ax1.set_ylabel("util",fontsize=labelfsize,color="blue")
ax2.set_ylabel("util",fontsize=labelfsize,color="red")
setp(ax1.get_xticklabels(),fontsize=axisfsize) 
ax1.set_xlabel("cons",fontsize=labelfsize)

#凡例を1つにまとめる
handler1, label1 = ax1.get_legend_handles_labels()
handler2, label2 = ax2.get_legend_handles_labels()
ax1.legend(append!(handler1,handler2),append!(label1,label2), loc="best",title="CRRA")

savefig("utilityfunction_2.png")

f:id:heine98:20200301015528p:plain
図2

サブプロット

fig = plt.figure("TITLE",figsize=(7,5))
ax1 = fig.add_subplot(2,1,1) # 2 by1 の1つ目
ax1.set(title=L"\sigma=1.0 or 1.1")
ax1.plot(x,u.(1.0,x),linewidth=linewidth1,label=L"\sigma=1.0") 
ax1.plot(x,u.(1.1,x),linewidth=linewidth1,label=L"\sigma=1.1") 
setp(ax1.get_xticklabels(),fontsize=axisfsize,visible=false) #visible = false で1つ目のx軸消す
setp(ax1.get_yticklabels(),fontsize=axisfsize) 
ax1.set_ylabel("util",fontsize=labelfsize)
ax1.legend(loc="best",fancybox="true",fontsize=axisfsize) 
ax1.axis("tight")
ax1.set_xlim([x[1],x[end]])




ax2 = fig.add_subplot(2,1,2) # 2 by1 の2つ目
ax2.set(title=L"\sigma=1.2")
ax2.plot(x,u.(1.2,x),linewidth=linewidth1,label=L"\sigma=1.2",color="green") 
setp(ax2.get_xticklabels(),fontsize=axisfsize)
ax2.set_xlabel("cons",fontsize=labelfsize)
setp(ax2.get_yticklabels(),fontsize=axisfsize) 
ax2.set_ylabel("util",fontsize=labelfsize)

ax2.legend(loc="best",fancybox="true",fontsize=axisfsize) 
ax2.axis("tight")
ax2.set_xlim([x[1],x[end]])

# 何らかの理由で凡例をひとまとめにしたいとき用
handler1, label1 = ax1.get_legend_handles_labels()
handler2, label2 = ax2.get_legend_handles_labels()
ax2.legend(append!(handler1,handler2),append!(label1,label2), loc="best")

savefig("utilityfunction_3.png")

f:id:heine98:20200301020718p:plain
図3

飽きたのでこんくらいで。

latex+skimでskimが固まる(Mac

んですよ。そもそも、確かにホームディレクトリにlatexmkrcファイルおいてVSCodeの設定もpreviewオフにしてもSkimが起動して、何回か繰り返すたびにクラッシュする。

んで、なんか調べてたらmactexにデフォルトでlatexmkが備わってるらしい。なぜなら

which latexmk
>/Library/Tex/texbin

になるから。

つまりこっちのlatexmkからプレビューをオフにすればよく、1000行目辺りのmac用の設定で

$pdf_previewer = 'open %S';

から

$pdf_previewer = 'NONE';

にすれば、vsCodeからパッケージ利用しても自動でpdfビュワーが立ち上がらなくなるので結果としてskimのクラッシュがなくなる。 まーその代わり手動でVSCode内でタブ開いてpdfを確認するしかなくなるのだが。。。クラッシュして他のpdf開けなくなってSkim終了させなきゃいけなくなるよりはんマシだし、どのみちなにを使ってもsynctexがあんまりうまく行ってないのでpdfとtexの行き来はちゃんとできないので構わんかな。。。

labor disutility&time constraintがあるときの数値計算

  1. discretize time space and grid search (but saving decision rule is computed by non-linear solver with Euler equation. (Conesa et al. (2009))

  2. Define complementary problem and use Fischer-Burmeister function (see Nishiyama and Smetters (2014) in Handbook of computational economics, or Nishiyama (2019) Appendix)

  3. Use utility function which delivers analytical expression for labor leisure choice

以下の記事に1,2の方法についてpdfを置きました。

heine98.hatenablog.com

FGO2部&王都終末決戦

このエントリはネタバレ無しです。

FGO、やっとという感じですが5章が追加されました。そして面白かった!続きがもちろん気になるのですが、待ってた甲斐があったなという感じ。

よく面白いストーリーとして1部5、6章あたりが挙がるし、実際自分自身も好きではあるんですが、なんとなく周りに流されてた感がないわけでもなかったんですよね。でもこの2部5章ははっきり言って一番好きです。

多分他の人からしたら色々不満がある部分があるとおもうんですが、出てきた鯖の活躍や葛藤、そして程よいギャグ感。何より数キャラ好きになった鯖がいた事。メインのクリプターとの戦いという部分ではなく、そういった個々のサーヴァントとの掛け合い、描き方が好きでした。

難易度的にも、今回のバトルはそこまで難易度が高くなかったので個人的には気楽に進められました。(普段だったら石1、2個割る羽目になる)

もう全然待った不満なんかないので、これからの続きにも期待です。

さて、プリコネですが、残念ながら自力ストーリー開放はできなかったので、イベント始まってから開放機能で一気読みしました。まあ13章途中まで読んでたので、わりかし予想の範囲内で別にそこまで後悔はなかったけど。

それよりも育成が全然できてないからレイド戦がワンパン無理ゲーなのが痛い。まあ別にそこまで気合い入れてやるほどのものでもないなって感じなのですが。ほどほどに討伐しつつ、終わったら改めて育成に注力しようと思います。

その頃にはPLv135くらいになっててスタミナパック買えない気がするんですけどね。。。

あとは年末ということで、無料10連とクリヤが来ましたね。まだクリヤ引けてないけど、これは現状なかなか即戦力にはなれなさそうだし、恒常なのでそんなに焦ってないです。なぜか無印イリヤが2枚抜きされたこともありましたが。。。

そろそろ日本帰るので、プリコネのCM見られるかもしれませんが、あれお茶の間で流れたときどんな顔すればいいのかわからないな。。。