Je mets en page un document qui assemble différents fichiers .tex.

Peu à peu je découvre diverses corrections à effectuer au sein de ces documents. Il m'est parfois difficile de me souvenir du document source : dois-je corriger fragmentE.tex ou fragmentG.tex ?

Pour gagner du temps, ne me serait-il pas possible de faire figurer temporairement, en bas de page, le nom du fichier originel ? Y a-t-il une extension qui fait cela ?

Posée 11 Avr '16, 14:15

Pathe's gravatar image

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

J'introduis souvent \jobname pour imprimer dans un document le nom du fichier source, sans le chemin, ni l'extension.

(11 Avr '16, 17:11) pzorba75 pzorba75's gravatar image

Là, je cherche une extension, que je pourrais activer ou désactiver à loisir, qui imprimerait le nom du fichier source.

Faudrait-il que je combine \jobname avec \fancyhf ?

(11 Avr '16, 17:13) Pathe ♦♦ Pathe's gravatar image

La classe ltxdoc.cls utilisée par LaTeX Project team pour produire la documentation de la source latex2e définit une commande \DocInclude mais celle-ci est valide seulement pour les extensions dtx et fdd.

Je ne sais pas si une autre extension (ou classe) a une telle commande. Mais je pense que redéfinir input ou include est toujours possible.

(11 Avr '16, 20:16) touhami touhami's gravatar image

Cela ne fonctionne pas : \jobname est le nom du fichier sur lequel la compilation a été lancée, par ceux d'éventuels fichiers appelés au sein de celui-ci.

(11 Avr '16, 20:34) Pathe ♦♦ Pathe's gravatar image

Redéfinir \input, c'est déjà fait par LaTeX !

(11 Avr '16, 21:46) unbonpetit ♦♦ unbonpetit's gravatar image

@Pathe réponse mis à jour.

(11 Avr '16, 22:19) touhami touhami's gravatar image

@unbonpetit : je n'ai pas compris ce que vous voulez (\input de LaTeX n'est pas la primitive de TeX ? Qui est sauvegardé en \@@input ou quoi ?)

Avez-vous vu ma réponse?

(11 Avr '16, 22:23) touhami touhami's gravatar image

Je ne veux rien et j'ai vu votre réponse. Je signalais simplement que LaTeX redéfinit la primitive \input. Le « \input » de LaTeX n'est plus une primitive et n'est donc pas purement développable, par exemple.

(11 Avr '16, 22:27) unbonpetit ♦♦ unbonpetit's gravatar image

@pzorba75 Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.

(12 Avr '16, 00:20) Pathe ♦♦ Pathe's gravatar image

ÀMHA, cela relève davantage des facilités offertes par l'éditeur, grâce à synctex qui permet la recherche inverse. Un clic de souris dans le PDF à l'endroit à corriger pourrait alors te mener directement au (et même à la ligne pertinente du) fichier source concerné.

Comme je crois que tu utilises Emacs, cf. par exemple ici comment le configurer avec synctex et evince.

(13 Avr '16, 01:14) denis ♦♦ denis's gravatar image

J'utilise vim.

(13 Avr '16, 20:04) Pathe ♦♦ Pathe's gravatar image
1

Cf. alors par exemple ici.

(13 Avr '16, 20:43) denis ♦♦ denis's gravatar image
Affichage de 5 parmi 12 Afficher 7 commentaire(s) en plus

Voici une solution :

LaTeX utilise implicitement la commande \IfFileExists pour s'assurer que le fichier existe vraiment et sauvegarder ses informations (nom, extension et path), ce qui permet par exemple de retrouver la liste des packages utilisés via \listfiles. Le nom de fichier est sauvegardé en \@filef@und.

Ouvrir dans l'éditeur
\documentclass{book}
\usepackage{lipsum}

\usepackage{fancyhdr}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.4pt}
\fancyhf{}  
\fancyfoot[ER,OL]{\myfilename} 
\fancyfoot[C]{\thepage}
\pagestyle{fancy}

\makeatletter
\newcommand*\myfilename{\@filef@und}
\AtBeginDocument{\let\@filef@und\jobname}% ou bien
%\AtBeginDocument{\let\@filef@und\@empty}
\makeatother

\begin{document}
\lipsum[1]
\include{mytest1}
\lipsum[1-2]
\include{mytest2}
\lipsum[1-2]
\input{mytest1.tex}

\end{document}
Lien permanent

Publiée 11 Avr '16, 21:17

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Modifiée 14 Avr '16, 19:58

Pathe's gravatar image

Pathe ♦♦
7.5k42203251

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.