Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Haskell图表生成器分析错误_Haskell_Latex_Haskell Diagrams - Fatal编程技术网

使用Haskell图表生成器分析错误

使用Haskell图表生成器分析错误,haskell,latex,haskell-diagrams,Haskell,Latex,Haskell Diagrams,我尝试使用带有LaTeX的diagrams builder包来生成符合要求的图表。在本教程之后,我有一个名为test.tex的文件,其中包含以下内容: \documentclass[10pt]{article} \usepackage[backend=ps, extension=eps, outputdir=diagrams]{diagrams-latex} \usepackage{graphicx} \begin{document} \begin{diagram}[width=300,he

我尝试使用带有LaTeX的diagrams builder包来生成符合要求的图表。在本教程之后,我有一个名为
test.tex
的文件,其中包含以下内容:

\documentclass[10pt]{article}

\usepackage[backend=ps, extension=eps, outputdir=diagrams]{diagrams-latex}
\usepackage{graphicx}

\begin{document}
\begin{diagram}[width=300,height=200]
{-# LANGUAGE FlexibleContexts #-}
dia = circle 1 
\end{diagram}

\end{document}
我创建了一个名为
diagrams
的空目录,并尝试编译,结果被告知在由
diagrams builder ps
自动生成的文件中存在解析错误

$ pdflatex --enable-write18 --shell-escape test.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2016/03/31>
Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size10.clo))
(/Users/nhalford/Library/texmf/tex/diagrams-latex.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/moreverb/moreverb.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/tools/verbatim.sty))
(/usr/local/texlive/2016/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/local/texlive/2016/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/local/texlive/2016/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ifthen.sty))
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphicx.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphics.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/trig.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)
(/usr/local/texlive/2016/texmf-dist/tex/latex/pdftex-def/pdftex.def
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ltxcmds.sty))))
No file test.aux.
(/usr/local/texlive/2016/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifluatex.sty)
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ifpdf.sty))
(/usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/grfext.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty))
(/usr/local/texlive/2016/texmf-dist/tex/latex/oberdiek/kvoptions.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/etexcmds.sty)))
(/usr/local/texlive/2016/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
Opening diagrams-latex stream diagrams/test-diagrams-latex-fig1.hs Error while compiling diagrams/test-diagrams-latex-fig1.hs
/var/folders/2g/_6mplpfn4fl338wr3cj949440000gn/T/Diagram58258-0.hs:3:20: error:
    parse error on input ‘-’



Package diagrams-latex Warning: Conversion of diagrams/test-diagrams-latex-fig1
.hs failed.


Package diagrams-latex Warning: Please convert diagrams/test-diagrams-latex-fig
1.hs manually.

(./test.aux) )
No pages of output.
Transcript written on test.log.
不幸的是,系统会立即删除带有解析错误的临时
.hs
文件,因此我无法检查该文件以查看到底是什么导致了此问题


谢谢你的帮助

哦,我想我刚刚发现了什么地方出了问题,尽管我不确定最好的解决方法。关键是这一行:

/var/folders/2g/6mplppfn4fl338wr3cj9440000gn/T/Diagram58289-0。hs:3:20:错误:

请注意,临时文件的名称为
Diagram58289-0.hs
diagrams builder
调用
openTempFile
(),然后使用结果文件的基本名称作为模块名称。因此,
图58289-0.hs的内容必须如下所示:

{-# LANGUAGE FlexibleContexts #-}

module Diagram58289-0 where

dia = circle 1
问题是连字符在模块名中无效,因此会出现解析错误(当然,它位于第3行的第20列)

虽然声明所创建的文件的名称形式为“
fooXXX.ext
,其中XXX是一些随机数”,但显然这里并不是这样。事实上,它看起来像是;现在它将始终包含连字符。我猜这一行为在
base-4.10
中发生了变化,因此它将出现在任何使用GHC 8.2的人身上


我必须跟踪这个问题。目前,一个解决方案是降级到GHC 8.0,但这可能不是一个很有吸引力的选择。

您可以尝试使用
Ctrl+Z
暂停该过程。这可能有助于您查看临时文件。我尝试了您的
test.tex
,但无法再现错误。你能粘贴
test-diagrams-latex-fig1.hs的内容吗?
?顺便提一下,你可能不想在
ps
cairo
后端使用
input
标志(这将导致
.eps
文件的内容直接包含在latex源代码中,这是没有意义的)。它用于
pgf
后端。但无论如何,这不是你的问题所在。@brent yorgey我已经相应地更新了原始帖子。也许我的安装有问题。我昨天在安装它时遇到了很多麻烦,最终从我的系统中完全删除了Haskell,然后重新下载Haskell平台内核并使用cabal进行安装。感谢您的帮助!事实上,降级到GHC 8.0已经解决了这个问题,尽管这肯定不是一个理想的解决方案。当然!如果我们找到一个好方法让它在GHC 8.2上再次工作,我将在这里添加一条注释。这在diagrams builder HEAD中已修复:。我将尝试推出一个新的版本与这个错误修复很快。
{-# LANGUAGE FlexibleContexts #-}

module Diagram58289-0 where

dia = circle 1