summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-09-02 21:42:29 +0000
committerKarl Berry <karl@freefriends.org>2017-09-02 21:42:29 +0000
commit5ec14a45caec6cf280a15720b306cbfd85f45dca (patch)
tree599614fa84b6442189832260f28479abcde4c1e0
parentdadcd91ebbd36582ed905c008bcf90b8f3a6c551 (diff)
ifxptex (2sep17)
git-svn-id: svn://tug.org/texlive/trunk@45195 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/ifxptex/README.txt16
-rw-r--r--Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.pdfbin0 -> 196395 bytes
-rw-r--r--Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.tex197
-rw-r--r--Master/texmf-dist/tex/generic/ifxptex/ifxptex.sty109
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-langjapanese.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/ifxptex.tlpsrc0
7 files changed, 324 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/ifxptex/README.txt b/Master/texmf-dist/doc/generic/ifxptex/README.txt
new file mode 100644
index 00000000000..93962fa6dbe
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/ifxptex/README.txt
@@ -0,0 +1,16 @@
+
+
+The ifxptex package --- Detect pTeX and its derivatives
+
+CTAN Homepage: https://ctan.org/pkg/ifxptex
+
+Repository: https://github.com/Man-Ting-Fang/ifxptex
+
+Version: 2017-09-02 v0.1a
+
+Copyright 2017 Yue ZHANG
+
+License: Knuth License (https://ctan.org/license/knuth)
+
+This package provides commands for detecting pTeX and its derivatives (e-pTeX,
+upTeX, e-upTeX, and ApTeX). Both LaTeX and plain TeX are supported.
diff --git a/Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.pdf b/Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.pdf
new file mode 100644
index 00000000000..e52a3d071d9
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.tex b/Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.tex
new file mode 100644
index 00000000000..239f09c4e1f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.tex
@@ -0,0 +1,197 @@
+
+
+% ifxptex-doc.tex
+
+% !TeX encoding = UTF-8
+% !TeX program = pdfLaTeX
+
+\RequirePackage{fix-cm}
+
+\documentclass[a4paper]{article}
+
+\usepackage{amsfonts}
+\usepackage[OT1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[UKenglish]{babel}
+\usepackage[babel]{microtype}
+\usepackage{etoolbox}
+\usepackage{amstext}
+\usepackage{booktabs}
+
+\AtBeginEnvironment{verbatim}{\microtypesetup{activate=false}}
+
+\newcommand\NormalSans{\normalfont\sffamily}
+\newcommand\pkg[1]{{\protect\NormalSans#1}}
+
+\newcommand\pTeX{p\kern-0.15em\TeX}
+\newcommand\e{\ensuremath{\varepsilon}}
+\newcommand\eTeX{\e-\TeX}
+\newcommand\epTeX{\e-\pTeX}
+\newcommand\upTeX{u\pTeX}
+\newcommand\eupTeX{\e-\upTeX}
+\newcommand\ApTeX{A\kern-0.1em\pTeX}
+\newcommand\dpx{DVIPDFM\ensuremath{x}}
+\newcommand\FooTeX{Foo\kern-0.1em\TeX}
+
+\newcommand\yes{\checkmark}
+\newcommand\UNI{(Unicode)}
+\newcommand\uni{{\footnotesize\UNI}}
+
+\begin{document}
+
+\title{The \pkg{ifxptex} package%
+ \thanks{CTAN Homepage: \texttt{https://ctan.org/pkg/ifxptex}}
+ \thanks{Repository: \texttt{https://github.com/Man-Ting-Fang/ifxptex}}}
+\author{Yue \textsc{Zhang}}
+\date{2017-09-02\quad v0.1a}
+
+\maketitle
+
+\begin{abstract}
+This package provides commands for detecting \pTeX\ and its derivatives (\epTeX,
+\upTeX, \eupTeX, and \ApTeX).
+\end{abstract}
+
+\section{Introduction}
+
+\pTeX\ is an extension of \TeX. It has several derivatives:
+\begin{itemize}
+\item \epTeX: \( \text{\pTeX} + \text{\eTeX} + \cdots \)
+\item \upTeX: \( \text{\pTeX} + \text{native Unicode support} + \cdots \)
+\item \eupTeX: \( \text{\epTeX} + \text{\upTeX} \)
+\item \ApTeX:\footnote{Full name: Asiatic \pTeX; synonym: \pTeX-ng; obsolete
+ names: Asian \pTeX, toua-\pTeX, toua-\TeX, toua\TeX, \ldots}
+ \( \text{\upTeX} + \text{\eTeX} + \cdots \)
+\end{itemize}
+Table \ref{tab:cmds} shows the command line commands for invoking them.%
+\footnote{Old implementations and other \TeX\ formats are not taken into
+consideration.}
+\vskip-10pt\relax
+\begin{table}[ht]\centering
+\caption{Commands for invoking *\pTeX}
+\label{tab:cmds}
+\medskip
+\begin{tabular}{cccc}
+\toprule
+ & \multicolumn{2}{c}{Command} & \\
+ \cmidrule(lr){2-3}
+Engine & Plain \TeX & \LaTeX & Output format(s)\footnotemark \\
+\midrule
+\pTeX & \verb|ptex| & n/a & DVI (extended) \\
+\epTeX & \verb|eptex| & \verb|platex| & DVI (extended) \\
+\upTeX & \verb|uptex| & n/a & DVI (extended) \\
+\eupTeX & \verb|euptex| & \verb|uplatex| & DVI (extended) \\
+\ApTeX & \verb|ptex-ng| & \verb|platex-ng| & DVI (extended) and PDF \\
+\bottomrule
+\end{tabular}
+\end{table}
+\footnotetext{DVI files produced by *\pTeX\ can be converted to PDF files by
+\dpx, or some scripts for convenience (also use \dpx\ internally), but this
+subject is outside the scope of this document. (Note that \ApTeX\ outputs both
+DVI and PDF files directly.)}
+\noindent Both \LaTeX3 and the \pkg{ifptex} package (and its alias, the
+\pkg{ifuptex} package) have already provided commands for detecting some *\pTeX\
+engines. However, they do not satisfy the author, thus this package is written.
+For compatibility, all user commands provided by this package have an extra
+letter ``\verb|x|'' or ``\verb|X|''.
+
+\section{Naming conventions}
+
+There are two more naming conventions in this package:
+\begin{itemize}
+\item Suppose that there is a \TeX\ engine called \FooTeX, then both
+ \verb|FooTeX| and \verb|footex| are used in commands' names, but they refer to
+ different things: \verb|FooTeX| stands for the \FooTeX\ engine itself, while
+ \verb|footex| stands for all engines (mostly) compatible with \FooTeX.
+\item Furthermore, \verb|UniFooTeX| and \verb|unifootex| stand respectively for
+ \verb|FooTeX| and \verb|footex| when using Unicode as the internal encoding.
+ (Similarly, ``\UNI'' used in the following tables indicates that the engine
+ should be the corresponding \verb|UniFooTeX|.) (Note that \ApTeX\ always uses
+ Unicode as its internal encoding.)
+\end{itemize}
+
+\section{Usage}
+
+This package has no options, just load it as usual:
+\begin{itemize}
+\item \LaTeX: \verb|\usepackage{ifxptex}|
+\item Plain \TeX: \verb|\input ifxptex.sty|
+\end{itemize}
+
+\subsection{Conditionals}
+
+Table \ref{tab:cond} lists the conditionals provided by this package.
+\vskip-10pt\relax
+\begin{table}[ht]\centering
+\caption{Conditionals provided by this package}
+\label{tab:cond}
+\medskip
+\begin{tabular}{lccccc}
+\toprule
+ & \multicolumn{5}{c}{True when using (one of)} \\
+ \cmidrule(lr){2-6}
+Conditional & \pTeX & \epTeX & \upTeX & \eupTeX & \ApTeX \\
+\midrule
+\verb|\ifxpTeX| & \yes & & & & \\
+\verb|\ifxepTeX| & & \yes & & & \\
+\verb|\ifxupTeX| & & & \yes & & \\
+\verb|\ifxeupTeX| & & & & \yes & \\
+\verb|\ifxApTeX| & & & & & \yes \\
+\verb|\ifxUniupTeX| & & & \yes\ \uni & & \\
+\verb|\ifxUnieupTeX| & & & & \yes\ \uni & \\
+\verb|\ifxptex| & \yes & \yes & \yes & \yes & \yes \\
+\verb|\ifxeptex| & & \yes & & \yes & \\
+\verb|\ifxuptex| & & & \yes & \yes & \yes \\
+\verb|\ifxeuptex| & & & & \yes & \\
+\verb|\ifxaptex| & & & & & \yes \\
+\verb|\ifxuniuptex| & & & \yes\ \uni & \yes\ \uni & \yes \\
+\verb|\ifxunieuptex| & & & & \yes\ \uni & \\
+\bottomrule
+\end{tabular}
+\end{table}
+\noindent These conditionals can be used as usual. For example:
+
+\medskip
+
+\noindent{\ttfamily\hskip2em}%
+\verb|\ifxeupTeX|%
+ \ensuremath{\langle}material for \eupTeX\ensuremath{\rangle}%
+\verb|\else|%
+ \ensuremath{\langle}material not for \eupTeX\ensuremath{\rangle}%
+\verb|\fi|
+
+\subsection{Declarations}
+
+Table \ref{tab:decl} lists the declarations provided by this package. (This
+table is very similar to Table \ref{tab:cond}.)
+\vskip-10pt\relax
+\begin{table}[ht]\centering\advance\tabcolsep by -0.1pt\relax
+\caption{Declarations provided by this package}
+\label{tab:decl}
+\medskip
+\begin{tabular}{lccccc}
+\toprule
+ & \multicolumn{5}{c}{Reports an error if the engine in
+ use is not (one of)} \\
+ \cmidrule(lr){2-6}
+Declaration & \pTeX & \epTeX & \upTeX & \eupTeX & \ApTeX \\
+\midrule
+\verb|\RequireXpTeX| & \yes & & & & \\
+\verb|\RequireXepTeX| & & \yes & & & \\
+\verb|\RequireXupTeX| & & & \yes & & \\
+\verb|\RequireXeupTeX| & & & & \yes & \\
+\verb|\RequireXApTeX| & & & & & \yes \\
+\verb|\RequireXUniupTeX| & & & \yes\ \uni & & \\
+\verb|\RequireXUnieupTeX| & & & & \yes\ \uni & \\
+\verb|\RequireXptex| & \yes & \yes & \yes & \yes & \yes \\
+\verb|\RequireXeptex| & & \yes & & \yes & \\
+\verb|\RequireXuptex| & & & \yes & \yes & \yes \\
+\verb|\RequireXeuptex| & & & & \yes & \\
+\verb|\RequireXaptex| & & & & & \yes \\
+\verb|\RequireXuniuptex| & & & \yes\ \uni & \yes\ \uni & \yes \\
+\verb|\RequireXunieuptex| & & & & \yes\ \uni & \\
+\bottomrule
+\end{tabular}
+\end{table}
+
+\end{document}
diff --git a/Master/texmf-dist/tex/generic/ifxptex/ifxptex.sty b/Master/texmf-dist/tex/generic/ifxptex/ifxptex.sty
new file mode 100644
index 00000000000..7342533f262
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/ifxptex/ifxptex.sty
@@ -0,0 +1,109 @@
+
+
+% ifxptex.sty
+% Copyright 2017 Yue ZHANG
+% License: Knuth License (https://ctan.org/license/knuth)
+
+\csname ENDINPUTIFXPTEXDOTSTY\endcsname
+
+\let\ENDINPUTIFXPTEXDOTSTY=\endinput
+
+\begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \else
+ \ProvidesPackage{ifxptex}[2017/09/02 v0.1a Detect pTeX and its derivatives]%
+ \fi
+
+\edef\IFXPTEXDOTSTYRESTORECATCODE{\catcode`\noexpand\@=\the\catcode`\@\relax}
+
+\catcode`\@=11\relax
+
+\def\ifxptex@ifprimitive#1{%
+ \begingroup
+ \edef\ifxptex@temp@meaning{\meaning#1}%
+ \edef\ifxptex@temp@string{\string#1}%
+ \expandafter
+ \endgroup
+ \ifx\ifxptex@temp@meaning\ifxptex@temp@string}
+
+\newif\ifxptex
+\newif\ifxeptex
+\newif\ifxuptex
+\newif\ifxeuptex
+\newif\ifxaptex
+
+\ifxptex@ifprimitive \tate \xptextrue \fi
+\ifxptex@ifprimitive \epTeXinputencoding \xeptextrue \fi
+\ifxptex@ifprimitive \ucs \xuptextrue \fi
+\ifxptex@ifprimitive \ngbanner \xaptextrue \fi
+
+\newif\ifxpTeX
+\newif\ifxepTeX
+\newif\ifxupTeX
+\newif\ifxeupTeX
+\newif\ifxApTeX
+
+\ifxptex
+ \ifxaptex
+ \xApTeXtrue
+ \else
+ \ifxuptex
+ \ifxeptex
+ \xeupTeXtrue\xeuptextrue
+ \else
+ \xupTeXtrue
+ \fi
+ \else
+ \ifxeptex
+ \xepTeXtrue
+ \else
+ \xpTeXtrue
+ \fi
+ \fi
+ \fi
+\fi
+
+\newif\ifxuniuptex
+\newif\ifxunieuptex
+
+\newif\ifxUniupTeX
+\newif\ifxUnieupTeX
+
+\ifxuptex \ifnum\ucs"3000="3000\relax \xuniuptextrue \fi \fi
+\ifxeuptex \ifnum\ucs"3000="3000\relax \xunieuptextrue \fi \fi
+
+\ifxupTeX \ifnum\ucs"3000="3000\relax \xUniupTeXtrue \fi \fi
+\ifxeupTeX \ifnum\ucs"3000="3000\relax \xUnieupTeXtrue \fi \fi
+
+\def\ifxptex@newrequiretex@error#1{% can be easily redefined
+ \errmessage{#1 is required}}
+
+\def\ifxptex@newrequiretex#1#2{%
+ \expandafter\def\csname RequireX#1\endcsname{%
+ \relax
+ \csname ifx#1\endcsname
+ \else
+ \ifxptex@newrequiretex@error{#2}%
+ \fi}}
+
+\ifxptex@newrequiretex{ptex}{pTeX / e-pTeX / upTeX / e-upTeX / ApTeX}
+\ifxptex@newrequiretex{eptex}{e-pTeX / e-upTeX}
+\ifxptex@newrequiretex{uptex}{upTeX / e-upTeX / ApTeX}
+\ifxptex@newrequiretex{euptex}{e-upTeX}
+\ifxptex@newrequiretex{aptex}{ApTeX}
+
+\ifxptex@newrequiretex{pTeX}{pTeX}
+\ifxptex@newrequiretex{epTeX}{e-pTeX}
+\ifxptex@newrequiretex{upTeX}{upTeX}
+\ifxptex@newrequiretex{eupTeX}{e-upTeX}
+\ifxptex@newrequiretex{ApTeX}{ApTeX}
+
+\ifxptex@newrequiretex{uniuptex}{Unicode upTeX / Unicode e-upTeX / ApTeX}
+\ifxptex@newrequiretex{unieuptex}{Unicode e-upTeX}
+
+\ifxptex@newrequiretex{UniupTeX}{Unicode upTeX}
+\ifxptex@newrequiretex{UnieupTeX}{Unicode e-upTeX}
+
+\IFXPTEXDOTSTYRESTORECATCODE
+
+\endinput
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 69dae16516e..8484a19b259 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -323,7 +323,7 @@ my @TLP_working = qw(
hyphenat hyphenex hyplain
ibycus-babel ibygrk icsv idxcmds idxlayout ieeepes ietfbibs
ifetex iffont ifmslide ifmtarg ifnextok ifoddpage ifplatform ifptex ifsym
- iftex ifthenx ifxetex
+ iftex ifthenx ifxetex ifxptex
iitem ijmart ijqc ijsra
imac image-gallery imakeidx impatient impatient-cn impatient-fr
imfellenglish impnattypo import imsproc imtekda
diff --git a/Master/tlpkg/tlpsrc/collection-langjapanese.tlpsrc b/Master/tlpkg/tlpsrc/collection-langjapanese.tlpsrc
index bdde413c2c7..d529d73e89d 100644
--- a/Master/tlpkg/tlpsrc/collection-langjapanese.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-langjapanese.tlpsrc
@@ -13,6 +13,7 @@ depend bxjscls
depend bxorigcapt
depend convbkmk
depend ifptex
+depend ifxptex
depend ipaex
depend japanese-otf
depend japanese-otf-uptex
diff --git a/Master/tlpkg/tlpsrc/ifxptex.tlpsrc b/Master/tlpkg/tlpsrc/ifxptex.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/ifxptex.tlpsrc