我正在尝试使用该rail
包编译语法图,但所有图表,无论多大,都像下面的屏幕截图一样,一个圆角框,里面有三个问号。
抱歉,我的问题很愚蠢,但有人能告诉我这个的正确用法吗?我在尝试编译此处的“LaTeX 语法图”文档时遇到了这个问题:http://ctan.mirrorcatalogs.com/support/rail/rail.tex
The \Rail\ package allows you to include syntax diagrams (also known as
\emph{railroad diagrams}) in a \LaTeX\ document. Such a diagram looks
like this:
\label{example}
\begin{rail}
decl : 'def' identifier '=' ( expression + ';' )
| 'type' identifier '=' type
;
\end{rail}
(If you like arrow-heads where the lines enter the boxes, a nice feature
contributed by J.~Olsson, see Section \ref{sec:options}.)
我刚刚从 ctan 下载了 rail 包,解压后移至rail.sty
,/usr/share/texmf/tex/latex/rail
然后使用 更新了我的数据库texhash
。我下载的 rails 包附带一个.exe
文件,但我没有看到任何可以在 Ubuntu 上运行的东西,而 Ubuntu 正是我正在使用的。
答案1
获取最终输出需要运行附带的rail
程序;该发行版为 Windows 和 C 源代码提供了可执行文件。
但是,尝试运行make
该程序会引发很多错误。除非您能够正确编译该程序,否则我认为您无法使用该包。请注意,中的横幅rail.c
由
static char SccsId[]="@(#)rail 26-Jul-1998";
对于这种事情来说十七年是一段很长的时间。
答案2
我花了一些时间修复了许多问题。您可以找到Github 上 rails 软件包的固定版本:
$ curl -L https://github.com/Holzhaus/latex-rail/archive/v1.2.1.tar.gz | tar xzvf -
$ cd latex-rail-1.2.1
$ gcc --version | head -n 1
gcc (GCC) 6.3.1 20170306
$ make
bison -y -dv gram.y
gram.y: warning: 2 reduce/reduce conflicts [-Wconflicts-rr]
cmp -s gram.c y.tab.c || cp y.tab.c gram.c
cmp -s gram.h y.tab.h || cp y.tab.h gram.h
gcc -DYYDEBUG -O -c -o rail.o rail.c
gcc -DYYDEBUG -O -c -o gram.o gram.c
flex -t lex.l > lex.c
gcc -DYYDEBUG -O -c -o lex.o lex.c
gcc -DYYDEBUG -O rail.o gram.o lex.o -o rail
$ rail --help
This is Rail, Version 1.2 #1
usage: rail [-+acdit] [file]