Created
June 24, 2016 14:00
-
-
Save zr-tex8r/443a3ad9ec9ca09f3967c2affe54db3c to your computer and use it in GitHub Desktop.
LaTeX: \selectfont がアレかコレかを判定する
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%! 本体開始時のフックで \selectfont の再定義が行われる場合もあるため, | |
%! \AtBeginDocument だけでなく \AtEndDocument でも検査を行う. | |
%! \document を再定義するのも一つの手であるが, \document を再定義する | |
%! パッケージがあるかも知れない.... | |
\AtBeginDocument{\pltx@verify@kanji@selectfont} | |
\AtEndDocument{\pltx@verify@kanji@selectfont} | |
%! 検査用のマクロ. | |
\def\pltx@verify@kanji@selectfont{% | |
\begingroup | |
%! (1) \selectfont_ の定義本体に '\kenc@update' が含まれるかを | |
%! 判定し, 含まれれば正常とする. | |
%! 文字列化した上で \in@ を使う. | |
\edef\next{\noexpand\in@ | |
{\string\kenc@update}% | |
{\expandafter\meaning\csname selectfont \endcsname}}% | |
%! "\letで元定義保存"の要領でパッチを当てている場合は, (1) の | |
%! 検査は通らない. | |
\next \ifin@ \else | |
%! [(1) が通らなかった] | |
%! (2) pLaTeX カーネルの \selectfont の定義には | |
%! \let\tmp@error@fontshape\error@fontshape | |
%! が含まれる. これを利用して, 実際に \selectfont を実行して | |
%! \tmp@error@fontshape への代入が起こるかを調べる. | |
%! ほとんど全ての場合に, \selectfont を余分に(局所化状態で) | |
%! 実行するのは無害である. | |
\let\tmp@error@fontshape\relax | |
\selectfont | |
\ifx\tmp@error@fontshape\relax | |
%! [(2) も通らなかった] | |
%! \selectfont が正常でないと見なしてエラーを出す. | |
\@latex@error | |
{The definition of \string\selectfont\space is incompatible | |
with (u)pLaTeX}% | |
{Some of the packages in use is incompatible with (u)pLaTeX.% | |
\MessageBreak\@ehc} | |
%! 2回エラーが出るのを避ける. | |
\global\let\pltx@verify@kanji@selectfont\relax | |
\fi | |
\fi | |
\endgroup} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% pLaTeX 文書 | |
\documentclass[a4paper]{jarticle} | |
\usepackage{check-selectfont} | |
\begin{document} | |
{p\LaTeX}が新しくなってアレ! | |
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% upLaTeX 文書 | |
\documentclass[uplatex,a4paper]{jsarticle} | |
\usepackage{check-selectfont} | |
\usepackage{tracefnt,uptrace}% これはOK | |
\begin{document} | |
{p\LaTeX}が新しくなってアレ! | |
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% upLaTeX 文書 | |
\documentclass[uplatex,a4paper]{jsarticle} | |
\usepackage{check-selectfont} | |
\usepackage{letltxmacro} | |
% "\letで元定義保存"方式でパッチを当てた場合 | |
\LetLtxMacro{\ORGselectfont}{\selectfont} | |
\DeclareRobustCommand*{\selectfont}{\typeout{(^_^;)}\ORGselectfont} | |
\begin{document} | |
{p\LaTeX}が新しくなってアレ! | |
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% pLaTeX 文書 | |
\documentclass[a4paper]{jarticle} | |
\usepackage{check-selectfont} | |
\usepackage{CJKutf8}% CJKは非互換 | |
\begin{document} | |
{p\LaTeX}が新しくなってアレ! | |
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% upLaTeX 文書 | |
\documentclass[uplatex,a4paper]{jsarticle} | |
\usepackage{check-selectfont} | |
\usepackage{tracefnt}% tracefntは非互換 | |
% これは \end{document} でエラーになる | |
\begin{document} | |
{p\LaTeX}が新しくなってアレ! | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment