diff options
author | Karl Berry <karl@freefriends.org> | 2017-09-02 21:42:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-09-02 21:42:29 +0000 |
commit | 5ec14a45caec6cf280a15720b306cbfd85f45dca (patch) | |
tree | 599614fa84b6442189832260f28479abcde4c1e0 /Master | |
parent | dadcd91ebbd36582ed905c008bcf90b8f3a6c551 (diff) |
ifxptex (2sep17)
git-svn-id: svn://tug.org/texlive/trunk@45195 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/generic/ifxptex/README.txt | 16 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.pdf | bin | 0 -> 196395 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.tex | 197 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/ifxptex/ifxptex.sty | 109 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-langjapanese.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/ifxptex.tlpsrc | 0 |
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 Binary files differnew file mode 100644 index 00000000000..e52a3d071d9 --- /dev/null +++ b/Master/texmf-dist/doc/generic/ifxptex/ifxptex-doc.pdf 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 |