Page 1 sur 1

Tkz non généré

MessagePublié: 26 Juil 2020 19:31
par Archibald
Bonjour,

si j'essaie de compiler le fichier suivant :

Code: Tout sélectionner
% -*- coding: utf-8 -*-

\documentclass{article}

\usepackage{tikz}
\usepackage{texgraph}

\begin{document}

\begin{texgraph}[export=tkz]
  view(-1, 8, -20, 5), size(10 + 6*i, 0),
  LineStyle := dotted, Grille(0, 1 + i),
  LineStyle := solid, Width := Thicklines, Axes(0, 1 + 5*i),
  Color := blue,
  for x from 0 to 10 do Point(x + (4*x - x^2)*i), od,     
\end{texgraph}

\end{document}


à l'aide de la commande :

Code: Tout sélectionner
`lualatex -enable-write18  -file-line-error  -interaction=nonstopmode "\input" "test_texgraph.tex


J'ai un comportement étrange...

* un fichier test_texgraph1.teg est créé, qui contient :

Code: Tout sélectionner
TeXgraph#
Graph image = [
  view(-1, 8, -20, 5), size(10 + 6*i, 0),
  LineStyle := dotted, Grille(0, 1 + i),
  LineStyle := solid, Width := Thicklines, Axes(0, 1 + 5*i),
  Color := blue,
  for x from 0 to 10 do Point(x + (4*x - x^2)*i), od,
];


* la commande :
Code: Tout sélectionner
CmdTeXgraph -tkz -nosrc test_texgraph1

est exécutée (jusqu'ici tout va bien)

* MAIS le fichier test_texgraph1.tkz n'est pas crée, et la compilation finit avec un message d'erreur :

Code: Tout sélectionner
! LaTeX Error: File `test_texgraph1.tkz' not found.


* cependant, si j'exécute la commande CmdTeXgraph -tkz -nosrc test_texgraph1 depuis un terminale Windows dans le répertoire de travail, j'ai bien un fichier tkz créé, parfaitement valide, et je peux compiler mon fichier (qui est parfaitement correct).

Quelques éléments peut-être utiles :

* j'utilise Emacs + AucTeX + Luatex

* j'ai déjà remarqué des problèmes de compilation lorsque le nom de mon fichier comporte des espaces, j'ai fait attention à n'en mettre aucune

* avec la même installation, sur le même ordinateur, j'utilisais jusqu'à présent la chaîne luatex -> dvips -> ps2pdf, et je compilais donc mes programmes TeXgraph avec PSFrag (occasionnellement Pstricks), sans problème majeur

Re: Tkz non généré

MessagePublié: 26 Juil 2020 22:12
par P.Fradin
Salut Archibald

C'est curieux, chez moi ton fichier compile normalement avec lualatex (TeXlive 2020), voici ma commande:
Code: Tout sélectionner
lualatex -enable-write18 -interaction=nonstopmode  fichier.tex


EDIT en fait ça ne marche pas chez moi non plus, j'avais testé d'abord avec pdflatex (qui a bien créé le fichier tikz) , puis ensuite lualatex qui a pris le tikz déjà créé.

Re: Tkz non généré

MessagePublié: 26 Juil 2020 22:29
par P.Fradin
Bon après quelques recherches sur le net, lualatex et \write18, c'est pas simple...
Voici un contournement:
Code: Tout sélectionner
    \documentclass{article}
   % code à ajouter
    \IfFileExists{shellesc.sty}
    {\RequirePackage{shellesc}} 
    {\protected\def\ShellEscape{\immediate\write18 }}
   % fin du code ajouté
    \usepackage{tikz}
    \usepackage{texgraph}

    \begin{document}

    \begin{texgraph}[export=tkz]
      view(-1, 8, -20, 5), size(10 + 6*i, 0),
      LineStyle := dotted, Grille(0, 1 + i),
      LineStyle := solid, Width := Thicklines, Axes(0, 1 + 5*i),
      Color := blue,
      for x from 0 to 10 do Point(x + (4*x - x^2)*i), od,     
    \end{texgraph}

    \end{document}


avec ça c'est bon chez moi avec pdflatex et avec lualatex.

Re: Tkz non généré

MessagePublié: 26 Juil 2020 23:01
par Archibald
Je suis bluffé. Ça marche en effet. Je vais essayer de comprendre pourquoi maintenant :)

Merci beaucoup !

Re: Tkz non généré

MessagePublié: 27 Juil 2020 08:51
par P.Fradin
En fait il semble que mettre simplement dans le préambule :
Code: Tout sélectionner
\usepackage{shellesc}

soit suffisant.
Ce package semble définir en particulier l'accès au write18.
[EDIT] : je vais rajouter un \RequirePackage{shellesc}% directement dans le fichier texgraph.sty pour la prochaine version.

Re: Tkz non généré

MessagePublié: 27 Juil 2020 22:30
par Archibald
En fait, il semble tout simplement que \write18 ait disparu de Luatex.

Ça va être source d'incompatibilités avec pas mal de trucs, même si en effet, la parade semble simple (shellesc doit s'adapter au moteur).