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

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

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がデフォで対応してる場合でもそうなんだけど。 まあ、日本語用文章でそんなに英語長々と書くこともないし、適当にそれっぽくなればいいか。。。

結論

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