TeX: To check the engine is pTeX (or its derivatives)
The ifptex package is a counterpart of ifxetex, ifluatex, etc. for the pTeX engine. The ifuptex package is an alises to ifptex provided for backward compatibility.
- TeX format: plain TeX, LaTeX, and INI mode.
- TeX engine: Anything.
- DVI driver (in DVI mode): Anything.
- Dependent packages:
- iftex
In a system compliant to TDS 1.1, move the files as follows:
*.sty
→ $TEXMF/tex/generic/ifptex
And rehash your TEXMF trees if necessary.
This package is distributed under the MIT License.
In plain TeX:
\input ifptex.sty
In LaTeX:
\usepackage{ifptex}
NB: Here “e-TeX-ness” is not considered.
\ifptex
(or\ifpTeX
) [if-token]
Whether the engine is pTeX (including upTeX or pTeX-ng).\ifstrictptex
(or\ifstrictpTeX
) [if-token]
Whether the engine is pTeX but not upTeX or pTeX-ng.\ifuptex
(or\ifupTeX
) [if-token]
Whether the engine is upTeX (including pTeX-ng).\ifstrictuptex
(or\ifstrictupTeX
) [if-token]
Whether the engine is upTeX but not pTeX-ng.\ifnativeuptex
(or\ifnativeupTeX
) [if-token]
Whether the engine is upTeX and its internal encoding is Unicode.\ifptexng
(or\ifpTeXng
) [if-token]
Whether the engine is pTeX-ng.\RequirepTeX
Issues an error if\ifptex
fails.\RequireStrictpTeX
Issues an error if\ifstrictptex
fails.\RequireupTeX
Issues an error if\ifuptex
fails.\RequireStrictupTeX
Issues an error if\ifstrictuptex
fails.\RequireNativeupTeX
Issues an error if\ifnativeuptex
fails.\RequirepTeXng
Issues an error if\ifptexng
fails.\upTeXguessedversion
[mathchardef-token]
The guessed value of upTeX version; given as a 100-folded integer.
NB. On version 1.23 or later, the value is correct.
NB. On a non-upTeX engine, the value is zero.\RequireupTeXAtLeast{<required>}
Issues an error if\upTeXguessedversion
is smaller than the given required value.\RequireNativeupTeXAtLeast{<required>}
Issues an error either if\upTeXguessedversion
is smaller than the given required value or if\ifnativeuptex
fails.
The following functions are for testing whether pLaTeX and/or upLaTeX (in their prevailing meaning) is used. There upLaTeX is not regarded as a kind of pLaTeX.
\ifstrictplatex
[if-token]
Whether pLaTeX is used.\ifstrictuplatex
[if-token]
Whether upLaTeX is used.\ifporuplatex
[if-token]
Whether pLaTeX or upLaTeX is used.\RequireStrictpLaTeX
Issues an error if\ifstrictplatex
fails.\RequireStrictupLaTeX
Issues an error if\ifstrictuplatex
fails.\RequirepOrupLaTeX
Issues an error if\ifporuplatex
fails.\RequireStrictupLaTeXAtLeast{<required>}
Issues an error either if\upTeXguessedversion
is smaller than the given required value or if\ifstrictuplatex
fails.
The ifuptex package does nothing but loading ifptex internally. It is provided for backward compatibility.
In plain TeX:
\input ifuptex.sty
In LaTeX:
\usepackage{ifuptex}
Just the same as the ifptex package.
- Version 2.2c 〈2023/04/08〉
- Add
\RequireStrictupLaTeXAtLeast
.
- Add
- Version 2.2b 〈2023/02/25〉
- Add
\ifporuplatex
and\RequirepOrupLaTeX
.
- Add
- Version 2.2a 〈2023/02/23〉
- Add
\ifstrictplatex
and\ifstrictupltex
, along with theirRequire...
counterparts.
- Add
- Version 2.2 〈2022/04/03〉
- Officialy support
\upTeXguessedversion
. - Add
\Require(Native)upTeXAtLeast
.
- Officialy support
- Version 2.1 〈2021/07/01〉
- Adjust for the future version of pTeX.
- Drop an undocumented feature.
- Version 2.0 〈2019/11/01〉
- Adjust to work better with the new iftex package maintanined
by the LaTeX3 Project.
- Now iftex is loaded inside ifptex.
- Provide always all-lowercase
\if...tex
commands.
- Support for loading in INI mode.
- Adjust to work better with the new iftex package maintanined
by the LaTeX3 Project.
- Version 1.2c 〈2017/10/04〉
- Version 1.2b 〈2017/09/20〉
- Version 1.2a 〈2017/09/15〉
- Version 1.2 〈2017/09/09〉
- Add
\ifstrictupTeX
andRequireStrictupTeX
.
- Add
- Version 1.1 〈2017/05/04〉
- Minor fix.
- Version 1.0 〈2013/04/29〉
- Move to a separate bundle.
- Change the package name to ifptex, and added the test for pTeX (besides upTeX).
- Version 0.2 〈2008/03/14〉
- First public version.
Takayuki YATO (aka. "ZR")
https://github.com/zr-tex8r