The package pxeverysel.sty has now been included in platex-tools bundle.
-
-
Save aminophen/b9fe01a5bb14559626ac81553379e487 to your computer and use it in GitHub Desktop.
LaTeX: (u)pLaTeX で everysel できるかもしれないやつ、の改変版
中国語文書を作る CTeX が upLaTeX をサポートしていることに気づいた。
\documentclass{ctexart}
\begin{document}
C\TeX 宏集依赖的宏包和宏集已被最常见的\TeX 发行版\TeX\ Live和MiK\TeX 所收录。
\end{document}
CTeX について現在分かっていること:
- LuaLaTeX (on LuaTeX-ja)、XeLaTeX、pdfLaTeX、upLaTeX、pLaTeX-ng (ApTeX) をサポート。
- LaTeX3 の文法で書かれている。
- everysel を規定で読み込んでいるが、ctex-engine-*.def でうまいことパッチしてある。
この CTeX (on upLaTeX) と pxeverysel を同時に使うと当然ながら
Package pxeverysel Warning: Failed in patching \selectfont.
が出るが、CTeX の \selectfont
を壊すことはないので許容範囲とする。
CTeX の
\selectfont
を壊すことはないので許容範囲とする。
と思っていたのだが:
\documentclass{ctexart}
%\usepackage{pxeverysel}
\begin{document}
\noindent 早上好!
早上好!
{\tiny 早上好!}
{\Huge 早上好!}
\end{document}
これの処理結果でインデント量が pxeverysel の有無で変わることに気づいた。要調査。
なんかよくわからないが、expl3 で書かれたコマンドに外からパッチしようとしている時点でアレなので、「CTeX 系の何かが既に読まれている場合は、pxeverysel パッケージは何もしない」ということにしてみた。ただ、「CTeX かどうか」の判断法がよく分からない(ctex.sty を \usepackage する方法と、ctexart.cls などを \documentclass する方法があるらしい)ので、両方で定義されていそうな \CTEXoptions という命令の有無で判定することにした(少なくとも 2007 年以降の CTeX はこの命令を持っていることを確認済み)。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
サブブログで考察中の案件。tracefnt が読まれていても pxeverysel が正常に動作するように
\pxys@patch@cmd
のパッチ用パターンマッチを変更としてみた。ただし、このパターンマッチを変更したことで
\enc@update
が一度に二回実行されるようになる気がする…が、問題ないように思えるので放置 (^^;)また、tracefnt 使用時に
Switching to \font@name
が二重に出てしまうことに気づいた。これは pxeverysel がパッチで tracefnt 相当の機能を挿入したにもかかわらず、さらに everysel が明示的に\EverySelectfont
で同じものを入れてくるからである。そこで、everysel をダマして\EverySelectfont
を発行しないようにした。