A LATEX mark-up for tactics is defined here by its conversion to a sequence of UCS characters.
Spaces, tabs and newlines are soft space: they separate tokens of the mark-up, without generating any space characters to be lexed. Braces are also soft space, affecting the interpretation of neighbouring mark-up (unless escaped with \).
The following mark-up is converted to spaces to be lexed.
LATEX command | Rendering | Z character |
~ | interword space | SPACE |
\, | thin space | SPACE |
\: | medium space | SPACE |
\; | thick space | SPACE |
\(space) | interword space | SPACE |
\\ | newline | NLCHAR |
\t1 | tab stop 1 | SPACE |
\t2 | tab stop 2 | SPACE |
\t3 | tab stop 3 | SPACE |
\t4 | tab stop 4 | SPACE |
\t5 | tab stop 5 | SPACE |
\t6 | tab stop 6 | SPACE |
\t7 | tab stop 7 | SPACE |
\t8 | tab stop 8 | SPACE |
\t9 | tab stop 9 | SPACE |
\also | small vertical space | NLCHAR |
\znewpage | new page | NLCHAR |
A % character in the mark-up introduces a comment: all text from that % to the end of the line, and any following spaces and tabs at the beginning of the next line, are ignored.
Each LATEXcommand needs to have a mark-up directive to define its conversion to a sequence of Z characters. The conversions defined by these mark-up directives should be consistent with the rendering produced by the LATEX typesetting tool.
The conversion of a name to a specific UCS character is defined by a mark-up directive like the following.
%%Topchar \lor U+2228
If a name is to be converted to more than one character, a directive like the following is used.
%%Topword \strapp {+}{+}
The conversions of all such names include a SPACE character before and after them.
Most tactic keywords are ASCII and are marked-up as themselves. Those that are not are marked-up using names defined by the mark-up directives given below.
Z character | troff mark-up |
![]() | %%Topchar \lor U+2228 |
||lel | %%Topword \parlel {|{|}} |
++ | %%Topword \strapp {+{+}} |
The character is marked up as '\endpat'
when it marks the end of a pattern,
but as '\spot' otherwise.
Mathematical representation
[Formals] Hyp ![]() |
Z characters
name ==
[Formals] Hyp ? Concs
Latex mark-up
\begin{theorem}{name} [Formals] Hyp \thrm Concs \end{theorem}