[Tex/LaTex] Globally redefining 1 pt to 1/72 in (PostScript point) and other similar changes

tex-coreunit-of-measure

Introduction

TeX point (1 pt in TeX) equals 1/72.27 in (= 2540/7227 mm ≈ 0.35145980351 mm). Quoting part of Traditional American point system section from Wikipedia's Point (typography) entry:

In 1886, the Fifteenth Meeting of the Type Founders Association of the United States approved the so-called Johnson pica be adopted as the official standard. This makes the traditional American printer’s foot measure 11.952 inches (303.6 mm), or 303.5808 mm exactly, giving a point size of approximately 1⁄72.27 of an inch, or 0.3515 mm.

This is the size of the point in the TeX computer typesetting system by Donald Knuth, which predates PostScript slightly. Thus the latter unit is sometimes called the TeX point.

PostScript point (1 bp in TeX) equals 1/72 in (= 127/360 mm = 0.352(7) mm). It is commonly used unit in DTP nowadays.

Didot point (1 dd in TeX, where it equals 1238/1157pt = 3144520/8361639 mm ≈ 0.37606502744 mm) is other unit that AFAIK doesn't have one (used everywhere) definition. Historically it is 1/864 of pied de roi (the king's foot; French Royal foot, defined in 1799 as 9000/27706 m), i.e. 125/332472 m = 15625/41559 mm (= 3^(-1)×5^6×7^(-1)×1979^(-1) mm), but in practice becoming 0.3759715104 mm (i.e. slightly more). Other definitions:

  • 1/72 of a French Royal inch (27.07 mm) = 2707/7200 mm = 0.37597(2) mm,
  • definition used by Hermann Berthold and others: 0.376 mm,
  • defined in 1879: 1/2660 m = 0.(375939849624060150) mm,
  • German Didot point defined in 1954: 0.376065 mm,
  • defined in 1973 by EU: 3/8 mm = 0.375 mm.

Beyond points there are:

  • pica (1 pc in TeX, where it equals 12pt) = 1/72 ft = 1/6 in = 12 points,
  • cicero (1 cc in TeX, where it equals 12dd), also called French pica = 1/72 FRft = 1/6 FRin = 12 Didot points,
  • and other point-related units, thankfully not available in TeX.

As you can see, subject of measurement in typography is not that easy. I only tried to give some basic information.

Question

Is it possible to redefine globally in TeX basic units of measure like pt (e.g. as 1/72in) and dd (e.g. as 0.376mm)?
If yes, can you show how and explain why such fixes are (usually?) not performed in Europe? Maybe they deserve their own package?

Supplementary question

Where is pt (and other units available in TeX) hardcoded within TeX or other parts of TeX toolchain?

(I tried to quickly grep \<pt\> in svn://tug.org/texlive/trunk/Build/source/texk/web2c, but somehow did not recognized sought part in results.)

Best Answer

The answer is simply: no, you cannot change the meaning of pt, dd, et cetera.

The only unit you can change is the pdftex extension unit px, which can be altered by setting \pdfpxdimen.

The supplementary question: TeX actually calculates in units of 1/65536 'pt'. As a result, the distance pt is never explicitly defined as a physical unit until it is implicitly converted into one at the final output stage. In DVI (either original TeX or pdftex/xetex/luatex in DVI mode), this is not easy to change at all, because the code assumes a one-on-one relationship between its own units and the DVI units.

In pdftex's PDF mode it is somewhat easier because a correction is needed there anyway. You should look at the functions divide_scaled() and round_xn_over_d(), but (of course) you will not need them where they are now, and on the other hand you may need the inverse of those functions in places where they are now not. All in all, this sounds like a mad undertaking to me.

The other units are quite a lot easier: all are declared relative to pt. Search for set_conversion in tex.web, and by adjusting the fractions that are specified there, you can change their behaviour throughout.

Related Question