Je récupère actuellement le nom des polices utilisées sur mes ordinateurs.

Mais voilà : j'en possède plusieurs, certains d'entre eux ont plusieurs utilisateurs, et certains de ces utilisateurs ont malicieusement installé des polices dans leur répertoire personnel.

Y a-t-il une commande qui permette de récupérer dans le corps du texte le nom de machine, voire le nom d'utilisateur ?

Cela me permettrait d'afficher ceux-ci en pied de page, en plus de la date (commande \today).

Posée 29 Sep '15, 19:09

Pathe's gravatar image

Pathe ♦♦
7.5k42203251
Taux d'acceptation : 55%

Modifiée 13 Oct '15, 23:51

denis's gravatar image

denis ♦♦
7.3k1510

Le postulat de base d'un bon document (La)TeX est qu'on doit pouvoir le recompiler et obtenir le même document à chaque fois (quelles que soient la plateforme et la distribution utilisées). La commande \today (ou même \jobname à la limite) ne respecte pas ce postulat. Les commandes que vous demandez ici le respecteraient encore moins...

(06 Oct '15, 09:58) Paul Gaborit Paul%20Gaborit's gravatar image

Certes. Mais le fait que lualatex permette à un utilisateur très avisé d'afficher ce qu'il y a dans /etc m'a fait imaginer de récupérer le nom de machine.

(06 Oct '15, 12:06) Pathe ♦♦ Pathe's gravatar image
1

@Pathe Cette « fonctionnalité » de luatex peut-être considérée comme un gros trou de sécurité ! D'autant que l'écriture de n'importe quel fichier est aussi possible (avec les droits de l'utilisateur qui compile le document).

(09 Oct '15, 18:55) Paul Gaborit Paul%20Gaborit's gravatar image

Je veux bien que le postulat de base d'un bon document (La)TeX est qu'on doit pouvoir le recompiler et obtenir le même document à chaque fois (quelles que soient la plateforme et la distribution utilisées). Mais ce postulat restreint les possibilités du logiciel. Rien n'empêche d'examiner d'autres de ses possibilités, tant que l'on est conscient d'élaborer des documents ne respectant pas ce premier postulat.

(16 Oct '15, 22:37) Pathe ♦♦ Pathe's gravatar image

1. Si tu regardes dans /etc, c'est que tu es sous linux. Le nom de la machine se trouve dans /etc/hostname. Pour le récupérer, pas besoin de luatex il suffit d'utiliser catchfile. Exemple minimal

Ouvrir dans l'éditeur
\documentclass{letter}
\usepackage{catchfile}
\CatchFileDef{\hostname}{/etc/hostname}{}
\begin{document}
Salut \hostname !
\end{document}

Cette solution ne fonctionne pas pour récupérer le nom d'utilisateur. Dans ce cas il faut créer sur chaque machine et potentiellement chaque répertoire HOME un fichier .username.

2. Une autre solution pour les utilisateurs de make: passer les informations par la ligne de commande. Dans Makefile, on remplace simplement

Ouvrir dans l'éditeur
toto.pdf: toto.tex
         pdflatex $<

par

Ouvrir dans l'éditeur
toto.pdf: toto.tex
         pdflatex "\def\hostname{$(HOSTNAME)}\def\username{$(USER)}\input{$<}"

Ce qui définit les tokens \hostname et \username dans tout le document.

Lien permanent

Publiée 16 Oct '15, 11:48

Tom-Tom's gravatar image

Tom-Tom
863
Taux d'acceptation : 50%

Tiens, c'est amusant : on récupère un nom de machine en ouvrant le premier code sur Overleaf.

(16 Oct '15, 11:55) Tom-Tom Tom-Tom's gravatar image
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.