vwcolを使うと日本語の文字サイズが変更できなくなる問題について

TeX

\usepackage{vwcol} 
を用いると本文中で日本語の文字サイズが変更できなくなる。(英語は問題ない)
原因はおそらく次のようです。

vwcol.sty は ragged2e.sty を読み込んでいて、それはさらに everysel.sty を内部で読み込んでいます。そして、everysel.sty が内部で \selectfont の定義を変更していますね。

TeXフォーラム:vwcol.styとutf.styを併用したい

解決するために、ひとまず\usepackage{vwcol} の後で以下のコマンドを導入して解決できました。
追記(2022. 8). 以下の引用文による方法は、環境を新しくしたらうまくいきませんでした。私のやり方が悪いか、もしかしたらうまくいく方もいるかもしれませんが、この問題を修正するにはその下の pxeverysel パッケージを読み込む方法が最も手取り早いです。

everysel がやっている \selectfont の書き換えというのは,\EverySelectfont 用のフックを\selectfont の最後の方に入れるだけのように見えます.
これが pLaTeX の \selectfont の定義を上書きしてしまうことが問題なので,pLaTeX の \selectfont の定義を保存しておいて,everysel による変更のあとでフックを追加したものに差し替えます.
フックを追加する場所が問題なのですが,とりあえず \size@update の前にしてみます.

\makeatletter
\expandafter\let\expandafter\op@selectfont\csname selectfont \endcsname
\patchcmd{\op@selectfont}{\size@update}{%
  \@EverySelectfont@EveryHook
  \@EverySelectfont@AtNextHook
  \gdef\@EverySelectfont@AtNextHook{}%
  \size@update}{}{}
\usepackage{vwcol}
\AtBeginDocument{\expandafter\let\csname selectfont \endcsname\op@selectfont}
\makeatother

TeXフォーラム:vwcol.styとutf.styを併用したい

追記 以下の記事でも書き足しましたが、pxeverysel パッケージをvwcolの前に追加すると問題が簡単に解決します。
TeXを二段組にする

\usepackage{pxeverysel}
\usepackage{vwcol}

参考:pLaTeX で everysel したい話

コメント

タイトルとURLをコピーしました