# What is the M4-based text format used in the TUG Interviews book?

The files used to prepare the TUG interviews book, Tex People: Interviews from the world of Tex, contains examples such as http://dw2.tug.org/ivbook/trunk/levien.m4, which begins

```dnl \$Id: rahtz.m4 265 2009-05-17 13:40:50Z dwalden \$
define([[_date]],[[2009-05-16]])dnl
define([[_intervieweename]],[[Raph Levien]])dnl
define([[_intervieweeinitials]],[[RL[[]]_tinyspace()]])dnl
dnl
define([[_interviewername]],[[Karl Berry]])dnl
define([[_interviewerinitials]],[[KB]])dnl
dnl
define([[_interviewerbname]],[[Dave Crossland]])dnl
define([[_interviewerbinitials]],[[DC]])dnl

_header(levien.jpg,[[Raph Levien is a programmer with a special interest
in graphics applied to type.  He is also a typeface designer.  He holds
several patents and is a past maintainer of Ghostscript.]])
```

and ends:

```_texonly(\bigskip)
_par _noindent Last, this is a screenshot of _link(http://fontforge.sf.net,
FontForge), which I used to put all the shapes together into a font, and
produce _Tone and OpenType font files.

_texonly(\medskip)
_noindent
_imageonly(levien-fontforge.png,width=.86\hsize)

_quotationstop

_footer
```

It is reminiscent of some hybrid of Gnu M4 and Texinfo — what is it?

-

It's indeed GNU m4. One reason to choose it was to produce both HTML and LaTeX output:

• texdefs.m4 is the definition file for TeX output

• htmldefs.m4 is the definition file for TeX output

You can read about that, also about technical m4 details, in: TeX People: The TUG interviews project and book.

-
That's an excellent link. It seems somehow wrong to use a macro language to preprocess a macro language... –  Charles Stewart Dec 9 '10 at 23:06