Fix LaTeX rendering of strong next

Fix #597.

* spot/tl/print.cc: Fix rendering of X[!].
* doc/tl/spotltl.sty: Add a \StrongX definition.
* tests/core/latex.test: Add a test case.
* NEWS: Mention the issue.
This commit is contained in:
Alexandre Duret-Lutz 2024-12-09 12:09:15 +01:00
parent 6e6219af54
commit c67332f825
4 changed files with 7 additions and 2 deletions

3
NEWS
View file

@ -5,6 +5,9 @@ New in spot 2.12.1.dev (not yet released)
- to_finite() was dealing incorrectly with edges that were - to_finite() was dealing incorrectly with edges that were
both alive and dead. (Issue #596.) both alive and dead. (Issue #596.)
- LaTeX output of the X[!] operator with broken in both
LaTeX and self-contained LaTeX mode. (Issue #597)
New in spot 2.12.1 (2024-09-23) New in spot 2.12.1 (2024-09-23)
Bug fixes: Bug fixes:

View file

@ -12,6 +12,7 @@
\newcommand{\F}{\mathsf{F}} % eventually \newcommand{\F}{\mathsf{F}} % eventually
\newcommand{\G}{\mathsf{G}} % always \newcommand{\G}{\mathsf{G}} % always
\newcommand{\X}{\mathsf{X}} % next \newcommand{\X}{\mathsf{X}} % next
\newcommand{\StrongX}{\mathsf{X^{[!]}}} % strong next
% The \mathbin tells TeX to adjust spacing for binary operators % The \mathbin tells TeX to adjust spacing for binary operators
\newcommand{\M}{\mathbin{\mathsf{M}}} % strong release \newcommand{\M}{\mathbin{\mathsf{M}}} % strong release
\newcommand{\R}{\mathbin{\mathsf{R}}} % release \newcommand{\R}{\mathbin{\mathsf{R}}} % release

View file

@ -273,7 +273,7 @@ namespace spot
"\\SereEqual{", "\\SereEqual{",
"\\SereGoto{", "\\SereGoto{",
"\\FirstMatch", "\\FirstMatch",
"\\StrongX", "\\StrongX ",
}; };
const char* sclatex_kw[] = { const char* sclatex_kw[] = {
@ -318,7 +318,7 @@ namespace spot
"^{=", "^{=",
"^{\\to", "^{\\to",
"\\mathsf{first\\_match}", "\\mathsf{first\\_match}",
"\\textcircled{\\mathsf{X}}", "\\mathsf{X^{[!]}}",
}; };
static bool static bool

View file

@ -37,6 +37,7 @@ a U b W c R (d & e) M f
{a*;(b;c)[:*3..4];(c;d)[:+];d}! {a*;(b;c)[:*3..4];(c;d)[:+];d}!
G(uglyname->Fuglierlongname42) G(uglyname->Fuglierlongname42)
"#foo/$bar$" U "baz~yes^no" "#foo/$bar$" U "baz~yes^no"
X[!]XX[!]a | G[2:4!]b
EOF EOF
( (