Je travaille avec des collègues sur un long document, et nous ne sommes pas au même endroit. D'où des échanges continuels de courriels, notamment pour les photos incluses dans le document.

Existe-t-il une extension permettant de compiler des photos stockées sur un serveur distant, dont on ne renseignerait que l'URL ? Quelque chose du type \includegraphics{http://server.tld/image1.jpg} ?

Lors de la compilation, LaTeX irait chercher la ressource en ligne et l'enregistrerait en local : cela éviterait les fastidieux enregistrements préalables à toute inclusion de nouvelles photos dans le document.

Posée 08 Nov '16, 20:43

Pathe's gravatar image

Pathe ♦♦
1.9k547
Taux d'acceptation : 55%

Modifiée 08 Nov '16, 20:44

C'est possible avec --shell-escape et \write18. Je n'ai jamais testé mais ce n'est pas compliqué.

(08 Nov '16, 20:55) touhami touhami's gravatar image
1

Voir ce fil sur TeX StackExchange.

(08 Nov '16, 23:03) Bernard Bernard's gravatar image

@Bernard On trouve aussi une solution en pure Lua...

(09 Nov '16, 01:52) Paul Gaborit Paul%20Gaborit's gravatar image

@Paul Gaborit: Encore mieux!

(09 Nov '16, 02:05) Bernard Bernard's gravatar image

L'outil git pourrait également vous intéresser.

(09 Nov '16, 19:25) jerome dequeker jerome%20dequeker's gravatar image

J'ai bien pensé à git, mais notre test n'a pas été concluant dès lors que deux personnes ont compilé chacune de son côté. D'où notre idée de photos hébergées en commun et de fichiers hébergés localement chez chacun des contributeurs.

(09 Nov '16, 23:45) Pathe ♦♦ Pathe's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus

Le plus simple pour ce genre de collaboration c'est de mettre votre projet sur un serveur de gestion de version (par exemple un serveur SVN ou un serveur GIT), et alors pour mettre à jour l'espace de travail local avec les bonnes versions de fichiers (par ex. d'image, mais en fait de tous les fichiers du projet) on lance la commande svn update (pour SVN), ou git pull (pour GIT). Ça me semble infiniment plus propre et plus simple que d'essayer de re-inventer la roue avec des bidouilles utilisant des makefiles et des scripts maison appelant wget ou des utilitaires similaires. Et en plus vous aurez une vraie gestion de version (archivage des étapes intermédiaires, de qui a fait les changements, de pourquoi ces changements, etc...).

Le petit effort que vous ferez pour apprendre la gestion de version sera grandement récompensé par toutes les galères que vous vous éviterez en utilisant une méthode qui a fait ses preuves et qui répond à une problématique très courante.

Sinon, moi aussi je déconseille le --shell-escape.

Lien permanent

Publiée 29 Jan, 01:28

vincentb1's gravatar image

vincentb1
1092
Taux d'acceptation : 0%

La réponse immediate à cette question est oui c'est possible via --shell-escape

Exemple

Ouvrir dans l'éditeur
\documentclass{article}

\usepackage{graphicx}
\newcommand{\includeenligne}[3][]{%
\IfFileExists{#3}{}{\write18{wget #2}}%
\includegraphics[#1]{#3}}

\begin{document}
bla bla

\includeenligne{http://server.tld/image25.jpg}{image25.png}

\end{document}

Mais pour des raison de sécurité je ne recommande pas l'utilisation de --shell-escape.


À mon avis, et en particulier comme il s'agit d'un projet, il est préférable d'ajouter la fonction de téléchargement au procédure de la compilation via un makefile (par exemple).

Exemple le fichier .tex est nommé abc.tex

Ouvrir dans l'éditeur
\documentclass[french]{article}
\usepackage{lmodern}% 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{babel}
\usepackage{makeidx}
\makeindex
\usepackage{biblatex}
\addbibresource{mabiblio.bib}

%---------------------------
\usepackage{graphicx}
\newwrite\mesimages
\immediate\openout\mesimages=myfile.txt

\newcommand{\includeenligne}[3][]{%
\IfFileExists{#3}{\includegraphics[#1]{#3}}{%
\immediate\write\mesimages{#3 + \unexpanded{#2}}}}
%---------------------------
\begin{document}
bla bla \index{bla} bla bla voir \cite{des-dis}

\includeenligne{http://server.tld/others/image1.jpg}{image1.jpg}

bla bla \index{foo} bla bla voir \cite{des-dis}

\includeenligne{http://server.tld/image2.jpg}{image2.jpg}

\printbibliography
\printindex
\end{document}

le makefile est un fichier batch runabc.bat


Remarque ici powershell est utilisé pour télécharger, ça marche aussi pour wget.


Ouvrir dans l'éditeur
@echo off

pdflatex abc

for /r %%a in (*.*) do if "%%~nxa"=="myfile.txt" set size=%%~za

if "%size%"=="0" goto :compile

for /f "tokens=1,* delims=+" %%a in (myfile.txt) do powershell -command "& { (New-Object Net.WebClient).DownloadFile('%%b', '%%a') }"
pdflatex abc

:compile
biber abc
pdflatex abc
pdflatex abc
makeindex abc
pdflatex abc
pdflatex abc

pause

Lors de première passage de pdflatex si une image n'est pas trouvé le nom de fichier et L’URL sont ajouté dans un fichier texte myfile.txt puis si myfile.txt n'est pas vide la fonction de téléchargement est exécutée

Lien permanent

Publiée 09 Nov '16, 10:30

touhami's gravatar image

touhami
2.0k26
Taux d'acceptation : 46%

Modifiée 09 Nov '16, 14:28

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×1
×1
×1

Question posée : 08 Nov '16, 20:43

Question vue : 661 fois

Dernière mise à jour : 29 Jan, 01:28

Questions similaires