Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

problem with pgfkeys #11

Closed
lucarottoli opened this issue Jan 22, 2016 · 13 comments
Closed

problem with pgfkeys #11

lucarottoli opened this issue Jan 22, 2016 · 13 comments
Labels
Milestone

Comments

@lucarottoli
Copy link

I am trying to use tikz-feynman but I have problems with pgfkeys. If I compile with pdflatex the example

\documentclass[border=10pt]{standalone}
\usepackage{tikz-feynman}
\usetikzlibrary{intersections}

\begin{document}
\feynmandiagram [horizontal=a to b] {
  i1 -- [fermion] a -- [fermion] i2,
  a -- [photon] b,
  f1 -- [fermion] b -- [fermion] f2,
};
\end{document}

I obtain a series of errors:

Errors:

./feyn.tex:6: Package pgfkeys Error: I do not know the key '/tikz/horizontal', to which you passed 'a to b', and I am going to ignore it. Perhaps you misspelled it. [\feynmandiagram [horizontal=a to b] {]
./feyn.tex:6: Package pgfkeys Error: I do not know the key '/graph drawing/node distance', to which you passed '1.9cm', and I am going to ignore it. Perhaps you misspelled it. [\feynmandiagram [horizontal=a to b] {]
./feyn.tex:6: Package pgfkeys Error: I do not know the key '/graph drawing/level distance', to which you passed '1.5cm', and I am going to ignore it. Perhaps you misspelled it. [\feynmandiagram [horizontal=a to b] {]
./feyn.tex:6: Package pgfkeys Error: I do not know the key '/graph drawing/sibling distance', to which you passed '2.25cm', and I am going to ignore it. Perhaps you misspelled it. [\feynmandiagram [horizontal=a to b] {]
./feyn.tex:6: Package pgfkeys Error: I do not know the key '/tikz/graphs/spring layout' and I am going to ignore it. Perhaps you misspelled it. [\feynmandiagram [horizontal=a to b] {]
./feyn.tex:6: Package pgfkeys Error: I do not know the key '/tikz/horizontal', to which you passed 'a to b', and I am going to ignore it. Perhaps you misspelled it. [\feynmandiagram [horizontal=a to b] {]

Warnings:

./feyn.tex:4: Package tikz-feynman Warning: LuaTeX is required if you wish to have vertices automatically placed. You can disable this warning by setting /tikzfeynman/warn luatex=false on input line 4.
./feyn.tex:4: Package tikz-feynman Warning: Consider adding \tikzfeynmanset{compat=1.0.0} to your preamble so that you can be warned if TikZ-Feynman changes. on input line 4.
@JP-Ellis
Copy link
Owner

This is very strange... I have never encountered this issue myself. Curiously, what version of pgf/TikZ do you have? In order to use TikZ-Feynman, you need at least v3.0.0.

Also, you shouldn't need to use the intersections library (but that shouldn't be the issue).

@lucarottoli
Copy link
Author

I have used the intersection library since it was suggested for people having problems with TikZ/pgfkeys - but it does not have any effect. My pgf version is: 3.0.1a.

@cm-cc
Copy link

cm-cc commented Jan 23, 2016

Just to confirm the same issue and errors, both in archlinux and ubuntu 15.10 (up-to-date), with latest texlive packages.
Btw, very promising latex package!

@JP-Ellis
Copy link
Owner

I've been trying to reproduce this bug myself, but so far I haven't managed. I also run Arch Linux, so I find it very strange that @cm-cc gets that too.

Which distribution of TeXLive do you have? Is it the one installed through the distribution (i.e. with apt-get, yum or pacman?) or did you install it from their website? And what about TikZ-Feynman, how did you install it? Did you install it with the TeXLive manager (tlmgr install tikz-feynman) or did you download it from Github?

Could also please run the following commands and paste the output:

tlmgr --version
tlmgr info --only-installed pgf
tlmgr info --list --only-installed tikz-feynman
for dir in $(kpsewhich -var-value=TEXMF | tr -d '{}!' | tr ',' ' '); do find $dir -wholename "*tikz-feynman*"; done

And I would also like to have a look at the whole log file generated. Could you paste the entire file into a gist?

@lucarottoli
Copy link
Author

I am running TeXLive 2015 on MacOs 10.11.2; I installed it from MacTex. I installed TikZ-Feynman through TeXLive.

Here are the outputs of the commands:

tlmgr --version
tlmgr revision 39298 (2016-01-07 03:44:29 +0100)
tlmgr using installation: /usr/local/texlive/2015
TeX Live (http://tug.org/texlive) version 2015
tlmgr info --only-installed pgf
package:     pgf
category:    Package
shortdesc:   Create PostScript and PDF graphics in TeX
longdesc:    PGF is a macro package for creating graphics. It is platform- and format-independent and works together with the most important TeX backend drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer called TikZ. Its usage is similar to pstricks and the standard picture environment. PGF works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can produce either PostScript or PDF output.
installed:   Yes
revision:    38237
sizes:       src: 369k, doc: 14009k, run: 5245k
relocatable: No
cat-version: 3.0.1a
cat-date:    2015-08-29 20:25:54 +0200
cat-license: lppl1.3
cat-topics:  pgf-tikz graphics-in-tex
collection:  collection-pictures
tlmgr info --list --only-installed tikz-feynman
package:     tikz-feynman
category:    Package
shortdesc:   Feynman diagrams with TikZ
longdesc:    This is a is a LaTeX package allowing Feynman diagrams to be easily generated within LaTeX with minimal user instructions and without the need of external programs. It builds upon the TikZ package and leverages the graph placement algorithms from TikZ in order to automate the placement of many vertices. tikz- feynman still allows fine-tuned placement of vertices so that even complex diagrams can still be generated with ease.
installed:   Yes
revision:    39441
sizes:       doc: 437k, run: 45k
relocatable: No
cat-version: 1.0.0
cat-date:    2016-01-20 08:54:58 +0100
cat-license: lppl1.3
cat-topics:  physics pgf-tikz use-luatex
collection:  collection-pictures
Included files, by type:
run files:
  texmf-dist/tex/latex/tikz-feynman/tikz-feynman.sty
  texmf-dist/tex/latex/tikz-feynman/tikzfeynman.keys.code.tex
  texmf-dist/tex/latex/tikz-feynman/tikzlibraryfeynman.code.tex
doc files:
  texmf-dist/doc/latex/tikz-feynman/LICENSE
  texmf-dist/doc/latex/tikz-feynman/README.md details="Readme"
  texmf-dist/doc/latex/tikz-feynman/references.bib
  texmf-dist/doc/latex/tikz-feynman/tikz-feynman.pdf details="Package documentation"
  texmf-dist/doc/latex/tikz-feynman/tikz-feynman.tex
  texmf-dist/doc/latex/tikz-feynman/tikzfeynman.patch.lua
for dir in $(kpsewhich -var-value=TEXMF | tr -d '{}!' | tr ',' ' '); do find $dir -wholename "*tikz-feynman*"; done
find: /Users/rottoli/Library/texlive/2015/texmf-config: No such file or directory
/usr/local/texlive/2015/texmf-dist/doc/latex/tikz-feynman
/usr/local/texlive/2015/texmf-dist/doc/latex/tikz-feynman/LICENSE
/usr/local/texlive/2015/texmf-dist/doc/latex/tikz-feynman/README.md
/usr/local/texlive/2015/texmf-dist/doc/latex/tikz-feynman/references.bib
/usr/local/texlive/2015/texmf-dist/doc/latex/tikz-feynman/tikz-feynman.pdf
/usr/local/texlive/2015/texmf-dist/doc/latex/tikz-feynman/tikz-feynman.tex
/usr/local/texlive/2015/texmf-dist/doc/latex/tikz-feynman/tikzfeynman.patch.lua
/usr/local/texlive/2015/texmf-dist/tex/latex/tikz-feynman
/usr/local/texlive/2015/texmf-dist/tex/latex/tikz-feynman/tikz-feynman.sty
/usr/local/texlive/2015/texmf-dist/tex/latex/tikz-feynman/tikzfeynman.keys.code.tex
/usr/local/texlive/2015/texmf-dist/tex/latex/tikz-feynman/tikzlibraryfeynman.code.tex

The log is at https://gist.github.com/lucarottoli/22ef4c8d7348a08118a2

@JP-Ellis
Copy link
Owner

Thanks for all the feedback! I think I have identified the issue.

TikZ-Feynman uses LuaLaTeX in order to run the graph drawing algorithms (because implementing that in TeX would be very slow and very impractical). If TikZ-Feynman sees that LuaLaTeX is not available, it issues a warning and doesn't load certain dependencies; however, the rest of the code still assumes these dependencies exist which results in the error messages you are seeing. I will fix this and make sure that TikZ-Feynman fails gracefully.

This should be fixed if you compile with lualatex instead of pdflatex.

I also noticed that the TeXLive manager somehow manage to misplace tikzfeynman.patch.lua; it should be in the same directory as tikz-feynman.sty but instead is placed with the documentation. It happened to me too and I don't know why or how this happened. In my case, removing and then reinstalling TikZ-Feynman fixed it.

Let me know if how that goes and if you encounter more errors.

@JP-Ellis JP-Ellis added the bug label Jan 23, 2016
@cm-cc
Copy link

cm-cc commented Jan 23, 2016

I use texlive from pacman and apt-get, and tllocalmgr (texlive-localmanager-git from AUR) in Archlinux and tlmgr in Ubuntu to install CTAN packages.
Reinstalling tikz-feynman and using lualatex fixes the issue on Archlinux (btw it is in conflict with the official texlive-pictures package, which I had to remove to install tikz-feynman) but not on Ubunbu 15.10. Here is the log https://gist.github.com/cm-cc/a5afb86ff53c2b0b9ce7

thanks for you help

@JP-Ellis
Copy link
Owner

Yeah, installing TeXLive through pacman or apt-get and then using the TeXLive manager can cause issues because there are then two separate programs managing the same set of files. As a result, pacman/apt-get won't be aware of changes introduced by tlmgr which may cause files to not be upgraded properly and introduce clashes because files were installed by the other manager.

In my setup, I have installed TeXLive with their install-tl script and installed the texlive-dummy package so that dependencies are still met.

Now regarding your log, this appears to be a new and separate issue (again, one which I have not seen before). Tomorrow I'll install Ubuntu 15.10 and see if I can replicate it.

@sbilmis
Copy link

sbilmis commented Jan 23, 2016

I had the same problem with macOS 10.11.3 ; compiling with luatex solved the issue for me. But what-about pdflatex?

@JP-Ellis
Copy link
Owner

@sbilmis pdfLaTeX should gracefully fail (something which I have to fix right now, as it errors). This is because TikZ-Feynman uses certain graph drawing algorithms from TikZ which are implemented in Lua, and thus require LuaLaTeX. There isn't really any way of implementing such algorithms inside TeX only (and even if someone did do that, it would be most likely very slow). In any case, LuaLaTeX can do everything that pdfLaTeX does and has extra features (like better support of external fonts), so I have just replaced pdfLaTeX with LuaLaTeX entirely.

@sbilmis
Copy link

sbilmis commented Jan 23, 2016

thank you. that answers my question.

@JP-Ellis
Copy link
Owner

I have just pushed a commit to the development branch which should fix this and will close the issue once it is merged into master.

@cm-cc, I have opened a separate issue (#12) with the new bug you found.

@lucarottoli
Copy link
Author

Thanks! If I compile with LuaLatex it works fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants