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

 C++ Discussion :

Latex et C++


Sujet :

C++

  1. #1
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut Latex et C++
    Chères amies et amis du forum
    Je creer un programme qui est censé me produire des exo de calcul mental en C++, et pour cela il doit a la fin me produire des feuille format PDF edité en latex. Auriez vous des sources ou des liens qui me permet d'avancer.
    pour avoir d'exemple de ce que je recherche, vous pouvez regarder le lies ci dessous, ou l'on peut produire des feuilles en lignes, cependant le langage utilisé est le python
    http://www.pyromaths.org/
    Merci

  2. #2
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    bah rien de spécial, tu n'as qu'a générer tes sorties dans des fichiers textes au format tex et appeler le compilateur pdflatex présent sur la machien via une fonction genre system ou popen.

    Regarde du coté de ofstream, string, popen etc

  3. #3
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut
    désolé je suis un peu lent en C++, peut tu etre un peu plus explicite.
    un cas concret:je creer une opération du genre:
    1/2+2=? 1/2,1/4,2,5/2

    que doit retourner ma fonction , une chaine de caractere qui contient du code latex ?

  4. #4
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut
    Je reviens avec mon probleme latex C++,
    j'ai crée une fonctions C++ qui produit un fichiers "Test_Tex.tex", et je souhaite le transformer en pdf grace à pdflatex.

    mon bout de code:
    std::system("pdflatex.exe");, cependant je ne sais pas comment indiqué le fichiers à transformer.

    est ce que le pdflatex.exe se ferme après l'exécution.

    Merci

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 69
    Points : 142
    Points
    142
    Par défaut
    La fonction system() singe le fonctionnement d'une ligne de commande classique.

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::system("pdflatex.exe Test_Tex.tex");

    Si d'habitude pdflatex se ferme après avoir exécuté son boulot, ici il se passera exactement la même chose...

  6. #6
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut
    merci
    j'ai essayé ceci mais sa marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void main()
    {
    	std::system("\"c:\\Program Files\\MiKTeX 2.8\\miktex\\bin\\pdflatex.exe pdflatex c:\\Documents and Settings\\Propriétaire\\Bureau\\Test_Tex.tex\"" );
    	system("pause" );
    }
    Voyez vous l'erreur?

  7. #7
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    system c'ets bof bof. regarde du coté de popen.

    sinon es tu bien sur du chemin et de son echappeemnt dans ta chaine de caractéres ?

  8. #8
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut
    je ne sais pas utilisé popen, peux tu m'indiquer comment cela marche SVP

    Par contre lorsque j'essaye par la commande DOS sa marche, mais alors par mon code C++, sa marche pas (voir le fichiers joint)

    Merci

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Nono Sto Voir le message
    merci
    j'ai essayé ceci mais sa marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void main()
    {
    	std::system("\"c:\\Program Files\\MiKTeX 2.8\\miktex\\bin\\pdflatex.exe pdflatex c:\\Documents and Settings\\Propriétaire\\Bureau\\Test_Tex.tex\"" );
    	system("pause" );
    }
    Voyez vous l'erreur?
    Bonjour,
    Je dis ça comme ça mais vous avez pas écrit un pdflatex en trop dans le commande ??

  10. #10
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut
    oui j'ai vue faute de frappe corriger, mais rien n'y fait

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    J'ai peut être une idée : il doit pas aimer les espaces dans les chemins. Vous pouvez tenter avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void main()
    {
    	std::system("\"c:\\Program Files\\MiKTeX 2.8\\miktex\\bin\\pdflatex.exe\" \"c:\\Documents and Settings\\Propriétaire\\Bureau\\Test_Tex.tex\"" );
    	system("pause" );
    }
    Chaque chemin doit etre entouré de \"

  12. #12
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut
    merci pour ton aide
    le code fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void main()
    {
    	std::system("pdflatex \"c:\\Documents and Settings\\Propriétaire\\Bureau\\Test.tex\"" );
    	system("pause" );
    }
    Cependant je pensais qu'une fenetre apparaitrait pour me demander dans quel fichier enregistrer le nouveaux PDF, mais aprés coup c'est vrai que lorsque je compile mes fichiers avec texmaker , pdf latex ne me demande jamais.
    D'aprés toi y a til une possibilité de faire apparaitre une fenetre de dialogue, ou au moins indiqué dans le programme un fichiers pour sauvegarder le nouveaux PDF.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 69
    Points : 142
    Points
    142
    Par défaut
    Bah si c'est une application console tu fais un truc dans ce genre-là, qui réclame le chemin à l'utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    //Récupération du chemin du fichier
    std::string FichierDeSortie;
    cin >> FichierDeSortie;
     
    //Concaténation à la ligne de commande
    std::string LigneDeCommande("pdflatex \" ");
    LigneDeCommande += FichierDeSortie;
    LigneDeCommande += " \" ";
     
    //Exécution
    std::system( LigneDeCommande.c_str() );

Discussions similaires

  1. doc en latex
    Par alexis_ dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 09/05/2005, 09h06

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