[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tlaplus] Embedding TLA+ in LaTeX
I saw that a very similar question was asked about 3 years ago:
https://groups.google.com/g/tlaplus/c/WzXGxFZwWLk/m/kRCkTLmTBAAJ
regarding the effect of hyperref on the compilation of a LaTeX document.
Leslie's reply to Jam's question referred to slightly different commands to what I am using: he
said to use TeX.java rather than TLA.java. I am using tla2tex.TeX rather
than tla2tex.TLA:
java -cp ./tla2tools.jar tla2tex.TeX tlatextest.tex,
as explained at this link,
https://seldoc.eecs.yorku.ca/doku.php/tla/latex,
and indeed the command works well even with the \usepackage{hyperref} command enabled.
The problem for me is at the next step. I use TeXShop routinely and would like to use it for a report that has TLA+ code in it. I also use Overleaf and had the same problem. If hyperref and/or bookmark are enabled, I get a compilation error very similar to what Jam got.
Here is the code of a minimal example, after it has gone through the first step:
\documentclass[11pt,a4paper,fleqn]{article}
\usepackage{tlatex}
\usepackage{color}
\definecolor{boxshade}{gray}{.9}\setboolean{shading}{true}
\let\implies\relax
\usepackage{hyperref}
\begin{document}
\begin{tla}
TypeOK ==
/\ pendMsg \in [Term -> STRING \X {0,1}]
/\ rcvMsg \in [Term -> STRING ]
/\ altt \in [Term -> {0,1}]
/\ msgCnt \in [Term -> Int]
/\ errCnt \in [Term -> Int]
/\ swapTerm \in {0,1}
/\ step \in Int
\end{tla}
\begin{tlatex}
\@x{ TypeOK \.{\defeq}}%
\@x{\@s{16.4} \.{\land}\@s{12.22} pendMsg \.{\in} [ Term \.{\rightarrow}
{\STRING} \.{\times} \{ 0 ,\, 1 \} ]}%
\@x{\@s{16.4} \.{\land}\@s{12.22} rcvMsg \.{\in} [ Term \.{\rightarrow}
{\STRING} ]}%
\@x{\@s{16.4} \.{\land}\@s{12.22} altt \.{\in} [ Term \.{\rightarrow} \{ 0
,\, 1 \} ]}%
\@x{\@s{16.4} \.{\land}\@s{12.22} msgCnt \.{\in} [ Term \.{\rightarrow} Int
]}%
\@x{\@s{16.4} \.{\land}\@s{12.22} errCnt\@s{4.19} \.{\in} [ Term
\.{\rightarrow} Int ]}%
\@x{\@s{16.4} \.{\land}\@s{12.22} swapTerm \.{\in} \{ 0 ,\, 1 \}}%
\@x{\@s{16.4} \.{\land}\@s{12.22} step \.{\in} Int}%
\end{tlatex}
\end{document}
If the hyperref package is not included this code compiles with TeXShop without errors and generates the pdf. If hyperref is included this is the error I get:
LaTeX Warning: Command \. invalid in math mode on input line 19.
./tlatextest_GGroups_Question.tex:19: Missing $ inserted.
<inserted text>
$
l.19 \@x{ TypeOK \.{\defeq}}
%
?
and no output is generated.
I need hyperref in my documents so I am stuck. Can anyone suggest a workaround?
--
You received this message because you are subscribed to the Google Groups "tlaplus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+unsubscribe@xxxxxxxxxxxxxxxx.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/7c378896-0367-4d0d-994e-55c0b6891130n%40googlegroups.com.