Skip to content

Instantly share code, notes, and snippets.

@h20y6m
Last active March 8, 2023 14:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save h20y6m/14081d65a6e76fc17eb93030a9501f52 to your computer and use it in GitHub Desktop.
Save h20y6m/14081d65a6e76fc17eb93030a9501f52 to your computer and use it in GitHub Desktop.
新しい upLaTeX で min10 してみるやつ
%#!uplatex
%% upLaTeX で min10 してみる
%% TeX Live 2023 以降の uplatex が必要
% ----------------------------------------------------------------------
% どうして uplatex じゃないの?
\ifnum\jis"2121="3000 \else
\typeout{Why not run `uplatex'?}
\fi
% |\font|の拡張と同時に追加された|\tojis|プリミティブをチェックする。
\ifdefined\tojis\else
\typeout{Your `uplatex' too old!}
\expandafter\stop
\fi
% ----------------------------------------------------------------------
\makeatletter
% \catcode`\[=12
% \catcode`\]=12
%% plfonts.dtx
% |\DeclareYokoKanjiEncoding|を拡張してオプション引数でJFMのエンコーディングを
% 指定できるようにしてみる。
\def\DeclareYokoKanjiEncoding{\@ifnextchar[%]
{\DeclareYokoKanjiEncoding@i\DeclareYokoKanjiEncoding@ii}%
{\DeclareYokoKanjiEncoding@i\DeclareYokoKanjiEncoding@}}
% |\nfss@catcodes|の状態で引数が読まれるようにしないといけない。
\def\DeclareYokoKanjiEncoding@i#1{%
\begingroup
\nfss@catcodes
\expandafter\endgroup
#1}
\def\DeclareYokoKanjiEncoding@ii[#1]#2#3#4{%
\DeclareYokoKanjiEncoding@{#2}{#3}{#4}%
\global\@namedef{jfontenc@#2}{#1}%
}
% |\DeclareTateKanjiEncoding|も同様
\def\DeclareTateKanjiEncoding{\@ifnextchar[%]
{\DeclareTateKanjiEncoding@i\DeclareTateKanjiEncoding@ii}%
{\DeclareTateKanjiEncoding@i\DeclareTateKanjiEncoding@}}
\def\DeclareTateKanjiEncoding@i#1{%
\begingroup
\nfss@catcodes
\expandafter\endgroup
#1}
\def\DeclareTateKanjiEncoding@ii[#1]#2#3#4{%
\DeclareTateKanjiEncoding@{#2}{#3}{#4}%
\global\@namedef{jfontenc@#2}{#1}%
}
%% ltfssbas.dtx
%\def\define@newfont{%
% \begingroup
% \let\typeout\@font@info
% \escapechar\m@ne
% \expandafter\expandafter\expandafter
% \split@name\expandafter\string\font@name\@nil
% \try@load@fontshape % try always
% \expandafter\ifx
% \csname\curr@fontshape\endcsname \relax
% \wrong@fontshape\else
% \extract@font\fi
% \endgroup}
%% ltfsstrc.dtx
% |\extract@font|で|\font|が実行される。
% |\f@encoding|に指定されているエンコーディングが|\DeclareYokoKanjiEncoding|、
% |\DeclareTateKanjiEncoding|でJFMのエンコーディングが指定されたものだったときは、
% |\font|に|in| <encodfing>を付加する。
\def\extract@font{%
\get@external@font
\@ifundefined{jfontenc@\f@encoding}{%
\global\expandafter\font\font@name\external@font\relax
}{%
% |in| <encodfing>のスキャン時に展開が行われないことに注意。
% 先に|\edef|でJFMのエンコーディング名を展開しておく。
\edef\jfont@in@enc{\font in \@nameuse{jfontenc@\f@encoding}}%
\global\expandafter\jfont@in@enc\font@name\external@font\relax
}%
%<*trace>
% \ifnum \tracingfonts >\@ne
% \@font@info{External font `\external@font'
% loaded as\MessageBreak \font@name}\fi
%</trace>
\font@name \relax
\csname \f@encoding+\f@family\endcsname
\csname\curr@fontshape\endcsname
\relax
}
\makeatother
% ----------------------------------------------------------------------
\ifnum\jis"2121="3000
% plfonts.dtxを参考にJY1/JT1のフォントを定義する。
% 横組エンコード:
% JFMのエンコーディングで|jis|を指定する
\DeclareYokoKanjiEncoding[jis]{JY1}{}{}
\DeclareKanjiSubstitution{JY1}{mc}{m}{n}
% 縦組エンコード:
% JFMのエンコーディングで|jis|を指定する
\DeclareTateKanjiEncoding[jis]{JT1}{}{}
\DeclareKanjiSubstitution{JT1}{mc}{m}{n}
% 縦横のエンコーディングのセット化:
\KanjiEncodingPair{JY1}{JT1}
% フォント属性のデフォルト値:
\renewcommand\kanjiencodingdefault{JY1}
% 和文エンコードの指定:
\kanjiencoding{JY1}
% フォント定義:
\input{jy1mc.fd}
\input{jy1gt.fd}
\input{jt1mc.fd}
\input{jt1gt.fd}
% フォントを有効にします。
\fontencoding{JT1}\selectfont
\fontencoding{JY1}\selectfont
\fi
% ----------------------------------------------------------------------
\documentclass{jarticle}
\usepackage{bxjalipsum}
\begin{document}
\section{ちょっとチェックしちゃった}
\jalipsum{wagahai}
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment