Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/07/2013, à 08:26

thierrySN

LATEX: comment savoir sous quel OS la compilation TEX a lieu

Bonjour,

Je m'explique ...mieux.

Je dois maintenir des sources TEX sous Windows ET Ubuntu les documents étant "partagés" et susceptibles d'être compiler dans l'un ou l'autre environnement 'environnement scolaire sur réseau hétérogène...)

Existe t'il une commande sous Latex  permettant de positionner un flag du genre bWindows et qui serait positionner en fonction de l'OS hôte et qui serait ensuite utilisable avec une instruction Ifthen par, exemple: une sorte de compilation conditionnelle en quelque sorte

Merci d'avance

Thierry

Hors ligne

#2 Le 03/07/2013, à 09:22

elendil

Re : LATEX: comment savoir sous quel OS la compilation TEX a lieu

Peut-être une piste ici : http://tex.stackexchange.com/questions/ … n-hostname

Il ne semble pas y avoir de solution miracle mais plutôt différente manière de bricoler quelque chose....

Hors ligne

#3 Le 03/07/2013, à 09:48

gigiair

Re : LATEX: comment savoir sous quel OS la compilation TEX a lieu

thierrySN a écrit :

Bonjour,

Je m'explique ...mieux.

Je dois maintenir des sources TEX sous Windows ET Ubuntu les documents étant "partagés" et susceptibles d'être compiler dans l'un ou l'autre environnement 'environnement scolaire sur réseau hétérogène...)

Existe t'il une commande sous Latex  permettant de positionner un flag du genre bWindows et qui serait positionner en fonction de l'OS hôte et qui serait ensuite utilisable avec une instruction Ifthen par, exemple: une sorte de compilation conditionnelle en quelque sorte

Merci d'avance

Thierry

Un fichier LaTeX compile aussi bien sous n'importe quel système. Je n'ai jamais observé de différence.
Tu as un exemple de fichier qui pose problème ?
Autrement, bien sûr qu'il est possible de savoir sous quel OS on se trouve, mais il faudra sans doute faire des appels système, ou bien tester la présence d'un fichier qui signe l'OS.

Dernière modification par gigiair (Le 03/07/2013, à 09:52)


--
JJR.

Hors ligne

#4 Le 03/07/2013, à 10:03

thierrySN

Re : LATEX: comment savoir sous quel OS la compilation TEX a lieu

Bonjour,

Oui en particulier en utilisant Xcas et certain packages spécifiques qui l'utilise: il est nécessaire de passer en option [windows] si on compile sous cet OS

En fait les modifications du code TEX ne se font que dans le préambule du fichier TEX ...qui dépend donc de l'OS.

Je pense que la solution serait peut être de créer une variable d'environnement de même nom par exemple TEX_OS et que l'on lirait sout Latex....ce que je ne sais par contre pas faire.

Merci

Thierry

Hors ligne

#5 Le 03/07/2013, à 10:26

Braun

Re : LATEX: comment savoir sous quel OS la compilation TEX a lieu

Bonjour,
Ce n'est pas pour botter en touche, mais je pense que fournir des sources "OS dependant" est une hérésie grave.
Par principe, Latex est fait pour être portable et universel et, quitte à laisser de côté quelques fioritures je préfère retoucher les fichiers construits par d'autre logiciels de façon à les rendre compatibles.
Personnellement, sans aller jusqu'au multi OS, je déplore déjà les incompatibilités entre certains compilateurs, e.g. dvips qui refuse les images bitmap et pdflatex qui ne supporte pas psTricks, mais je ne suis qu'un utilisateur mu, même pas lambda.

Hors ligne

#6 Le 03/07/2013, à 14:46

gigiair

Re : LATEX: comment savoir sous quel OS la compilation TEX a lieu

thierrySN a écrit :

Bonjour,

Oui en particulier en utilisant Xcas et certain packages spécifiques qui l'utilise: il est nécessaire de passer en option [windows] si on compile sous cet OS

Si c'est pour utiliser un des packages de Guillaume Connan (tablor, etc.), bon courage pour faire fonctionner ça sous Windows, je m'y suis cassé les dents.
S'il s'agit de reconnaître une machine particulière, un \IfFileExists fera le truc :

\documentclass{minimal}
begin{document}
 On est probablement \IfFileExists{/initrd.img}{}{pas} sous Linux
\end{document}

S'il s'agit de reconnaître une machine que l'on ne connaît pas a priori, c'est plus sportif.
Il faut lancer une commande par \write18 et récupérer le retour, puis l'analyser.

@Braun Pour inclure les images il suffit de les convertir en eps et en png et de les placer dans un répertoire approprié. Ne pas donner l'extension du fichier, et il sera inclus quel que soit le mode de compilation.
pstricks n'est pas traité par LaTeX, mais par dvips. pdflatex ne l'appelle pas, il faut donc compiler en mode latex. Un bon éditeur, ça aide. Emacs+Auctex sait reconnaître si on appelle pstricks tout seul comme un grand et modifie la commande de visualisation. Comme on peut indiquer le mode de compilation dans le fichier lui-même, tout baigne.

Dernière modification par gigiair (Le 03/07/2013, à 14:46)


--
JJR.

Hors ligne

#7 Le 04/07/2013, à 12:22

thierrySN

Re : LATEX: comment savoir sous quel OS la compilation TEX a lieu

Bonjour,

Oui c'est en particulier pour interfacer de façon transparente Professor.gui ...mais plus généralement Xcax ou Mathematica qui n'existe que sous W7 ..j'ai bon espoir et y suis arrivé déjà pour certains modules.

Finalement j'ai opté pour une solution très très basique...avec un fichier flag ( oui je sais pas très joli...)

%ON TEST OS
\IfFileExists{C:/LatexWindowsFLAG.txt}{% WINDOWS
....blabla option W7
}{
% LINUX
....blabla option UB
}

Thierry

Hors ligne

#8 Le 04/07/2013, à 13:59

elendil

Re : LATEX: comment savoir sous quel OS la compilation TEX a lieu

thierrySN a écrit :

Finalement j'ai opté pour une solution très très basique...avec un fichier flag ( oui je sais pas très joli...)

Dans ce cas là c'est certainement plus "propre" de le faire comme l'a dit gigiair avec le fichier /initrd.img.
En effet l'avantage c'est que si tu ré-installe/migre ou que tu donnes ton code LaTeX, le test Windows vs Linux sera toujours bon alors qu'avec un fichier flag que tu ajoutes manuellement quelqu'un sous windows qui n'a pas ce fichier ne pourra pas compiler !

Hors ligne