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.tex134
1 files changed, 104 insertions, 30 deletions
diff --git a/info/ptex-manual/eptexdoc.tex b/info/ptex-manual/eptexdoc.tex
index e89ece5bcf..caa69a5297 100644
--- a/info/ptex-manual/eptexdoc.tex
+++ b/info/ptex-manual/eptexdoc.tex
@@ -27,16 +27,6 @@
\MakeShortVerb*{|}
%%%%%%%%%%%%%%%%
-% logos
-\newcommand{\OMEGA}{\texorpdfstring{$\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\TeXXeT{\TeX-\reflectbox{\bfseries\TeX-}}
-
\makeatletter
{\lccode`\!=`\_
\lowercase{%
@@ -484,7 +474,7 @@ delimiter codeについても同様である.
\footnote{%
現在ではさらに状況が動き,
2021年以降は,\LaTeXe 自体が本節で述べたプリミティブを
- 要求する予定である(\cite{l2e31}).
+ 要求している(\cite{l2e31}).
}などからあり,
ほとんど\hologo{pdfTeX}における実装をそのまま真似する形で実装している.
@@ -715,17 +705,18 @@ min10フォントメトリックで「ちょっと」を組むと「ょっ」の
\csitem[\.{lastnodechar} (read-only integer)]
現在構築中のリストの「最後のノード」が文字由来であれば,
そのコード番号(内部コード)を内部整数として返す.
+ リストが空の場合,また
+ 「最後のノード」が文字を表すものでなかった場合は,$-1$が返る.
上記「最後のノード」では,\pTeX によって自動挿入される
\begin{itemize}
- \item JFMによって入るグルー
+ \item メトリック由来の空白(JFMグルー,カーン)
\item 行末禁則処理のために挿入されるペナルティ
\item 欧文文字のベースライン補正用のノード
\end{itemize}
- は無視される.また,「最後のノード」が欧文文字のリガチャであった場合は,
- リガチャそれ自身のコード番号ではなく,
- 最後の構成要素の文字のコード番号を返す.
- 「最後のノード」が文字を表すものでなかった場合は,$-1$が返る.
+ は無視される.また,現在の実装では「最後のノード」が欧文文字のリガチャで
+ あった場合は,リガチャそれ自身のコード番号ではなく,
+ 最後の構成要素の文字のコード番号を返すようにしている.
\end{cslist}
例えば,\.{lastnodechar}を使って
@@ -751,8 +742,9 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\begin{quote}
abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\end{quote}
-となり,見た目では同じ「fi」が\.{lastnodechar}実行時の「最後のノード」であるかのように見えても,
-それが合字の場合(左側)では\.{lastnodechar}の実行結果は最後の構成要素「i」のコード番号105となる.
+となり,見た目では同じ「fi」が\.{lastnodechar}実行時の「最後のノード」で
+あるかのように見えても,それが合字の場合(左側)では\.{lastnodechar}の
+実行結果は最後の構成要素「i」のコード番号105となる.
\begin{dangerous}
「|これは,|」とソース中に入力したときの
@@ -769,8 +761,8 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\JY1/hmc/m/it/10 ,
\glue(refer from jfm) 4.62341 minus 4.62341
\end{verbatim}
- しかし,数段落上の説明の通り,\.{lastnodechar}は\pTeX の和文処理によって自動的に挿入された
- これらJFM由来の空白を無視する.
+ しかし,数段落上の説明の通り,\.{lastnodechar}は\pTeX の和文処理によって
+ 自動的に挿入されたこれらJFM由来の空白を無視する.
\end{dangerous}
「最後のノード」を見ているので,
@@ -784,23 +776,60 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\end{quote}
と「,」の内部コードが取得される.
+
+%%%
+\ifnum\epTeXversion>220213
+\subsection{\.{lastnodefont}プリミティブ}
+\.{lastnodechar}を補完するものとして,\epTeX~220214 (\TeX~Live 2022)で実装された.
+\begin{cslist}
+ \csitem[\.{lastnodefont} (read-only font identifier)]
+ 現在構築中のリストの「最後のノード」が文字由来であれば,
+ そのフォント(内部識別子)を返す.
+ リストが空の場合,また
+ 「最後のノード」が文字を表すものでなかった場合は,|\nullfont|が返る.
+
+ ここでも「最後のノード」は\.{lastnodechar}と同様で
+ \begin{itemize}
+ \item メトリック由来の空白(JFMグルー,カーン)
+ \item 行末禁則処理のために挿入されるペナルティ
+ \item 欧文文字のベースライン補正用のノード
+ \end{itemize}
+ は無視される.
+\end{cslist}
+
+\TeX~Live 2020の\pTeX~(p3.8.3)で追加された\.{ifjfont}, \.{iftfont}と
+組み合わせれば,「最後のノード」が和文文字かどうかを判別できる
+\footnote{\epTeX では「\.{lastnodechar}が256以上かどうか」でも判別できるが,
+\eupTeX では文字コード0--255の和文文字ノードも存在しうることに注意.}.
+\fi
+%%%
+
+
\subsection{\.{lastnodesubtype}プリミティブ}
-\cite{tjb28,plt63}などの議論で,「最後のグルーがJFMグルーだけ\.{unskip}する」処理の必要性が
-唱えられてきた.\epTeX にはもともと最後のノードの種別を返す\.{lastnodetype}プリミティブが
+\cite{tjb28,plt63}などの議論で,「最後のグルーがJFMグルーの場合のみ
+\.{unskip}する」処理の必要性が唱えられてきた.
+\eTeX にはもともと最後のノードの種別を返す\.{lastnodetype}プリミティブが
あったが,これでは最後のノードがグルーであるかしかわからない.
-そのため,\epTeX~180226で\.{lastnodesubtype}プリミティブを追加した.
+そのため,\epTeX~180226で\.{lastnodetype}を補完するものとして,
+\.{lastnodesubtype}プリミティブを追加した.
\begin{cslist}
\csitem[\.{lastnodesubtype} (read-only integer)]
- 現在構築中のリストの「最後のノード」(\.{lastnodechar}プリミティブと同様)の
- subtype値を内部整数として返す.
+ 現在構築中のリストの最後のノードのsubtype値を内部整数として返す.
+ ここでの最後のノードは\.{lastnodetype}と同様である.
+ すなわち,\.{lastnodechar}や\.{lastnodefont}とは
\begin{itemize}
- \item 「最後のノード」が文字ノードのときは0が返る.
+ \item メトリック由来の空白(JFMグルー,カーン)
+ \item 行末禁則処理のために挿入されるペナルティ
+ \end{itemize}
+ も対象とするという点で異なる.
+ \begin{itemize}
+ \item 最後のノードが文字ノードのときは0が返る.
\item 現在構築中のリストが空のときは$-1$が返る.
%%%
\ifnum\epTeXversion>210629
- \item \epTeX~210701以降では,数式内のノードについてはsubtype値そのままではほとんど意味がないので,
- 次ページの表の値を返す.
+ \item \epTeX~210701以降では,数式内のノードについてはsubtype値
+ そのままではほとんど意味がないので,次ページの表の値を返す.
\fi
%%%
\end{itemize}
@@ -915,7 +944,8 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\footnotetext{\.{displaystyle}, \.{textstyle}, \.{scriptstyle}, \.{scriptscriptstyle}.}
なお,\verb+\left...[\middle]...\right+の直後で\.{lastnodesubtype}を使用しても,
\verb+\left...[\middle]...\right+全体が一つの内部数式(\.{mathinner})となるので,
- \.{right}に「対応する」\.{lastnodesubtype}の値は取得できない.\.{over}プリミティブなどによる分数についても類似の事情がある.
+ \.{right}に「対応する」\.{lastnodesubtype}の値は取得できない.
+ \.{over}プリミティブなどによる分数についても類似の事情がある.
\end{description}
\fi
%%%
@@ -1024,6 +1054,8 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\section{Unicode \TeX 由来の機能}
+
+\subsection{\.{Uchar}, \.{Ucharcat}プリミティブ}
\hologo{XeTeX}, \hologo{LuaTeX}には,文字コード<character code>を引数にとり
\emph{文字トークン}に展開される「\.{Uchar} <character code>」というプリミティブが存在する
\footnote{\.{char}は展開不能プリミティブであることに注意.}.また\hologo{XeTeX}には,
@@ -1108,6 +1140,25 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\end{dangerous}
+%%%
+\ifdefined\suppresslongerror %% e-pTeX 211207
+\subsection{エラー抑制(\.{suppress...error})}
+\hologo{LuaTeX}に実装されているエラー発生を抑止するプリミティブたちのうち
+いくつかを,\epTeX~211207で追加した.
+% 説明文は https://github.com/texjporg/tex-jp-build/pull/127 より
+\begin{cslist}
+ \csitem[\.{suppresslongerror} (integer)]
+ この内部整数が非ゼロのとき,\.{long}なしで定義されたマクロの引数に\.{par}が入った
+ 場合の \texttt{! Paragraph ended before \.{...} was complete.} というエラーを抑止する.
+ \csitem[\.{suppressoutererror} (integer)]
+ この内部整数が非ゼロのとき,\.{outer}由来のエラーを抑止する.
+ \csitem[\.{suppressmathparerror} (integer)]
+ この内部整数が非ゼロのとき,数式モード中の\.{par}に由来するエラーを抑止する.
+\end{cslist}
+\fi
+%%%
+
+
\section{\TeX~Liveによる拡張}
2021年以降の\epTeX/\eupTeX には,\TeX~Liveチームによって
\hologo{pdfTeX}及び\hologo{XeTeX}と共通の
@@ -1116,6 +1167,10 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
% * tracingstacklevels.ch (add |\tracingstacklevels| since TL2021)
% * partokenname.ch (add |\tracingstacklevels| since TL2022)
% の change file は e-(u)pTeX のみならず,素の\pTeX にも適用されている.
+% 残りの
+% * char-warning-eptex.ch (enhance |\tracinglostchars| since TL2021)
+% * showstream.ch (add |\showstream| since TL2022)
+% の change file は e-TeX からの変更であるため,素の\pTeX には適用されない.
\subsection{デバッグ機能(\.{tracing...})}
\begin{cslist}
@@ -1222,6 +1277,25 @@ abcfi\the\lastnodechar, abc\char"1C \the\lastnodechar
\fi
%%%
+%%%
+\ifdefined\showstream %% 2021-11-07
+\subsection{\.{show}系コマンドの出力制御}
+\begin{cslist}
+ \csitem[\.{showstream} (integer)]
+ 通常,\.{show}系コマンド\footnote{具体的には
+ \TeX82の\.{show}, \.{showbox}, \.{showlists}, \.{showthe}と
+ \eTeX の\.{showgroups}, \.{showifs}, \.{showtokens}が該当.
+ さらに\pTeX 系列では\.{showmode}も加わる.}は
+ エラー発生と同様に一旦停止し,種々の情報をターミナルやログファイルに出力する.
+ しかし,内部整数\.{showstream}の値をオープンな出力ストリーム(\.{openout}で
+ オープンされる)に一致させると,種々の情報の出力先がリダイレクトされ,
+ ターミナルやログファイルには出力せず一旦停止もしない.
+ 既定値は$-1$であり,これはファイルと一致しないため\TeX82と同じ動作となる.
+ 2021-11-07のコミットr60992(\TeX~Liveでは2022年以降)で追加された.
+\end{cslist}
+\fi
+%%%
+
\begin{comment}
\section{互換性}
@@ -1362,7 +1436,7 @@ $3$\,sp)だが,どこか気になるところである.
\url{https://github.com/latex3/latex2e/issues/95}
\bibitem{tjb81} 北川 弘典,「バイト列と和文文字トークンの区別」,2019/06/08.\\
\url{https://github.com/texjporg/tex-jp-build/issues/81}.
- \bibitem{tjb83} aminophen,「[e-pTeX] |\ifincsname|」,2019/07/09.\\
+ \bibitem{tjb83} aminophen,「[e-pTeX] \.{ifincsname}」,2019/07/09.\\
\url{https://github.com/texjporg/tex-jp-build/issues/83}.
\bibitem{tjb94} aminophen,「e(u)ptex: add |\current(x)spacingmode|, |\currentcjktoken|」,%
2019/10/28.\\