Déplacement des fichiers auxiliaires lors de la compilation

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux membres inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
jmarty
Utilisateur débutant
Utilisateur débutant
Messages : 6
Inscription : dimanche 29 août 2021, 04:14
Statut actuel : Enseignant

Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par jmarty »

Bonjour,

lors de la compilation plusieurs fichiers sont crées. Est-il possible de faire en sorte que mis à part les fichiers .tex et .pdf les autres fichiers soient deplacés automatiquement dans un autre répertoire ou un sous répertoire ?

Pour information j'ai Miktex et Texmaker.
MB
Administrateur
Administrateur
Messages : 7549
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par MB »

Bonjour, lors de la compilation il est possible de spécifier l'option --output-directory=dir afin de faire en sorte que tous les fichiers soient créés dans le dossier spécifié et pas dans le dossier contenant le fichier tex. Par contre, le fichier pdf sera aussi dans ce dossier.

Il semblerait (voir ici) que MikTeX propose une option --aux-directory=dir permettant de ne pas mettre le pdf dans ce dossier.
MB. (rejoignez pCloud afin d'obtenir 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par projetmbc »

Bonsoir.

Pourquoi vouloir retirer ces fichiers utiles à la compilation ?
MB
Administrateur
Administrateur
Messages : 7549
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par MB »

Ils ne sont pas retirés, ils sont juste dans un autre dossier. Après je ne sais pas exactement quel est l'intérêt.
MB. (rejoignez pCloud afin d'obtenir 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
pzorba75
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 220
Inscription : mardi 20 août 2013, 04:50
Localisation : Paris

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par pzorba75 »

Je cherche également pareille solution pour éviter d'encombrer mes répertoires de documents avec des fichiers .log, .dvi, .ps et quelques autres qui me sont inutiles quand je reviens sur un document pour le corriger (je fais beaucoup d'erreurs quand je rédige) ou l'améliorer en le complétant. Faire ces suppression par répertoires est assez fastidieux (et risqué) si bien que mon ordinateur reste encombré de fichiers vraiment inutiles quand je rédige en utilisant Latex, qui reste mon seul outil pour faire des documents avec des formules et des figures mathématiques.
On se lasse de tout, excepté d'apprendre.
Virgile
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1000
Inscription : jeudi 25 novembre 2010, 22:10

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par marco56 »

Un script python me permet le nettoyage en fin de journée. Je peux le donner mais il faut faire attention (différent sous Windows et Linux).
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par projetmbc »

J'avais fait ceci https://github.com/bc-python/mistool/bl ... se.py#L320 mais cela va être modifié d'ici la fin de l'année scolaire pour avoir un truc plus propre et moins amateur.

C'est utilisable en installant via pip install mistool.
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1000
Inscription : jeudi 25 novembre 2010, 22:10

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par marco56 »

Ah oui ! Une vraie usine à gaz.
Pour ma part, j'ai juste un petit script à adapter évidemment :

Code : Tout sélectionner

! /usr/bin/env python3
#-*- coding: utf-8 -*-

# fonctionne avec python3
import os, sys
import os.path
import fnmatch

# Liste des répertoires source
rep_source=(
'/media/m/Disque1/',
'/media/m/Disque-2/')
# Liste des sous-répertoires à exclure
rep_exclus = []

# liste des types de fichiers à effacer
type_fichier_ubuntu = ['*.aux', '*.bbl', '*.blg', '*.cb',
'*.cmx', '*.cpd', '*.cpx', '*.', '*.ded', '*.def',
'*.det', '*.dex', '*.dvi', '*.idx', '*.ilg', '*.ind',
'*.loa', '*.lod', '*.lof', '*.log', '*.lol', '*.lot',
'*.lox', '*.maf', '*.mtc*', '*.mw', '*.nav', '*.out',
'*.prx', '*.prd', '*.ptx*', '*.pyc', '*.pyd', '*.pyx',
'*.scd', '*.scx', '*.snm', '*.syd', '*.syx', '*.toc',
# !!!!!!!!!**********   uniquement sous ubuntu   ************!!!!!!!!
# parce que sous Windows, cela sème la panique !!!!!!!!!!!!!!!!!!!!!!
'*.cmd','*.ps', '*.ptc?', '*.ptc??', '*.ptc???',
'*.exonew','*.solnew',"*.cb2","*.collenew",
"*.defnew", "*.theonew"]

 
type_fichier_windows = ['*.aux', '*.bbl', '*.blg', '*.cb',
'*.cmx', '*.cpd', '*.cpx', '*.', '*.ded', '*.def',
'*.det', '*.dex', '*.dvi', '*.idx', '*.ilg', '*.ind',
'*.loa', '*.lod', '*.lof', '*.log', '*.lol', '*.lot',
'*.lox', '*.maf', '*.mtc*', '*.mw', '*.nav', '*.out',
'*.prx', '*.prd', '*.ptx*', '*.pyc', '*.pyd', '*.pyx',
'*.scd', '*.scx', '*.snm', '*.syd', '*.syx', '*.toc']

cpt=0 # compteur fichiers supprimés

os_perso = sys.platform
if os_perso == "win32":
    type_fichier = type_fichier_windows
else:
    type_fichier = type_fichier_ubuntu
for dossier in rep_source:
    for root, repertoires, fichiers in os.walk(dossier):
        repertoires=tuple(x for x in repertoires if x not in rep_exclus)

        # Parcours récursif des types
        for chaque_type in type_fichier:
            # Parcours récursif des répertoires
            for fichier in fnmatch.filter(fichiers, chaque_type):
                # affiche les fichiers supprimés
                print(fichier, ' supprimé')
                #efface les fichiers
                os.remove(os.path.join(root, fichier))
                # incrémente le compteur de fichiers supprimés
                cpt+=1            
				
print(cpt, ' fichiers supprimé(s) !')
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par projetmbc »

Non ce n'est pas du tout une usine à gaz : les responsabilités sont bien circonscrites. Je l'utilise sans souci pour nettoyer des dossiers de façon récursive comme suit.

Code : Tout sélectionner

from mistool import os_use, latex_use

userpath = os_use.PPath("~").normpath

for clouddir in [
    "Google Drive",
    "Dropbox",
    "Documents"
]:
    dirtoclean = userpath / clouddir

    for subdir in dirtoclean.walk("dir::**"):
        print(
            '---',
            "  + Cleaning LaTeX extras in {}".format(subdir),
            sep = "\n"
        )

        latex_use.clean(subdir)
Pour info, les lignes "nettoyantes" sont les suivantes.

Code : Tout sélectionner

#!/usr/bin/env python3

from mistool.config import latex
from mistool.os_use import PPath


# -------------- #
# -- CLEANING -- #
# -------------- #

TEMP_EXTS     = latex.TEMP_EXTS
EXTS_TO_CLEAN = latex.EXTS_TO_CLEAN

def clean(
    ppath,
    exts       = EXTS_TO_CLEAN,
    showoutput = False
):
    """
prototype::
    arg = PPath: ppath ;
          the path of either one ¨latex file or a directory
    arg = list(str): exts = EXTS_TO_CLEAN ;
          the list of extensions of the special files made by ¨latex that
          have to be removed
    arg = bool: showoutput = False ;
          by default, ``showoutput = False`` asks to not show the informations
          about the cleaning

    action = this function removes extra files build during a ¨latex compilation
             that are associated to a file, or the ones corresponding to all the
             ¨latex files in a directory.
"""
# One file
    if ppath.is_file():
        if ppath.ext != "tex":
            _raise_io_error(
                kind   = "file",
                ppath  = ppath,
                action = NOT_TEX_ERROR
            )

        texpaths = [ppath]

# One directory : we use an iterator so as to see changes in live.
    elif ppath.is_dir():
        texpaths = ppath.walk("file::**.tex")

# Nothing existing
    else:
        raise FileNotFoundError("path points to nowhere.")

# Clean now !
    for p in texpaths:
        if showoutput:
            print('* Cleaning for "{0}"'.format(p))

        for ext in exts:
            tempfile = p.with_ext(ext)

            if tempfile.is_file():
                tempfile.remove()
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1000
Inscription : jeudi 25 novembre 2010, 22:10

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par marco56 »

Ok.
Pour le coup, une interface graphique (tkinter, ...) serait peut-être judicieuse pour ton projet ?
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par projetmbc »

On va finir par se battre... :lol:

Je limite au maximum la dépendance à des interfaces graphiques. C'est mon côté codeur... :D
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1000
Inscription : jeudi 25 novembre 2010, 22:10

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par marco56 »

projetmbc a écrit : lundi 20 septembre 2021, 16:00 On va finir par se battre... :lol:

Je limite au maximum la dépendance à des interfaces graphiques. C'est mon côté codeur... :D
:mrgreen:
MB
Administrateur
Administrateur
Messages : 7549
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par MB »

J'utilise personnellement le petit script bash suivant (uniquement adapté aux environnements linux). Les fichiers conflicted sont liés au fonctionnement de l'outil de synchronisation pcloud, parfois un peu capricieux dans la détection de doublons lors des compilations.

Code : Tout sélectionner

#!/usr/bin/env bash
src="$(dirname "$(readlink -f "$0")")"
ext="synctex\.gz|out|log|aux|thm|tns|nav|toc|snm|fls|bbl|blg|vrb"
conflicted="\[conflicted\]|\(conflicted\)"
find "$src" -regextype 'awk' -regex ".*(\.($ext)|[[:blank:]]($conflicted)\.[[:alpha:]]*)$" -delete -print
read -sp "Press [Enter] to exit !"
echo
MB. (rejoignez pCloud afin d'obtenir 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par projetmbc »

Je n'avais pas osé parler de Bash qui est le meilleur choix ici. :D

Peut-être qu'un passage via cat et un fichier externe avec les extensions serait mieux.

PS 1: https://www.toptal.com/developers/gitignore donne une liste complète mais avec certaines lignes utilisant des expressions "rationnelles".

PS 2: j'ai mis dans ma liste de choses à faire la création d'un nano projet prenant en compte les extensions à ignorer fournies par le site https://www.toptal.com/developers/gitignore. Il suffira d'indiquer le ou les langages à prendre en compte et le reste sera fait automatiquement.
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1000
Inscription : jeudi 25 novembre 2010, 22:10

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par marco56 »

Je ne sais pas si un fichier bash est la meilleure option, car je fais tout avec python.
Le meilleur outil est celui que l'on maîtrise. :)
MB
Administrateur
Administrateur
Messages : 7549
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par MB »

Je ne connaissais pas cet outil, mais la liste proposée ici semble effectivement très complète (en tout cas bien plus que celle que j'utilise actuellement).
MB. (rejoignez pCloud afin d'obtenir 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par projetmbc »

Pour les non codeurs, regardez llmk découvert ce soir lors d'une mise à jour de TeX Live.
Dernière modification par MB le mercredi 22 septembre 2021, 22:44, modifié 1 fois.
Raison : Ajout du lien github.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2653
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Déplacement des fichiers auxiliaires lors de la compilation

Message non lu par gigiair »

AUCTeX/Emacs dispose de deux commandes pour supprimer les fichiers auxiliaires Clean et Clean All dont la désignation indique clairement la fonction. La liste des extensions de fichiers devant être supprimés est personnalisable. Pour ma part, je n'ai jamais eu à le faire. Suivre le lien pour voir la liste.
Pour l'activer, il suffit de faire défiler les commandes de compilation C-c C-c. Rien à programmer, tout est prêt.
JJR.
LaTeXien migrateur.