日本語のlatex 幸せになる - github pages日本語のlatexで 幸せになる...

Post on 09-Aug-2020

14 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

日本語のLATEXで

幸せになる…かもしれない

方法

山下 弘展

2018年 11月 10日

TEXConf 2018

「日本語のLATEX」?

https://twitter.com/doraTeX/status/994941507730784257

pLATEX・upLATEXユーザに贈る最新ベストプラクティス集

山下弘展

2018年11月10日TEXConf 2018

Section 1

日本語の組版

1. 日本語の組版

変なしがらみに悩まされる前に…I モダンな jlreqクラスを使おう

I beamerなどを使う場合➡minijsあるいはOTFを併用(ちょっと変な詰まりから解放されます)

1. 日本語の組版

変なしがらみに悩まされる前に…I モダンな jlreqクラスを使おうI beamerなどを使う場合➡minijsあるいはOTFを併用(ちょっと変な詰まりから解放されます)

Section 2

日本語フォント

2. 日本語フォント

好きなフォントを使いたい…I まずはpxchfonをチェック(比較的メジャー?なフォントなら簡単)

使えるフォントを増やしたい…I \usepackage[deluxe]{otf}(フォントさえ揃えれば最大7書体化)

2. 日本語フォント

好きなフォントを使いたい…I まずはpxchfonをチェック(比較的メジャー?なフォントなら簡単)

使えるフォントを増やしたい…I \usepackage[deluxe]{otf}(フォントさえ揃えれば最大7書体化)

Section 3

有力なパッケージの利用

これが意外と大変

…でした(ごく最近までは)

これが意外と大変…でした(ごく最近までは)

症例1(従来の対処法)

とあるパッケージを読み込んだらI OTFパッケージで文字化けしましたI ゴシック体になりませんI \Largeなどが効かなくなりました

もしこんな警告が出ていたらLaTeX Warning: Command \selectfont has changed.

Check if current package is valid.

…それはeveryselが原因で,pxeveryselを使えば解決します。

症例1(従来の対処法)

とあるパッケージを読み込んだらI OTFパッケージで文字化けしましたI ゴシック体になりませんI \Largeなどが効かなくなりました

もしこんな警告が出ていたらLaTeX Warning: Command \selectfont has changed.

Check if current package is valid.

…それはeveryselが原因で,pxeveryselを使えば解決します。

症例2(従来の対処法)

plextパッケージを読み込んだら表(tabular環境)で謎のエラー! Missing # inserted in alignment preamble.

が出ました

多分それはarrayパッケージより後にplextパッケージを読み込んだからでしょう。plextは早めに \usepackageしましょう。或いは,plextarrayを代わりに使いましょう。

症例2(従来の対処法)

plextパッケージを読み込んだら表(tabular環境)で謎のエラー! Missing # inserted in alignment preamble.

が出ました

多分それはarrayパッケージより後にplextパッケージを読み込んだからでしょう。plextは早めに \usepackageしましょう。或いは,plextarrayを代わりに使いましょう。

症例3(従来の対処法)

plextパッケージと破線(arydshlnパッケージ)が同時に使えません! Undefined control sequence.\adl@@cr ...tempdima \xdef \adl@rowsL {\adl@rowsL

(\adl@colsL...

plextarydshlnを使いましょう。

症例3(従来の対処法)

plextパッケージと破線(arydshlnパッケージ)が同時に使えません! Undefined control sequence.\adl@@cr ...tempdima \xdef \adl@rowsL {\adl@rowsL

(\adl@colsL...

plextarydshlnを使いましょう。

症例4(従来の対処法)

縦書きでTikZを使おうとしたら! Incompatible direction list can't be unboxed.

が出ました

それはeveryshiパッケージが縦組非対応だからです。pxeveryshiを使いましょう。

症例4(従来の対処法)

縦書きでTikZを使おうとしたら! Incompatible direction list can't be unboxed.

が出ました

それはeveryshiパッケージが縦組非対応だからです。pxeveryshiを使いましょう。

症例5(従来の対処法)

縦書きでatbegshiを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

それはatbegshiパッケージが縦組非対応だからです。pxatbegshiを使いましょう。

症例5(従来の対処法)

縦書きでatbegshiを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

それはatbegshiパッケージが縦組非対応だからです。pxatbegshiを使いましょう。

症例6(従来の対処法)

縦書きで ftnrightを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

それは ftnrightパッケージが縦組非対応だからです。pxftnrightを使いましょう。ただし,これはftnrightより前に読み込む必要があります。

症例6(従来の対処法)

縦書きで ftnrightを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

それは ftnrightパッケージが縦組非対応だからです。pxftnrightを使いましょう。ただし,これはftnrightより前に読み込む必要があります。

まとめ(従来の対処法)左:pLATEX・upLATEXでうまくいかないパッケージ,右:対策パッチ

I tracefnt→ ptrace/uptraceI fltrace→ pfltraceI array→ plarrayI array + plext→ plextarrayI delarray + plext→ plextdelarrayI colortbl + plext→ plextcolortblI arydshln→ plarydshlnI arydshln + plext→ plextarydshlnI siunitx→ plsiunitxI everysel→ pxeverysel(先に読んだ方が安全)I everyshi→ pxeveryshiI atbegshi→ pxatbegshiI ftnright→ pxftnright(必ず先に読む)I pdfpages→ pxpdfpagesI pgfrcs (TikZ/PGF)→ pxpgfrcsI pgfcore (TikZ/PGF)→ pxpgfmark

左辺が別のパッケージによって \RequirePackageされる場合もあります。同様に注意しましょう。

まとめ(従来の対処法)左:pLATEX・upLATEXでうまくいかないパッケージ,右:対策パッチ

I tracefnt→ ptrace/uptraceI fltrace→ pfltraceI array→ plarrayI array + plext→ plextarrayI delarray + plext→ plextdelarrayI colortbl + plext→ plextcolortblI arydshln→ plarydshlnI arydshln + plext→ plextarydshlnI siunitx→ plsiunitxI everysel→ pxeverysel(先に読んだ方が安全)I everyshi→ pxeveryshiI atbegshi→ pxatbegshiI ftnright→ pxftnright(必ず先に読む)I pdfpages→ pxpdfpagesI pgfrcs (TikZ/PGF)→ pxpgfrcsI pgfcore (TikZ/PGF)→ pxpgfmark

左辺が別のパッケージによって \RequirePackageされる場合もあります。同様に注意しましょう。

こんなの覚えられないよ

そこで

作りました

plautopatchパッケージ

plautopatchとは左:pLATEX・upLATEXでうまくいかないパッケージ,右:対策パッチ

I tracefnt→ ptrace/uptraceI fltrace→ pfltraceI array→ plarrayI array + plext→ plextarrayI delarray + plext→ plextdelarrayI colortbl + plext→ plextcolortblI arydshln→ plarydshlnI arydshln + plext→ plextarydshlnI siunitx→ plsiunitxI everysel→ pxeverysel(先に読んだ方が安全)I everyshi→ pxeveryshiI atbegshi→ pxatbegshiI ftnright→ pxftnright(必ず先に読む)I pdfpages→ pxpdfpagesI pgfrcs (TikZ/PGF)→ pxpgfrcsI pgfcore (TikZ/PGF)→ pxpgfmark

左辺が別のパッケージによって \RequirePackageされる場合もあります。同様に注意しましょう。

plautopatch

が全部面倒を

見ます

plautopatchとは左:pLATEX・upLATEXでうまくいかないパッケージ,右:対策パッチ

I tracefnt→ ptrace/uptraceI fltrace→ pfltraceI array→ plarrayI array + plext→ plextarrayI delarray + plext→ plextdelarrayI colortbl + plext→ plextcolortblI arydshln→ plarydshlnI arydshln + plext→ plextarydshlnI siunitx→ plsiunitxI everysel→ pxeverysel(先に読んだ方が安全)I everyshi→ pxeveryshiI atbegshi→ pxatbegshiI ftnright→ pxftnright(必ず先に読む)I pdfpages→ pxpdfpagesI pgfrcs (TikZ/PGF)→ pxpgfrcsI pgfcore (TikZ/PGF)→ pxpgfmark

左辺が別のパッケージによって \RequirePackageされる場合もあります。同様に注意しましょう。

plautopatch

が全部面倒を

見ます

3. 有力なパッケージの利用

つまり

pLATEX・upLATEXで何かパッケージを使って変になったら➡とりあえずソースの冒頭で

\RequirePackage{plautopatch}してみましょう

めでたしめでたし

おさらい

症例1(新対処法)

とあるパッケージを読み込んだらI OTFパッケージで文字化けしましたI ゴシック体になりませんI \Largeなどが効かなくなりました

plautopatchを使いましょう

症例1(新対処法)

とあるパッケージを読み込んだらI OTFパッケージで文字化けしましたI ゴシック体になりませんI \Largeなどが効かなくなりました

plautopatchを使いましょう

症例2(新対処法)

plextパッケージを読み込んだら表(tabular環境)で謎のエラー! Missing # inserted in alignment preamble.

が出ました

plautopatchを使いましょう

症例2(新対処法)

plextパッケージを読み込んだら表(tabular環境)で謎のエラー! Missing # inserted in alignment preamble.

が出ました

plautopatchを使いましょう

症例3(新対処法)

plextパッケージと破線(arydshlnパッケージ)が同時に使えません! Undefined control sequence.\adl@@cr ...tempdima \xdef \adl@rowsL {\adl@rowsL

(\adl@colsL...

plautopatchを使いましょう

症例3(新対処法)

plextパッケージと破線(arydshlnパッケージ)が同時に使えません! Undefined control sequence.\adl@@cr ...tempdima \xdef \adl@rowsL {\adl@rowsL

(\adl@colsL...

plautopatchを使いましょう

症例4(新対処法)

縦書きでTikZを使おうとしたら! Incompatible direction list can't be unboxed.

が出ました

plautopatchを使いましょう

症例4(新対処法)

縦書きでTikZを使おうとしたら! Incompatible direction list can't be unboxed.

が出ました

plautopatchを使いましょう

症例5(新対処法)

縦書きでatbegshiを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

plautopatchを使いましょう

症例5(新対処法)

縦書きでatbegshiを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

plautopatchを使いましょう

症例6(新対処法)

縦書きで ftnrightを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

plautopatchを使いましょう

症例6(新対処法)

縦書きで ftnrightを使おうとしたらやっぱり! Incompatible direction list can't be unboxed.

が出ました

plautopatchを使いましょう

今日のまとめ

1. 日本語の組版モダンな jlreqクラスを使おうそれ以外ならminijs又はOTF

2. 日本語フォントまずはpxchfonをチェック

3. 有力なパッケージの利用とりあえずplautopatch

おしまい

top related