2017-09-25 6 views
1

ダイアグラムを生成するためにLaTeXでダイアグラムビルダパッケージを使用しようとしています。チュートリアルhereに続いて、私は、ファイルには、以下の内容でtest.texと呼ばれるがあります。Haskellダイアグラムビルダによる解析エラー

\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ファイルにdiagrams-builder-psまたはdiagrams-builder-cairoを実行しようとしたとき、私はまた、このエラーが出る:

$ cd diagrams 
$ ls 
test-diagrams-latex-fig1.hs 
$ diagrams-builder-ps -w 300 -h 200 test-diagrams-latex-fig1.hs 
Error while compiling test-diagrams-latex-fig1.hs 
/var/folders/2g/_6mplpfn4fl338wr3cj949440000gn/T/Diagram58289-0.hs:3:20: error: 
    parse error on input ‘-’ 

$ diagrams-builder-cairo -w 300 -h 200 test-diagrams-latex-fig1.hs 
Error while compiling test-diagrams-latex-fig1.hs 
/var/folders/2g/_6mplpfn4fl338wr3cj949440000gn/T/Diagram58294-0.hs:3:20: error: 
    parse error on input ‘-’ 

$ cat test-diagrams-latex-fig1.hs 
{-# LANGUAGE FlexibleContexts #-} 
dia = circle 1 
$ 

は、残念ながら、システムがすぐにパースエラーで、一時.hsファイルを削除しますので、私はよそのファイルを調べて正確にこの問題の原因を調べることはできません。

ありがとうございました!

+0

「Ctrl + Z」でプロセスを一時停止することができます。これは、一時ファイルを表示するのに役立ちます。 – arrowd

+0

あなたの 'test.tex'を試しましたが、エラーを再現することはできません。 'test-diagrams-latex-fig1.hs'の内容を貼り付けることができますか? –

+1

ちなみに、 'ps'や' cairo'バックエンドで 'input'フラグを使いたくないのです(' .eps'ファイルの内容がLaTeXソースに直接含まれるようになります。意味をなさない)。これは 'pgf'バックエンドでの使用を意図しています。しかし、いずれにせよ、それはあなたの問題を引き起こしているものではありません。 –

答えて

1

ああ、私は間違っていなければならないことが分かったと思うが、それを修正する最善の方法がわからない。一時ファイルの名前がDiagram58289-0.hsであることを

/var/folders/2g/_6mplpfn4fl338wr3cj949440000gn/T/Diagram58289-0.hs:3:20: error:

注意:キーは、このラインです。 diagrams-builderopenTempFilesee here)を呼び出して、結果ファイルのベース名をモジュールの名前として使用します。だから、Diagram58289-0.hsの内容は、次のようなものを見なければならない:

{-# LANGUAGE FlexibleContexts #-} 

module Diagram58289-0 where 

dia = circle 1 

問題はハイフンが故にパースエラーは、(確かに、それは3行目に列20である)、モジュール名では有効ではないということです。

documentation for openTempFileは、作成されたファイルの名前が "fooXXX.extここでXXXは乱数です"という形式の名前を持っていますが、明らかにここでは起こっていません。実際、それはbehavior of openTempFile changed recentlyのように見えます。これには常にハイフンが含まれます。私はbase-4.10で変更されたこの動作を推測しているので、GHC 8.2を使用している人には表示されます。

私はこの問題を追跡するためにcreated an issue on the diagrams-builder issue trackerを持っています。今のところ、1つの解決策はGHC 8.0にダウングレードすることですが、それは非常に魅力的な選択肢ではないかもしれません。

+0

あなたの助けてくれてありがとう!確かに、GHC 8.0へのダウングレードはこの問題を解決しましたが、これは確かに理想的な解決策ではありません。 –

+0

私たちがGHC 8.2で再び働かせる良い方法を見つけたら、ここにコメントを追加します。 –

+1

これはダイアグラムビルダーのHEAD:https://github.com/diagrams/diagrams-builder/commit/b44c754c15ab71d3350a6212ff73b3721b3b0e80で修正されました。私はすぐにこのバグフィックスで新しいリリースを出そうとします。 –

関連する問題