diff options
Diffstat (limited to 'info/ptex-manual/eptexdoc.tex')
-rw-r--r-- | info/ptex-manual/eptexdoc.tex | 134 |
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.\\ |