web-dev-qa-db-fra.com

texi2dvi avec TeX 3.14159265 (TeX Live 2015) dans R ne fonctionne pas

Dans le passé, j'utilisais

texi2dvi("ABC.tex", pdf = TRUE)

dans R pour produire pdf à partir de tex. Cependant, après avoir utilisé

Sudo apt-get update && Sudo apt-get upgrade

Maintenant en utilisant

texi2dvi("ABC.tex", pdf = TRUE)

lève l'erreur suivante

Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
  Running 'texi2dvi' on 'ABC.tex' failed.
Messages:
mkdir: cannot create directory ‘Yaseen/XYZ’: No such file or directory
/usr/bin/texi2dvi: cannot create directory: Yaseen/XYZ

Mon nom de répertoire contient aussi des espaces (je ne peux pas changer car beaucoup de mes répertoires ont des espaces dans leurs noms).

En surfant, je suis tombé sur ce lien qui dit:

Pour construire la documentation PDF, vous aurez besoin d’une version de TeX Live ou de texinfo incluant texi2dvi (BEWARE: TeX Live récent et certains RPM texinfo, n’incluez PAS texi2dvi).

Ma sortie tex --version est

TeX 3.14159265 (TeX Live 2015)
kpathsea version 6.2.1
Copyright 2015 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.

Toute aide pour résoudre le problème sera hautement appréciée. Merci

Edité

Mon setwd() dans R est

setwd(
  file.path(
    "/media"
    , "yaseen"
    , "D"
    , "Muhammad Yaseen"
  )
)

getwd()
[1] "/media/yaseen/D/Muhammad Yaseen"

et

texi2dvi("ABC.tex", pdf = TRUE)
3
MYaseen208

Le message d'erreur que vous avez posté suggère que le chemin que vous avez fourni pour le fichier n'existe pas. Est-ce que Yaseen/XYZ existe? sinon, créez-le d'abord et réessayez.

Si vos noms de répertoire contiennent des espaces, essayez de les échapper en utilisant \ dans la commande:

path/to\ my\ files/

Ou utilisez des guillemets ("/'):

"path/to my files/"

Si vous faites cela depuis R, assurez-vous d'utiliser \\ pour vous assurer que le caractère d'échappement est transmis:

texi2dvi("/media/yaseen/D/Muhammad\\ Yaseen/ABC.tex", pdf = TRUE)

Edit: Notez la documentation à ce sujet dans R (?texi2dvi):

Il existe différentes versions du script texi2dvi sur Unix et un grand nombre de bugs ont été vus, dont certains sur lesquels ce wrapper R fonctionne.

L'une des versions de texi2dvi version 4.8 (fournie avec OS X) est que cela ne fonctionnera pas correctement pour les chemins contenant des espaces, ni si le chemin absolu d'un fichier contient des espaces.

Il s’agit bien évidemment d’un bogue muet. La meilleure solution consiste donc à éviter les chemins avec des espaces.

2
amc