Z спецификации в латексе
Существует ли какой-либо пакет для LaTeX, который будет поддерживать написание спецификаций Z? Меня интересуют как горизонтальные, так и вертикальные форматы схем.
3 ответа:
Есть пакет, он называется 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}
Смотрите мой вопрос и ответ на эту тему: Zed нотация в LyX
Существует довольно много пакетов, которые предлагают поддержку написания спецификации Z в LaTeX. Хотя многие из них имеют очень похожий синтаксис, а некоторые предлагают дополнительные функции.
- Кадис.стай: https://www.cs.york.ac.uk/hise/cadiz/latexmarkuptut.html
- унция.стай: https://www.ctan.org/tex-archive/macros/latex/contrib/objectz?lang=en
- пух.стай: https://www.cs.cmu.edu/afs/cs/academic/class/15671-f95/ftp/fuzz.sty
- Зед.ячмень: http://tug.ctan.org/macros/latex209/contrib/zed/zed.sty
- Зевс.стай: http://www.informatik.uni-bremen.de/agbkb/lehre/ss12/foma/Z/z-eves.sty
- zed-csp.стай: http://ctan.mackichan.com/macros/latex/contrib/zed-csp/zed-csp.sty
Дополнительную информацию об этих пакетах можно найти здесь: http://czt.sourceforge.net/latex/
Это объясняет, что это был пух.sty был первым и содержит важные макросы еще не является совместим со стандартом ISO-Z, zed.стай и Зед-csp.sty были Оксфордской версией, которая улучшила 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}
Я надеюсь, что это поможет.