vwcol.styとutf.styを併用すると、\ajRoman1などが文字化けします。これをクリアする方法はあるでしょうか?
%test.tex-----------------------------------------
\documentclass{jarticle}
\usepackage{utf}
%\usepackage{vwcol}
\begin{document}
\ajRoman3
\ajRoman1
\end{document}
vwcol.sty は ragged2e.sty を読み込んでいて、それはさらに everysel.sty を内部で
読み込んでいます。そして、everysel.sty が内部で \selectfont の定義を変更していますね。
なので以下のソースでも文字化けします。
\documentclass{jarticle}
\usepackage{utf}
\usepackage{everysel}
\begin{document}
\ajRoman3
\ajRoman1
\end{document}
根は qa:34729 と同じようです。
空の ragged2e.sty と everysel.sty を作成してしまえば
LaTeX Warning: Command \selectfont has changed.
Check if current package is valid.
という警告を消すことができますが、それで vwcol.sty のほうが正常に動くかは知りません。
ちなみに utf.sty は古いので、代わりに otf.sty を使ってテストしました。\usepackage{otf}
読み込んでいます。そして、everysel.sty が内部で \selectfont の定義を変更していますね。
なので以下のソースでも文字化けします。
\documentclass{jarticle}
\usepackage{utf}
\usepackage{everysel}
\begin{document}
\ajRoman3
\ajRoman1
\end{document}
根は qa:34729 と同じようです。
空の ragged2e.sty と everysel.sty を作成してしまえば
LaTeX Warning: Command \selectfont has changed.
Check if current package is valid.
という警告を消すことができますが、それで vwcol.sty のほうが正常に動くかは知りません。
ちなみに utf.sty は古いので、代わりに otf.sty を使ってテストしました。\usepackage{otf}
ありがとうございます。
空の ragged2e.sty と everysel.sty を作成すると字化けしなくなりましたが、
vwcol環境が記述されているとエラーになります。併用は難しそうでしょうか。
%test.tex---------------------------------------------------------------------------------
\documentclass{jarticle}
\usepackage[dvipdfmx]{graphicx,color}
\usepackage{utf}
\usepackage{vwcol}
\begin{document}
\begin{vwcol}[widths={.65,.35},rule=0pt,sep=.1]
aaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbb
\end{vwcol}
\end{document}
vwcol.sty が ragged2e.sty を読み込んでいる理由は、LaTeX 本体の \raggedright の
不都合な仕様を回避するためだということが、vwcol.sty のマニュアルに書かれています。
コマンドラインから
texdoc vwcol
と入力すると vwcol.pdf というマニュアルを読むことができます。
(あるいは vwcol.pdf でググると同じものが Web で出てきます)
ragged2e.sty の \RaggedRight は挙動が改善されているので vwcol.sty はこれを使いたいのですが、
ragged2e.sty を空にした結果、vwcol.sty が必要な \RaggedRight が未定義になってしまいます。
これがエラーの原因ですので、LaTeX 本体で定義された(ちょっと不都合な)\raggedright を
\RaggedRight という名前にコピーしてしまえば未定義でなくなり、エラーが消えます。
(が、当然ながらマニュアルに書いてある不都合が起こりますので自己責任で。)
先ほど作っていただいた空の ragged2e.sty と everysel.sty は今回も使います。
\documentclass{jarticle}
\let\RaggedRight\raggedright\relax
\usepackage{utf}
\usepackage{vwcol}
これで一応共存させることはできます。
不都合な仕様を回避するためだということが、vwcol.sty のマニュアルに書かれています。
コマンドラインから
texdoc vwcol
と入力すると vwcol.pdf というマニュアルを読むことができます。
(あるいは vwcol.pdf でググると同じものが Web で出てきます)
ragged2e.sty の \RaggedRight は挙動が改善されているので vwcol.sty はこれを使いたいのですが、
ragged2e.sty を空にした結果、vwcol.sty が必要な \RaggedRight が未定義になってしまいます。
これがエラーの原因ですので、LaTeX 本体で定義された(ちょっと不都合な)\raggedright を
\RaggedRight という名前にコピーしてしまえば未定義でなくなり、エラーが消えます。
(が、当然ながらマニュアルに書いてある不都合が起こりますので自己責任で。)
先ほど作っていただいた空の ragged2e.sty と everysel.sty は今回も使います。
\documentclass{jarticle}
\let\RaggedRight\raggedright\relax
\usepackage{utf}
\usepackage{vwcol}
これで一応共存させることはできます。
空ファイルを準備するというのは解決策としてどうかと思うので,
以下のようにするとどうでしょうか.
everysel がやっている \selectfont の書き換えというのは,\EverySelectfont 用のフックを
\selectfont の最後の方に入れるだけのように見えます.
これが pLaTeX の \selectfont の定義を上書きしてしまうことが問題なので,
pLaTeX の \selectfont の定義を保存しておいて,
everysel による変更のあとでフックを追加したものに差し替えます.
フックを追加する場所が問題なのですが,とりあえず \size@update の前にしてみます.
(私も utf.sty が手元にないので,代わりに otf.sty でテストしました.)
\documentclass{jarticle}
\usepackage{otf}
\usepackage{etoolbox}
\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
\begin{document}
\ajRoman3
\ajRoman1
\end{document}
以下のようにするとどうでしょうか.
everysel がやっている \selectfont の書き換えというのは,\EverySelectfont 用のフックを
\selectfont の最後の方に入れるだけのように見えます.
これが pLaTeX の \selectfont の定義を上書きしてしまうことが問題なので,
pLaTeX の \selectfont の定義を保存しておいて,
everysel による変更のあとでフックを追加したものに差し替えます.
フックを追加する場所が問題なのですが,とりあえず \size@update の前にしてみます.
(私も utf.sty が手元にないので,代わりに otf.sty でテストしました.)
\documentclass{jarticle}
\usepackage{otf}
\usepackage{etoolbox}
\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
\begin{document}
\ajRoman3
\ajRoman1
\end{document}