IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Insertion rigoureuse des figures MATLAB dans Word


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Par défaut Insertion rigoureuse des figures MATLAB dans Word
    Bonjour,

    Dans mon manuscrit de thèse, je m'aperçois que je manque de rigueur dans l'insertion de mes figures matlab et le résultat non souhaité est que j'ai des figures insérées dans word avec les labels, le titre, ou encore la légende qui n'ont pas tous la même taille au niveau des caractères.

    Je m'explique sur la procédure que je fais. J'obtiens mes figures à l'aide d'un plot. Puis, je modifie les propriétés (à savoir labels, le titre, ou encore la légende ) de ma figure avec faisant "figure properties" puis je copie ma figure en faisant "copy figure" avant ou après avoir fait undock sur ma figure. Ensuite, dans word, je bidouille avec format pour essayer d'obtenir des images à la même taille.

    Je pense que ma méthode est fortement perfectible et qu'il faut que je sorte mes images tous à la même taille avant de les mettre dans word.

    Questions :

    1) Pouvez-vous me conseiller sur la façon de procéder pour garder les propriétés de mes figures toutes identiques (notamment la taille des polices de caractères) dans Word ?

    2) Une idée serait de lancer mes plots via du code et notamment print pour que tous les propriétés des figures soient identiques. Mais est-ce qu'il n'y a pas une façon de procéder à la main où l'on puisse surveiller la taille de la figure en sortie ?

    Merci d'avance pour vos conseils.

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    salut

    vaste question, quelques conseils :

    1/ créer une figure en lui donnant les paramètres qui vont bien (en particulier ceux concernant l'impression/copie "paper") dès le début :
    position, PaperUnits, PaperPosition, PaperOrientation, PaperOrientation

    2/ il y a également des valeurs par defaut que tu peux positionner avant le tracé :
    DefaultLineLineWidth, DefaultTextFontName, DefaultTextFontSize, DefaultAxesFontName, DefaultAxesFontSize, sOptions.TaillePolice

    3/ pour la recopie dans word, je te conseille de l'automatiser
    soit en utilisant la fonction matlab publish
    soit en utilisant l'automation (à condition de travailler sous windows) et la fonction print

    4/ afin de t'affranchir de la définition et du ratio de ton écran, décoche la case "match figure screen size" dans matlab/preferences/figure copy template/copy option
    tu trouvera d'ailleurs dans le menu figure copy template certaines options pouvant t'aider dans ta démarche

    je te conseille d'abord d'écrire une fonction "creerFigure" que tu utilisera toujours à la place de "figure", et qui initialise ta figure selon les point 1 et 2 ci dessus

    voila en gros les principaux axes

    Fabien

    PS : va voir aussi sur matlab central, il y a peut être des partages de fonctions sur le sujet

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Par défaut
    Salut,
    Je pense que Le Fab a très bien résumé les méthodes existantes.
    Je te conseil de jeter un coup d'oeuil à ce code dans mathworks:
    http://www.mathworks.com/matlabcentr...rdFromMatlab.m
    http://www.mathworks.com/matlabcentr...wordfrommatlab

    Ce code te permet de lancer une session Word et de copier tes valeurs et figures.
    Pour les figures je te conseil de les ouvrir (voir le code de WriteToWordFromMatlab) de les mettre dans le format que tu veux puis de les insérer à l'aide de la fonction FigureIntoWord(ActXWord,gcf);. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     hFig = figure;
        figpos = get(0,'ScreenSize');
        set(hFig, 'Position',[figpos(1) figpos(2) figpos(3) figpos(4)]/1.2)
        logoimg=imread('mon_logo.jpg');
        image(logoimg);
        set(gca,'ytick',[])
        set(gca,'xtick',[])
        set(gca, 'xlim', [1 size(logoimg,2)]);
        set(gca, 'ylim', [1 size(logoimg,1)]);
        set(gca, 'ydir', 'reverse');
        FigureIntoWord(ActXWord,gcf);
        close(gcf)
     
        ActXWord.Selection.InsertBreak; %pagebreak
    Sinon deuxième solution c'est d'effectuer une capture d'écran grâce à cette contribution :
    http://www.mathworks.com/matlabcentr...screen-capture

    Et de coller ton image dans ton documents word en récupérant la sortie de screen-capture avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    figure;
    imshow(Sortie_de_ScreenCapture)
    FigureIntoWord(ActXWord,gcf);

    Mehdi

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Par défaut
    Merci pour vos réponses. Voici mon retour.

    Par rapport aux conseils de FAb :

    Pour les points 1 et 2, j'ai pour ma part déjà enregistrer toutes mes figues dans des fichiers .fig. A quel endroit est-ce que je peux régler ces paramètres (position, PaperUnits, PaperPosition, PaperOrientation, PaperOrientation, DefaultLineLineWidth, DefaultTextFontName, DefaultTextFontSize, DefaultAxesFontName, DefaultAxesFontSize, sOptions.TaillePolice) ? De plus, j'espère que je n'ai pas à relancer à nouveau les fonctions plot.

    Pour le point 3, là, aussi est-ce que je peux faire ces manips alors que j'ai déjà mes fichiers .fig ?

    Pour le point 4, c'est bon. J'ai pu régler ce point.

    Par rapport aux conseils de Medhi :

    Cette idée d'utiliser la fonction FigureIntoWord m'a l'air très interessant. Par contre, j'aurais besoin de vos lumières pour l'utiliser. Une fois, le fichier WriteToWordFromMatlab téléchargé, comment est-ce que je peux faire pour installer cette fonction FigureIntoWord et l'utiliser sur les figures .fig que j'ai enregistré et que j'aimerais inséré dans mon mémoire en word ?

    Merci pour votre aide

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Par défaut
    Bonjour, pouvez-vous m'aider à exploiter les conseils fournis par Fab et Medhi ?

    Je vous remercie pour votre aide.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Par défaut
    Bonjour,

    Citation Envoyé par bendesarts
    Pour les points 1 et 2, j'ai pour ma part déjà enregistrer toutes mes figues dans des fichiers .fig. A quel endroit est-ce que je peux régler ces paramètres (position, PaperUnits, PaperPosition, PaperOrientation, PaperOrientation, DefaultLineLineWidth, DefaultTextFontName, DefaultTextFontSize, DefaultAxesFontName, DefaultAxesFontSize, sOptions.TaillePolice) ? De plus, j'espère que je n'ai pas à relancer à nouveau les fonctions plot.

    Pour le point 3, là, aussi est-ce que je peux faire ces manips alors que j'ai déjà mes fichiers .fig ?
    Pour modifier les propriétés d'une figure que tu as enregistré tu peux faire de cette façon:
    -Tu ouvres la figure via Matlab.
    -Tu écris dans ta fenêtre de commande mesPropriétésFigure = get(gcf)

    Tu vas ensuite pouvoir commencer à tripatouiller dans les propriétés de ta figure pour les régler comme il te chante.

    Ce n'est qu'une première piste, en effet je ne connais pas parfaitement la manipulation des figures, je ne sais par exemple pas commence régler les paramètres "par défaut".

    Je suppose que le plus intéressant serait de faire ça sous forme de fonction, qui ouvrirait une figure, changerait les paramètres désirées, enregistrerait la figure puis fermerait la figure. Tu pourrais ainsi utiliser ta figure fonction sur tout un répertoire plutôt que de toutes les faire une par une.

    NB: petite correction en rouge.

Discussions similaires

  1. copie de figure MATLAB dans Word
    Par bendesarts dans le forum MATLAB
    Réponses: 5
    Dernier message: 01/11/2018, 11h32
  2. [Débutant] Mise en page figure MATLAB dans Word
    Par Mac52 dans le forum MATLAB
    Réponses: 12
    Dernier message: 07/04/2015, 17h26
  3. [Débutant] Insérer proprement des figures MATLAB dans un rapport
    Par abel413 dans le forum MATLAB
    Réponses: 10
    Dernier message: 17/08/2013, 09h24
  4. [VBA-W]Inserer des diapos PPT dans word
    Par dev81 dans le forum VBA Word
    Réponses: 5
    Dernier message: 26/04/2007, 18h08
  5. [VBA-E]Copier des éléments excel dans word
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2007, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo