Z Технические характеристики в латекс
-
28-09-2019 - |
Вопрос
Есть ли пакет для латекса, который будет поддерживать писать спецификации Z? Я заинтересован как горизонтальные, так и вертикальные форматы для схем.
Решение
Есть пакет, это называется Zed-CSP.. Отказ Вот а Справка О том, как его использовать.
Вот пример схемы:
\begin{schema}{InitJunction1}
\Delta Sys\\
junc?: JUNCTION\\
road1?: ROAD\\
road2?: ROAD
\where
road1? \neq road2?\\
junc? \notin juncList\\
\forall j: juncList @ \neg ((road1? \in roadsInJunc(j)) \land (road2? \in roadsInJunc(j))\\
roadsInJunc' = roadsInJunc \cup \{junc? \mapsto \{road1,road2\}\}\\
juncList' = juncList \cup \{junc?\}
\end{schema}
Увидеть мой вопрос и ответ на тему:Зед-нотация в Лек
Другие советы
Есть довольно несколько пакетов, которые предлагают поддержку для написания спецификации Z в LaTex. Хотя многие имеют очень похожий синтаксис, а некоторые предлагают дополнительные функции.
- Cadiz.Sty: https://www.cs.york.ac.uk/hise/cadiz/latexmarkwptut.html.
- oz.sty: https://www.ctan.org/tex-archive/macros/latex/contrib/objectz?lang=en.
- Fuzz.Sty: https://www.cs.cmu.edu/afs/cs/academicate/Class/15671-f95/ftp/fuzz.sty.Sty.
- Zed.Sty: http://tug.ctan.org/macros/latex209/Contrib/zed/zed.sty.Sty.
- Zeves.Sty: http://www.informatik.uni-bremen.de/agbkb/lehre/ss12/foma/z/z-eves.Sty.Sty
- Zed-CSP.STY: http://ctan.mackichan.com/macros/latex/contrib/zed-csp/zed-csp.sty.Sty.
Больше информации на этих пакетах можно найти здесь: http://czt.sourceforge.net/latex/
Это объясняет, что было первым и содержит важные макросы, но не совместим с стандартом ISO-Z, Zed.Sty и Zed-CSP.Sty были версией Oxford, которая улучшилась на Fuzz.sty etc
Это то, что занимается моим профессором программного обеспечения, использованного для форматирования латекса при создании Z-схемы и операций:
\usepackage{oz, amsfonts}
...
\begin{schema}{MusicStore}
member: \pset NAME\\
orders: \pset (NAME\times ALBUM)\\
owns: \pset (NAME\times ALBUM)
\ST
{\bf dom}\mbox{ } orders \subseteq member\\
{\bf dom}\mbox{ } owns \subseteq member\\
\forall (m, a)\in orders.(m, a)\notin owns
\end{schema}
Я надеюсь, что это полезно.