Skip to content

TeX: To check if the engine is pTeX (or its derivatives)

License

Notifications You must be signed in to change notification settings

zr-tex8r/ifptex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ifptex Package Bundle

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.

System Requirements

  • TeX format: plain TeX, LaTeX, and INI mode.
  • TeX engine: Anything.
  • DVI driver (in DVI mode): Anything.
  • Dependent packages:
    • iftex

Installation

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.

License

This package is distributed under the MIT License.

ifptex Package ― Test for pTeX engine

Package Loading

In plain TeX:

\input ifptex.sty

In LaTeX:

\usepackage{ifptex}

Usage

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.

ifuptex Package ― Alias of ifptex

The ifuptex package does nothing but loading ifptex internally. It is provided for backward compatibility.

Package Loading

In plain TeX:

\input ifuptex.sty

In LaTeX:

\usepackage{ifuptex}

Usage

Just the same as the ifptex package.

Revision History

  • Version 2.2c 〈2023/04/08〉
    • Add \RequireStrictupLaTeXAtLeast.
  • Version 2.2b 〈2023/02/25〉
    • Add \ifporuplatex and \RequirepOrupLaTeX.
  • Version 2.2a 〈2023/02/23〉
    • Add \ifstrictplatex and \ifstrictupltex, along with their Require... counterparts.
  • Version 2.2 〈2022/04/03〉
    • Officialy support \upTeXguessedversion.
    • Add \Require(Native)upTeXAtLeast.
  • 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.
  • 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 and RequireStrictupTeX.
  • 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

About

TeX: To check if the engine is pTeX (or its derivatives)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages