summaryrefslogtreecommitdiff
path: root/info/ptex-manual/eptexdoc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'info/ptex-manual/eptexdoc.tex')
-rw-r--r--info/ptex-manual/eptexdoc.tex431
1 files changed, 199 insertions, 232 deletions
diff --git a/info/ptex-manual/eptexdoc.tex b/info/ptex-manual/eptexdoc.tex
index ab4b9cfe16..62d11cc730 100644
--- a/info/ptex-manual/eptexdoc.tex
+++ b/info/ptex-manual/eptexdoc.tex
@@ -1,181 +1,43 @@
%#!make eptexdoc.pdf
-\documentclass[a4paper,11pt]{jsarticle}
+\documentclass[a4paper,11pt,nomag]{jsarticle}
+\usepackage[bold,deluxe]{otf}
\input fam256p.tex
\usepackage[textwidth=42zw,lines=40,truedimen,centering]{geometry}
-\usepackage{amsmath,mathtools,amssymb,multicol,comment}
+
+%%%%%%%%%%%%%%%%
+% additional packages
+\usepackage{amsmath}
+\usepackage{mathtools,amssymb,comment}
\usepackage[dvipdfmx]{graphicx}
\usepackage[T1]{fontenc}
-\usepackage{booktabs,enumitem}
+\usepackage{booktabs,enumitem,multicol}
\usepackage{lmodern}
\usepackage[dvipdfmx,hyperfootnotes=false]{hyperref}
\usepackage{pxjahyper}
-\usepackage[bold,deluxe]{otf}
\usepackage{hologo}
\usepackage{makeidx}\makeindex
+% common
+\usepackage{ptex-manual}
+
%%%%%%%%%%%%%%%%
-\makeatletter
+\def\delbit#1#2{\underbracket[0.4pt]{#1}_{\text{#2}}}
+
+\usepackage{shortvrb}
+\MakeShortVerb*{|}
+%%%%%%%%%%%%%%%%
+
+% logos
\newcommand{\OMEGA}{$\Omega$}
\protected\def\epTeX{$\varepsilon$\nobreakdash-\pTeX}
+\protected\def\eupTeX{$\varepsilon$\nobreakdash-\upTeX}
\protected\def\eTeX{$\varepsilon$\nobreakdash-\TeX}
\def\upTeX{u\pTeX}\def\pTeX{p\kern-.15em\TeX}
\def\NTS{\leavevmode\hbox{$\cal N\kern-0.35em\lower0.5ex\hbox{$\cal T$}%
\kern-0.2emS$}\,}
-\def\headfont{\normalfont\mathversion{bold}\gtfamily\bfseries}
-\def\node#1{\textit{#1}}
-\def\.#1{\texorpdfstring{%
- \leavevmode\hbox{\texttt{\textbackslash#1}}\ifmmode\else\textcompwordmark\fi}{\textbackslash #1}}
-\let\orig@cs=\.
-\def\ind@cs#1{\orig@cs{#1}\indcs{#1}}
-\def\indcs#1{\index{{\texttt{\textbackslash #1}}}}
-\newlist{cslist}{description}1
-\setlist[cslist]{%
- style=nextline,itemsep=\medskipamount,listparindent=1zw,
- font=\normalfont\mdseries}
-\def\csitem[#1]{\item[\llap{$\blacktriangleright$~}\let\.=\ind@cs#1]}
-\def\emph#1{{\bfseries\gtfamily\mathversion{bold}#1}}
-\def\listx{\def\makelabel{\hbox to 1em{\hfil\textbullet\hfil}}\def\@{\hfill}
-\labelwidth=13zw\leftmargin15zw\itemindent=0zw}
-\def\paragraph#1{\par\medskip\par\noindent\emph{■#1}\par\nobreak}
-\def\Pkg#1{\textsf{#1}}
-\catcode`\<=13
-\xspcode`\\=3
-\xspcode`\*=3
-\xspcode`\-=3
-\xspcode23=3 % \textcompwordmark
-\def<#1>{\ensuremath{\langle\hbox{\normalfont\itshape #1\/}\rangle}}
-
-\font\man=manfnt at 10pt
-\def\dbend{\raise0pt\hbox{\man\char'177}}
-\AtBeginDvi{\special{pdf:mapfile otf-ipaex.map}}
-\def\delbit#1#2{\underbracket[0.4pt]{#1}_{\text{#2}}}
-
\def\TeXXeT{\TeX-\reflectbox{\bfseries\TeX-}}
-\newenvironment{multilist}[2]%
- {$$\setbox\z@=\hbox\bgroup % catch some funny things -> \mathord
- \let\a=\empty
- \let\b=\empty
- \count@=\z@
- \toks@={#2}%
- \def\item##1\cr
- {\ifnum \count@=\z@
- \count@=#1%
- \expandafter\def\expandafter\b\expandafter{\b\y{}}%
- \fi
- \advance\count@ by\m@ne
- \expandafter\def\expandafter\a\expandafter{\a\x{##1}}}%
- \ignorespaces}%
- {\loop
- \ifnum \count@>\z@
- \expandafter\def\expandafter\a\expandafter{\a\expandafter\z\b\relax}%
- \advance\count@ by\m@ne
- \repeat
- \def\x##1{\expandafter\y\b\relax{##1}}%
- \def\y\y##1##2\relax##3%
- {\ifx @##1@%
- \def\b{##2\y{##3}}%
- \else
- \def\b{##2\y{##1&##3}}%
- \fi}%
- \def\z\y##1##2\relax{\def\b{##2\y{##1}}}%
- \a
- \def\x
- {\expandafter\egroup\expandafter\halign\expandafter\bgroup
- \expandafter&\the\toks@\cr}%
- \def\y##1{\expandafter\def\expandafter\x\expandafter{\x##1\cr}}%
- \b
- \x\egroup $$}
-
\makeatletter
-\def\hex#1{%
-{\count@=#1\@tempcnta=#1\@tempcntb=\@tempcnta\relax
-\divide\@tempcntb by 16%
-\ifnum\count@=0\else
- \multiply\@tempcntb by16%
- \advance\@tempcnta-\@tempcntb
- \divide\@tempcntb by16%
- \hex{\the\@tempcntb}%
- \ifcase\@tempcnta\relax 0\or1\or2\or3\or4\or5\or6\or
- 7\or8\or9\or A\or B\or C\or D\or E\pr F\fi
-\fi}}
-\clubpenalty=8000\widowpenalty=8000
-
-\normalsize
-\bigskipamount=\baselineskip
-\medskipamount=.5\baselineskip
-\smallskipamount=.25\baselineskip
-
-\usepackage{etoolbox}
-\newenvironment{curve}{%
- \par\medskip
- \bgroup\small\leftskip=\dimexpr\textwidth-44zw\relax\@totalleftmargin=\leftskip
- \parindent1zw\noindent\kern-\leftskip\hbox to\leftskip{\dbend\hss}%
- \bigskipamount=\baselineskip
- \medskipamount=.5\baselineskip
- \smallskipamount=.25\baselineskip
- \everypar{\everypar{}}\ignorespaces
-}{\par\egroup\medskip}
-
-\renewenvironment{theindex}{%
- \def\presectionname{}\def\postsectionname{}%
- \section*{\indexname}
- \@mkboth{\indexname}{\indexname}%
- \plainifnotempty % \thispagestyle{plain}
- \parindent\z@
- \parskip\z@ \@plus .3\p@\relax
- \let\item\@idxitem
- \raggedright
- \begin{multicols}{2}
- }{
- \end{multicols}
- \clearpage
- }
-
-\patchcmd\@verbatim\@totalleftmargin{\dimexpr\@totalleftmargin+2zw\relax}{}{}
-\patchcmd\quote{\list{}}{\par\list{\topsep\medskipamount}}{}{}
-\patchcmd\@verbatim{\trivlist}{\trivlist\addvspace\medskipamount\noautoxspacing}{}{}
-\patchcmd\endverbatim{\endtrivlist}{\endtrivlist\addvspace\medskipamount}{}{}
-\expandafter\let\csname endverbatim*\endcsname =\endverbatim
-\patchcmd\verb{\ifmmode\hbox\else\leavevmode\vadjust{}\fi\bgroup}
- {\ifmmode\else\leavevmode\vadjust{}\fi\hbox
- \bgroup\textcompwordmark\noautoxspacing\noautospacing}{}{}
-\patchcmd\verb@egroup{\egroup}{\egroup\textcompwordmark}{}{}
-
-\usepackage{shortvrb}
-\MakeShortVerb*{|}
-%%%%%%%% macros for index (simplified from doc.sty)
-\newif\ifscan@allowed
-\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus1fill}%
-\def\pfill{\unskip~\dotfill\nobreak}
-
-\long\def\@footnotetext{%
- \insert\footins\bgroup
- \normalfont\footnotesize
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\footnotesep
- \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
- \hsize\columnwidth \@parboxrestore
- \protected@edef\@currentlabel{%
- \csname p@footnote\endcsname\@thefnmark
- }%
- \color@begingroup
- \@makefntext{%
- \rule\z@\footnotesep\ignorespaces}%
- \futurelet\next\fo@t}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else \let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\@finalstrut\strutbox\color@endgroup\egroup
- \ifx\pltx@foot@penalty\@undefined\else
- \ifhmode\null\fi
- \ifnum\pltx@foot@penalty=\z@\else
- \penalty\pltx@foot@penalty
- \pltx@foot@penalty\z@
- \fi
- \fi}
-
{\lccode`\!=`\_
\lowercase{%
\protected\gdef\_{\ifdefstrequal{\f@family}{\ttdefault}{!}%
@@ -183,14 +45,15 @@
}}
}
\makeatother
-%%%%%%%%%%%%%%%%
+
+\clubpenalty=8000 \widowpenalty=8000
\frenchspacing
\begin{document}
\title{\emph{\epTeX について}}
\author{北川 弘典\null
\thanks{\url{http://osdn.jp/projects/eptex/wiki/},\
e-mail: \texttt{h\_kitagawa2001(at)yahoo.co.jp}}}
-\date{version 190131,\today}
+\date{version \the\epTeXversion,\today}
\maketitle
\tableofcontents
@@ -352,47 +215,126 @@ tracing機能や条件判断文の強化などあるが,そこら辺はパッ
の位置がずれたり空白がおかしかったりするけれども,そこの修正は大変に思え
るし,苦労して実装する意味があるのか疑問なので放置している.
-\medskip
-
-\pTeX 拡張では,\TeX と比較して\node{dir\_node}と\node{disp\_node}という2種類のノードが
-追加された.前者は,現在のリストの中に違う組方向のboxを挿入する際に寸法を補正するために作られ,
-\.{hbox}や\.{vbox}のコンテナとなっている.
-また後者は,欧文文字のベースライン補正のために使われる.
-
-\epTeX~110102 まではこれらのノードも\.{lastnodetype}の値として出力させるようにした.
-しかし,両者ともに\epTeX が自動的に挿入する(ユーザーが意識する必要はない)ノードであることから,
-\epTeX~110227以降では\node{dir\_node}と\node{disp\_node}は
-\.{lastnodetype}\indcs{lastnodetype}の対象とする「最後のノード」とはならないようにしている
-\footnote{%
- 最後のノードが\node{dir\_node}であった場合,\.{lastnodetype}はそのノードが格納している
- \node{hlist\_node}か\node{vlist\_node}の種類を返す.
-}.
-\begin{multilist}{3}{\hfil\hskip1.5zw#:&\quad#\qquad\hfil}
-\item $-1$&none (empty list)\cr\item 0&char node\cr\item 1&hlist node\cr
-\item 2&vlist node\cr\item 3&rule node\cr\item 4&ins node\cr
-\item 5&mark node\cr\item 6&adjust node\cr\item 7&ligature node\cr
-\item 8&disc node\cr\item 9&whatsit node\cr\item 10&math node\cr
-\item 11&glue node\cr\item 12&kern node\cr\item 13&penalty node\cr
-\item 14&unset node\cr\item 15&math mode nodes\cr
-\end{multilist}
+以下,\eTeX 拡張を\pTeX 拡張とマージするにあたって調整した箇所を述べる.
+\begin{cslist}
+ \csitem[\.{lastnodetype}]
+ \pTeX 拡張では,\TeX と比較して\node{dir\_node}と\node{disp\_node}という2種類のノードが
+ 追加された.前者は,現在のリストの中に違う組方向のboxを挿入する際に寸法を補正するために作られ,
+ \.{hbox}や\.{vbox}のコンテナとなっている.
+ また後者は,欧文文字のベースライン補正のために使われる.
+
+ \epTeX~110102まではこれらのノードも\.{lastnodetype}の値として出力させるようにした.
+ しかし,両者ともに\epTeX が自動的に挿入する(ユーザーが意識する必要はない)ノードであることから,
+ \epTeX~110227以降では\node{dir\_node}と\node{disp\_node}は
+ \.{lastnodetype}の対象とする「最後のノード」とはならないようにしている
+ \footnote{%
+ 最後のノードが\node{dir\_node}であった場合,\.{lastnodetype}はそのノードが格納している
+ \node{hlist\_node}か\node{vlist\_node}の種類を返す.
+ }.\\
+ \parbox{.9\linewidth}{%
+ \begin{multilist}{3}{\hfil\hskip1.5zw#:&\quad#\qquad\hfil}
+ \item $-1$&none (empty list)\cr\item 0&char node\cr\item 1&hlist node\cr
+ \item 2&vlist node\cr\item 3&rule node\cr\item 4&ins node\cr
+ \item 5&mark node\cr\item 6&adjust node\cr\item 7&ligature node\cr
+ \item 8&disc node\cr\item 9&whatsit node\cr\item 10&math node\cr
+ \item 11&glue node\cr\item 12&kern node\cr\item 13&penalty node\cr
+ \item 14&unset node\cr\item 15&math mode nodes\cr
+ \end{multilist}}
+
+ \csitem[\.{currentiftype}]
+\ifnum\epTeXversion>190131 %%%%% TL2019-hack
+ 条件判断文とそれを表す数字との対応は以下のようになっている
+ (\epTeX~190709以降).
+ 21,~22は\hologo{pdfTeX}由来の条件判断文(後述),
+ 23--30が,\pTeX 拡張で追加された条件判断文に対応する.\\
+ \parbox{.9\linewidth}{%
+ \begin{multilist}{3}{\hfil\hskip1.5zw#:&\quad#\qquad\hfil}
+ \item 1&\.{if}\cr\item 2&\.{ifcat}\cr\item 3&\.{ifnum}\cr\item 4&\.{ifdim}\cr
+ \item 5&\.{ifodd}\cr\item 6&\.{ifvmode}\cr\item 7&\.{ifhmode}\cr
+ \item 8&\.{ifmmode}\cr\item 9&\.{ifinner}\cr\item 10&\.{ifvoid}\cr
+ \item 11&\.{ifhbox}\cr\item 12&\.{ifvbox}\cr\item 13&\.{ifx}\cr
+ \item 14&\.{ifeof}\cr\item 15&\.{iftrue}\cr\item 16&\.{iffalse}\cr
+ \item 17&\.{ifcase}\cr\item 18&\.{ifdefined}\cr\item 19&\.{ifcsname}\cr
+ \item 20&\.{iffontchar}\cr\item \bf 21&\.{ifincsname}\cr\item \bf 22&\.{ifpdfprimtive}\cr
+ \item \bf 23&\.{iftdir}\cr\item \bf 24&\.{ifydir}\cr
+ \item \bf 25&\.{ifddir}\cr\item \bf 26&\.{ifmdir}\cr\item \bf 27&\.{iftbox}\cr
+ \item \bf 28&\.{ifybox}\cr\item \bf 29&\.{ifdbox}\cr\item \bf 30&\.{ifmbox}\cr
+ \end{multilist}}
+\else %%%%% TL2019-hack
+ 条件判断文とそれを表す数字との対応は以下のようになっている
+ (\epTeX~190131まで;\epTeX~190709以降は\.{ifincsname}プリミティブ追加により変化するので注意).
+ 21--28が,\pTeX 拡張で追加された条件判断文に対応する.
+ 29の\.{ifpdfprimitive}は\hologo{pdfTeX}由来のプリミティブ(後述)である.\\
+ \parbox{.9\linewidth}{%
+ \begin{multilist}{3}{\hfil\hskip1.5zw#:&\quad#\qquad\hfil}
+ \item 1&\.{if}\cr\item 2&\.{ifcat}\cr\item 3&\.{ifnum}\cr\item 4&\.{ifdim}\cr
+ \item 5&\.{ifodd}\cr\item 6&\.{ifvmode}\cr\item 7&\.{ifhmode}\cr
+ \item 8&\.{ifmmode}\cr\item 9&\.{ifinner}\cr\item 10&\.{ifvoid}\cr
+ \item 11&\.{ifhbox}\cr\item 12&\.{ifvbox}\cr\item 13&\.{ifx}\cr
+ \item 14&\.{ifeof}\cr\item 15&\.{iftrue}\cr\item 16&\.{iffalse}\cr
+ \item 17&\.{ifcase}\cr\item 18&\.{ifdefined}\cr\item 19&\.{ifcsname}\cr
+ \item 20&\.{iffontchar}\cr\item \bf 21&\.{iftdir}\cr\item \bf 22&\.{ifydir}\cr
+ \item \bf 23&\.{ifddir}\cr\item \bf 24&\.{ifmdir}\cr\item \bf 25&\.{iftbox}\cr
+ \item \bf 26&\.{ifybox}\cr\item \bf 27&\.{ifdbox}\cr\item \bf 28&\.{ifmbox}\cr
+ \item \bf 29&\.{ifpdfprimtive}\cr
+ \end{multilist}}
+\fi %%%%% TL2019-hack
+
+\ifnum\epTeXversion>190131 %%%%% TL2019-hack
+ \csitem[\.{fontcharwd}, \.{fontcharht}, \.{fontchardp}, \.{fontcharic}]
+ 欧文フォントと和文フォントを判別し,それに応じて処理が分かれる.
+ それに伴い,許容される引数範囲と意味が異なることに注意
+ (\epTeX~190709以降).
+ 以下,|??|は|wd|, |ht|, |dp|, |ic|のいずれかを表す.
+ \begin{itemize}
+ \item 和文フォントの場合: \.{fontchar??} <Japanese font> <number>\\
+ <Japanese font>を$f$,<number>を$c$とおくと,
+ \begin{itemize}
+ \item $c \geq 0$の場合は,$c$を\emph{文字コード}とみなす.
+ $c$が和文文字コードとして有効であれば,
+ 和文フォント$f$における文字コード$c$の和文文字の寸法値を返す.
+ 和文文字コードとして無効であれば|0pt|を返す.
+ \item $c < 0$の場合は,$-(c+1)$を\emph{文字タイプ}とみなす.
+ 和文フォント$f$に文字タイプ$-(c+1)$が定義されていればその寸法値を返し,
+ 未定義であれば|0pt|を返す.
+ \end{itemize}
+ \item 欧文フォントの場合: \.{fontchar??} <font> <8-bit number>\\
+ オリジナルの\eTeX と同じ挙動である.すなわち,
+ 引数に$c \geq 256$や$c < 0$を与えると
+ \verb+! Bad character code (256).+
+ のようにエラーが出る.
+ \end{itemize}
-\vskip-\baselineskip
+ \csitem[\.{iffontchar}]
+ \begin{itemize}
+ \item 和文フォントの場合: \.{iffontchar} <Japanese font> <number>\\
+ <Japanese font>を$f$,<number>を$c$とおくと,
+ \begin{itemize}
+ \item $c \geq 0$の場合は$c$を\emph{文字コード}とみなし,
+ $c$が和文文字コードとして有効かどうかを判定する
+ \footnote{\pTeX では「任意の和文フォントには,和文文字コードとして有効な
+ 全ての文字が存在する」という扱いであるため,和文フォント$f$によらない.}.
+ \item $c < 0$の場合は$-(c+1)$を\emph{文字タイプ}とみなし,
+ 和文フォント$f$に文字タイプ$-(c+1)$が定義されているかどうかを判定する.
+ \end{itemize}
+ \item 欧文フォントの場合: \.{iffontchar} <font> <8-bit number>\\
+ オリジナルの\eTeX と同じ挙動である.すなわち,
+ 引数に$c \geq 256$や$c < 0$を与えると
+ \verb+! Bad character code (256).+
+ のようにエラーが出る.
+ \end{itemize}
+\fi %%%%% TL2019-hack
+\end{cslist}
-\.{currentiftype}\indcs{currentiftype}における条件判断文とそれを表す数字との対応は,以
-下のようになっている.21--28が,\pTeX 拡張で追加された条件判断文に対応する.
-29の\.{ifpdfprimitive}は\hologo{pdfTeX}由来のプリミティブ(後述)である.
-\begin{multilist}{3}{\hfil\hskip1.5zw#:&\quad#\qquad\hfil}
-\item 1&\.{if}\cr\item 2&\.{ifcat}\cr\item 3&\.{ifnum}\cr\item 4&\.{ifdim}\cr
-\item 5&\.{ifodd}\cr\item 6&\.{ifvmode}\cr\item 7&\.{ifhmode}\cr
-\item 8&\.{ifmmode}\cr\item 9&\.{ifinner}\cr\item 10&\.{ifvoid}\cr
-\item 11&\.{ifhbox}\cr\item 12&\.{ifvbox}\cr\item 13&\.{ifx}\cr
-\item 14&\.{ifeof}\cr\item 15&\.{iftrue}\cr\item 16&\.{iffalse}\cr
-\item 17&\.{ifcase}\cr\item 18&\.{ifdefined}\cr\item 19&\.{ifcsname}\cr
-\item 20&\.{iffontchar}\cr\item \bf 21&\.{iftdir}\cr\item \bf 22&\.{ifydir}\cr
-\item \bf 23&\.{ifddir}\cr\item \bf 24&\.{ifmdir}\cr\item \bf 25&\.{iftbox}\cr
-\item \bf 26&\.{ifybox}\cr\item \bf 27&\.{ifdbox}\cr\item \bf 28&\.{ifmbox}\cr
-\item \bf 29&\.{ifpdfprimtive}\cr
-\end{multilist}
+\ifnum\epTeXversion>190131 %%%%% TL2019-hack
+\begin{dangerous}
+ 上記で「和文文字コードとして有効かどうか」は,関数|is_char_kanji|を参照.
+ この関数は内部コードによって異なるため,マクロで実装するのは面倒であるが,
+ \epTeX~190709以降では\.{iffontchar}で容易に実現できる.
+ なお,\upTeX では任意の非負の値が和文文字コードとして有効なため,
+ |is_char_kanji|は非負かどうかの判定になっている.
+\end{dangerous}
+\fi %%%%% TL2019-hack
\section{\OMEGA 由来の機能(旧名称:\texttt{FAM256}パッチ)}
\epTeX には,掲示板\TeX\ Q\ \&\ Aの山本氏の書き込み
@@ -494,8 +436,8 @@ delimiter codeを取得しようとしても,現時点のパッチでは,う
\paragraph{無限のレベル}
\TeX では,glueの伸縮量に\texttt{fil}, \texttt{fill}, \texttt{filll}
という3つの無限大のレベルが存在し,\texttt{l}が多いほど無限大のオーダーが高くなっていた.
-\OMEGA では,「inter-letter spacingのために」\texttt{fi}という,有限と
-\texttt{fil}の中間にあたる無限大のレベルが付け加えられた.そこで,この無限大レベル
+\OMEGA では,「inter-letter spacingのために」\texttt{fi}\index{fi=\texttt{fi}}という,
+有限と\texttt{fil}の中間にあたる無限大のレベルが付け加えられた.そこで,この無限大レベル
\texttt{fi}も採用することにした.
\medskip
@@ -503,13 +445,15 @@ delimiter codeを取得しようとしても,現時点のパッチでは,う
実装方法は,大まかには\OMEGA で\texttt{fi}の実装を行っているchange file\
\texttt{omfi.ch}の通りであるのだが,これに\pTeX や\eTeX に伴う少々の修正を行っている.
\begin{itemize}
-\item プリミティブ|\pagefistretch|, |\hfi|, |\vfi|を新たに定義している
-\footnote{%
+ \item プリミティブ|\pagefistretch|\indcs{pagefistretch},
+ |\hfi|\indcs{hfi}, |\vfi|\indcs{vfi}を新たに定義している
+ \footnote{%
|\hfi|, |\vfi|については\cite{omegaman}に記述があるが,
\TeX~Liveに収録されている$\aleph$(\OMEGA は\TeX~Liveに収録されていない)では
実装されていない.|\pagefistretch|を実装したのは北川の完全な勘違いである.
-}.
-\item |\gluestretchorder|, |\glueshrinkorder|の動作を\eTeX のそれと合わせた.
+ }.
+ \item |\gluestretchorder|\indcs{gluestretchorder},
+ |\glueshrinkorder|\indcs{glueshrinkorder}の動作を\eTeX のそれと合わせた.
具体的には,ある適当なglue~|\someglue|の伸び量を<stretch>とおくとき,
\[
\hbox{|\gluestretchorder\someglue|}=
@@ -520,8 +464,8 @@ delimiter codeを取得しようとしても,現時点のパッチでは,う
3&<stretch>\text{がちょうど\texttt{filll}レベルの無限量}
\end{cases}
\]
-となっている.内部では\texttt{fi}レベルが1,\texttt{fil}レベルが2,……として処
- 理している.
+ となっている.内部では\texttt{fi}レベルが1,\texttt{fil}レベルが2,……として
+ 処理している.
\end{itemize}
\paragraph{レジスタについて}
@@ -606,26 +550,32 @@ delimiter codeを取得しようとしても,現時点のパッチでは,う
原点はページの(物理的な意味の)左下隅であり,$y$軸は(物理的な)上方向に向かって増加する.
\begin{itemize}
\item ページの物理的な幅と高さはすぐ上の\.{pdfpagewidth}, \.{pdfpageheight}で設定する.
- これらの内部長さが0であった場合は,\.{shipout}されたボックスの寸法と
- \.{hoffset}(または\.{voffset})の値から自動的に計算される.
+ これらの内部長さが0であった場合は,\.{shipout}されたボックスの寸法と
+ \.{hoffset}(または\.{voffset})の値から自動的に計算される.
\item \pTeX では横組・縦組と組方向が複数あるので,\.{pdflastxpos}, \.{pdflastypos}の値の座標系を
- 「物理的な」向きとすべきか,それとも「組方向に応じた」向きとすべきかは悩みどころである.
- \epTeX~110227以降,現在までのバージョンでは上記のように物理的な向きとしている.
+ 「物理的な」向きとすべきか,それとも「組方向に応じた」向きとすべきかは悩みどころである.
+ \epTeX~110227以降,現在までのバージョンでは上記のように物理的な向きとしている.
\item \.{mag}を用いてページの拡大縮小を行い,かつ
- dvipsやdvipdfmxを用いてPostScript,~pdfを生成した場合,\.{pdflast\{x,y\}pos}の原点は
- ページの左下隅から左・上方向にそれぞれ$1\,\mathrm{in}-1\,\mathrm{truein}$%
- 移動したところになる
- \footnote{これは\hologo{pdfTeX}のdviモードや\hologo{XeTeX}と同じ挙動である.}.
+ dvipsやdvipdfmxを用いてPostScript,~pdfを生成した場合,\.{pdflast\{x,y\}pos}の原点は
+ ページの左下隅から左・上方向にそれぞれ$1\,\mathrm{in}-1\,\mathrm{truein}$%
+ 移動したところになる
+ \footnote{これは\hologo{pdfTeX}のdviモードや\hologo{XeTeX}と同じ挙動である.}.
\end{itemize}
\csitem[\.{pdfcreationdate}]
エンジン起動時の時刻を,\texttt{\pdfcreationdate}の形式で表した文字列に展開する.
- これは\Pkg{standalone}パッケージを\epTeX で扱うために2013/06/05に実装されたプリミティブであるが,
- 現在時刻の「秒」まで得るためにも使用できる(\TeX 82では分単位でしか取得できない).
-
+ 末尾に|+09'00'|などと表示されるのはローカルのタイムゾーンであるが,
+ 例えば|SOURCE_DATE_EPOCH=1000000000|のように環境変数を設定すると
+ |D:20010909014640Z|のようにタイムゾーンは|Z|と表示される.
+ % [TODO] |FORCE_SOURCE_DATE|が0か1かは関係する?
+ % https://tug.org/pipermail/tex-live/2018-November/042575.html
+
\epTeX においてプリミティブを実装した当初は「最初にこのプリミティブが実行された時刻を…」と
していたが,\epTeX~161030から\hologo{pdfTeX}と同じ挙動に修正した.
+ これは\Pkg{standalone}パッケージを\epTeX で扱うために2013/06/05に実装されたプリミティブであるが,
+ 現在時刻の「秒」まで得るためにも使用できる(\TeX 82では分単位でしか取得できない).
+
\csitem[\.{pdffilemoddate} <filename>, \.{pdffilesize} <filename>]
それぞれ<filename>の更新時刻(\.{pdfcreationdate}と同じ形式)と
ファイルサイズを表す文字列に展開する.
@@ -696,6 +646,13 @@ delimiter codeを取得しようとしても,現時点のパッチでは,う
しかし\cite{expanded1}をきっかけに,
\hologo{pdfTeX}, \epTeX, \hologo{XeTeX}で一斉に実装された.
\epTeX~180518以降で利用可能である.
+
+\ifnum\epTeXversion>190131 %%%%% TL2019-hack
+ \csitem[\.{ifincsname}]
+ \texttt{\.{csname}~...~\.{endcsname}}内で評価されたちょうどその時に真となる.
+ \LaTeX~2019-10-01で行われる変更(\cite{latex95,tjb83})で必要になったために
+ \epTeX~190709で導入された.
+\fi %%%%% TL2019
\end{cslist}
\section{バージョン番号}
@@ -790,7 +747,7 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
となり,見た目では同じ「fi」が\.{lastnodechar}実行時の「最後のノード」であるかのように見えても,
それが合字の場合(左側)では\.{lastnodechar}の実行結果は最後の構成要素「i」のコード番号105となる.
-\begin{curve}
+\begin{dangerous}
「|これは,|」とソース中に入力したときの
ノードの状態を\.{showlists}で調べてみると次のようになっており,
本当に一番最後のノードはJFMによって挿入される二分空きの空白
@@ -807,7 +764,7 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\end{verbatim}
しかし,数段落上の説明の通り,\.{lastnodechar}は\pTeX の和文処理によって自動的に挿入された
これらJFM由来の空白を無視する.
-\end{curve}
+\end{dangerous}
「最後のノード」を見ているので,
\begin{verbatim}
@@ -919,6 +876,8 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
現在読み込んでいるファイルの文字コードを<encoding>に変更する.
実際に変更されるのは「次の行」であり,また現在のファイルからさらに\.{input}等で
読まれたファイルには効力を及ぼさない.
+ <encoding>の末尾は,空白トークンや展開不能トークンによって区切られる.
+ % [TODO] これで合っていますか? -- aminophen
<encoding>の値は,基本的には\pTeX の\texttt{-kanji}オプションで指定できる値
(\texttt{euc}, \texttt{sjis}, \texttt{jis}, \texttt{utf8})である.
@@ -1033,25 +992,33 @@ $3$\,sp)だが,どこか気になるところである.
documentation for the $\it\Omega$ system}, 1999.\\
|$TEXMFDIST/doc/omega/base/doc-1.8.tex|
\bibitem{pdftexman} H\`an Th\'{\^e} Th\`anh et al. \textit{The
- \hologo{pdfTeX}\ user manual}, 2015.\\
- |$TEXMFDIST/doc/pdftex/manual/pdftex-a.pdf|
-\bibitem{l2e26}
- The \LaTeX3 Project Team, \textit{\LaTeX\ News Issue 26}, 2017.\\
- |$TEXMFDIST/source/latex/base/ltnews26.tex|, \\
- \url{https://www.latex-project.org/news/latex2e-news/ltnews26.pdf}.
-\bibitem{tjb28} 北川 弘典,
- 「[ptex] |\inhibitglue|の効力」,2017/09/20.\\
- \url{https://github.com/texjporg/tex-jp-build/issues/28}.
-\bibitem{plt63} Dora TeX,
- 「p 指定の tabular でのセル冒頭の |\relax\par|」,2018/02/19.\\
- \url{https://github.com/texjporg/platex/issues/63}.
+ \hologo{pdfTeX}\ user manual}, 2015.\\
+ |$TEXMFDIST/doc/pdftex/manual/pdftex-a.pdf|
+ \bibitem{l2e26}
+ The \LaTeX3 Project Team, \textit{\LaTeX\ News Issue 26}, 2017.\\
+ |$TEXMFDIST/source/latex/base/ltnews26.tex|, \\
+ \url{https://www.latex-project.org/news/latex2e-news/ltnews26.pdf}.
+ \bibitem{tjb28} 北川 弘典,
+ 「[ptex] |\inhibitglue|の効力」,2017/09/20.\\
+ \url{https://github.com/texjporg/tex-jp-build/issues/28}.
+ \bibitem{plt63} Dora TeX,
+ 「p 指定の tabular でのセル冒頭の |\relax\par|」,2018/02/19.\\
+ \url{https://github.com/texjporg/platex/issues/63}.
\bibitem{expanded1} Joseph Wright,
``[tex-live] Primitive parity, |\expanded| and |\Ucharcat|'',
2018/05/04,\\
\url{http://tug.org/pipermail/tex-live/2018-May/041599.html}
-\bibitem{expanded}
+ \bibitem{expanded}
Joseph Wright, ``A `new' primitive: |\expanded|'', 2018/12/06.\\
\url{https://www.texdev.net/2018/12/06/a-new-primitive-expanded}
+ \bibitem{latex95}
+ Volker-Weissmann, ``Feature Request: Better error messages for non-ASCII symbols in labels.'',
+ 2018/12/03.\\
+ \url{https://github.com/latex3/latex2e/issues/95}
+\ifnum\epTeXversion>190131 %%%%% TL2019-hack
+ \bibitem{tjb83} aminophen,「[e-pTeX] |\ifincsname|」,2019/07/09.\\
+ \url{https://github.com/texjporg/tex-jp-build/issues/83}.
+\fi %%%%% TL2019
\end{thebibliography}
\newpage