I'm using LaTeX for my day-to-day needs, but in order to avoid cargo-cult document creation, I'm trying to gain a better understanding of the TeX engine itself. As part of this I'm experimenting with TeX (i.e. tex, and as opposed to LaTeX).
Now tex actually loads plain TeX. That's fine, but sometimes I find myself wondering if a command (I'm using the term in a loose sense here) is a primitive or a macro defined by plain TeX, so what I'd like to know is whether there is a way to run TeX that does not load plain.fmt.
Having found this question I assumed that this could be done by using virtex rather than tex, but in my MiKTeX installation virtex also loads plain.fmt:
$ virtex
This is TeX, Version 3.14159265 (MiKTeX 2.9.7250 64-bit)
**\relax
*\show\fmtname
> \fmtname=macro:
->plain.
<*> \show\fmtname
? x
No pages of output.
Transcript written on texput.log.
$
So, am I doing something wrong (misunderstanding the exact purpose of virtex, perhaps), or is this a bug in MiKTeX? And what can I do to tinker around with ,,primitive`` TeX, rather than (or in addition to) plain TeX?
tex --inito start up initex with no format preloaded, you could then use that as is or \dump a "empty" format to use with a normal tex (but I dont l know how miktex is configured) texlive doesn't distribute virtex anymore either. – David Carlisle Jan 11 '20 at 11:21{and}and setting an output routine and some non zero page size will make experiments a lot less painfull – David Carlisle Jan 11 '20 at 11:24tex --iniworks in MiKTeX, as doesinitex. I was under the (perhaps mistaken) impression that INITEX was only for creating format dumps and could not be used to produce documents at all. – chsk Jan 11 '20 at 11:44\show\cs; in case of a primitive, TeX would answer with\cs=\cs. Note that plain TeX redefines no primitive (this is not the case of LaTeX). – egreg Jan 12 '20 at 10:14