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

Programmation (La)TeX avancée Discussion :

[\newcommand] Personnalisation de commande


Sujet :

Programmation (La)TeX avancée

  1. #1
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut [\newcommand] Personnalisation de commande
    Bonsoir Tout le monde!

    En ce moment, j'essaie de me créer une petite base personnelle de commandes personnalisées ( du style tableau, ou encore lignes en pointillé etc...).
    Je souhaite savoir si il est possible de créer une commande personnalisée avec possibilité d'y ajouter un argument pour modifier un titre ou une date.

    Par exemple, ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    \documentclass[a4paper,12pt]{article}
    \usepackage[french]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[UTF8]{inputenc}
    \usepackage{boxedminipage}
    \usepackage{comment} %permet d'inclure des commentaires dans un environnement,au lieu de %
    \usepackage{array,multirow,tabularx,diagbox}
    \usepackage{graphicx}
    \usepackage{geometry}
    \usepackage{eurosym}
    \usepackage{xcolor}
    \usepackage{tabulary, calc}
    \parindent=0pt 
     
    \begin{document}
     \renewcommand{\arraystretch}{1.5}
    \begin{tabularx}{\linewidth}{|p{4cm}|X|}
    \hline
    Nom:\dotfill & \centering\arraybackslash Module: Statistique\\
    Prénom: \dotfill & TIC \\
    Classe: \dotfill & Pré requis\\
    Date: \dotfill & Formule\\
    \hline
    \end{tabularx}
    \end{document}
    Me permet d'avoir le tableau ci-dessous:

    Nom : tableau.jpg
Affichages : 883
Taille : 12,8 Ko

    j'arrive bel et bien a créer une newcommand en nommant ma commande personnalisé \tabecol et en mettant en argument le code du tableau.Cependant, c'est le tableau avec le même titre du module qui est appelé. Moi ce que je veux, c'est pourvoir créer une commande avec possibilité d'avoir en argument modifiable, le nom du module.

    Je m'explique:

    \newcommande{\tabecol}{"code du tableau"}{équation du second degré} Pour obtenir ceci:

    Nom : tableau2.jpg
Affichages : 905
Taille : 16,6 Ko

    Même question pour les pointillées, pour éviter de taper plusieurs fois \dotfill, pourquoi pas utiliser une renewcommand avec en argument le nombre de fois que l'on veut faire apparaître une ligne en pointillé.

    Pour le reste; à savoir comment appeler ces commandes personnalisées à partir de n'importe quel fichier source, je pense pouvoir m'en sortir. Mon livre "latex l'essentiel" à l'air de très bien expliquer dans quel répertoire placer ce fichier de commandes personnalisées.

    En espérant m'être fait comprendre.

    A bientôt.

  2. #2
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Avant de proposé une solution, j'aimerai être sur de bien comprendre.
    La colonne de gauche du tableau ne change pas? tu veux juste remplir la colonne de droite en fonction du chapitre que tu rédiges?
    Les lignes pré requis tic et formule, il y aura quoi dedans (une phrase, une liste?)
    J'ai pas bien compris ce que tu souhaites faire avec les pointillés et ou tu veux les mettre.

    Pour le reste; à savoir comment appeler ces commandes personnalisées à partir de n'importe quel fichier source, je pense pouvoir m'en sortir. Mon livre "latex l'essentiel" à l'air de très bien expliquer dans quel répertoire placer ce fichier de commandes personnalisées.
    Avant de vouloir se créer un fichier .sty, ces macros personnelles peuvent très bien rester dans le préambule.

  3. #3
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonsoir,

    Tout comme -Nikopol- un complément d'information me semble nécessaire.
    Indiquer les champs variables permettra de fournir la réponse la plus pertinente.

    Ce type de commandes personnelles sont, à mon avis plutôt à intégrer dans un fichier chargé dans le préambule via la commande \input{mon_fichier_de_commandes_personnelle}.

    Attention, vous semblez vouloir redéfinir via renewcommand la commande \dotfill. A moins que vous ne sachiez très précisément ce que vous faites, je vous le déconseille car il peut y avoir des effets de bords indésirables.

    D'ailleurs, je ne saisi pas du tout l'intérêt de modifier la commande \dotfill.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  4. #4
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Bonsoir tout le monde!

    Effectivement, après relecture, tous cela manque de précision.

    Concernant mon tableau d'en tête:

    Actuellement je sais créer une commande par l'intermédiaire de \newcommand pour récréer à l'identique le même tableau susmentionné ayant pour titre : Statistique. Il suffit de mettre en argument le code du tableau: voici la syntaxe simplifiée: \newcommande{\tabecol}{"code du tableau"}. Cependant, recréer ce tableau avec pour titre statistique est dénué de sens si je dois entamer par exemple un nouveau chapitre sur les équations du second degré.
    Ainsi je me demandais, si il était possible de créer une newcommand ayant en argument le code du tableau (pour avoir la même architecture du cadre) et en argument optionnel le titre du chapitre (entre autre pour rester simple). Comme vous le comprenez, tout cela m'éviterait de copier le code du tableau afin d'y modifier (pour chaque nouveau chapitre) le titre. Ne vous méprenez pas!!, je ne suis pas fainéant... c'est juste que je souhaite exploiter un maximum; les possibilités de ce logiciel monstrueux


    Concernant les pointillés (rien à voir avec mon tableau)


    À la suite d'une question, j'aime bien mettre des lignes en pointillés pour permettre à l'élève de rédiger ses réponses sur ces même lignes. En fonction de la réponse attendu, parfois, il m'en faut 2, 3, 4 ou 5 lignes. je me disais donc:

    Au lieu d'écrire à chaque fois:

    \dotfill\dotfilletc..... (en fonction du nombre de ligne que l'on souhaite avoir)

    Serait-il possible de créer une commande capable de réaliser des lignes en pointillés avec en option le nombre de lignes souhaitées. Cela éviterait le copier coller de la commande \dotfill.

    C'est en latexant que l'on devient latexeur

    A bientôt les gars!

  5. #5
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Ainsi je me demandais, si il était possible de créer une newcommande ayant en argument le code du tableau (pour avoir la même architecture du cadre) et en argument optionnel le titre du chapitre (entre autre pour rester simple). Comme vous le comprenez, tout cela m'éviterait de copier le code du tableau afin d'y modifier (pour chaque nouveau chapitre) le titre. Ne vous méprenez pas!!, je ne suis pas fainéant...
    C'est bien d'être fainéant, ça oblige à être intelligent
    Du coup, ce qui peut être pratique c'est de pouvoir remplir les autres lignes sans avoir à reprendre le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    \documentclass[10pt,a4paper]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{tabularx}
    \usepackage{array} 
     
     
    \makeatletter
    \def\montableau#1#2#3#4{%
    \renewcommand{\arraystretch}{1.5}
    \setlength{\fboxsep}{6pt}
    \addvspace\baselineskip\par\parindent\z@
    \begin{tabularx}{\linewidth}{|p{4cm}|X|}
    \hline
    Nom:\dotfill & \centering\arraybackslash Module: #1\\
    Prénom: \dotfill & TIC : #2\\
    Classe: \dotfill & Pr\'e requis : #3\\
    Date: \dotfill & Formule : #4\\
    \hline
    \end{tabularx}
    \par\addvspace\baselineskip}
    \makeatother 
     
    \begin{document}
    \montableau{Statistiques}{tableur}{pas grand chose}{$3\times2=6$}
    \montableau{\'Equations du second degr\'e}{calculatrice}{premier degr\'e}{$\Delta=b^2-4ac$}
    \montableau{Fonction dérivée}{geogebra}{représentation d'une fonction}{$f'(x) =\lim\limits_{\substack{h \to 0 \\ h\neq 0}} \frac{y(x+h)-y(x)}{h}$}
    \end{document}
    Ainsi dans les quatre arguments tu peux remplir tes quatre lignes de la partie droite du tableau.
    Si tu as une liste des élèves dans un fichier externe, il est aussi possible de demander à TeX de remplir la partie gauche de façon automatique.

  6. #6
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Non mais c'est pas possible!!! Une guêpe Latex t'a piqué ??? On a pas acheté les mêmes bouquins?? J'ai cherché dans le chapitre relatif à la newcommande sur mes deux bouquins et je n'ai pas pu trouver les informations que tu viens de me donner.
    A moins que le fait d'être un débutant fait que certaines informations écrites dans ces bouquins ne me soient encore intelligibles.

    Bon, maintenant il ne me reste plus qu'a étudier ton code car il y a plein de choses nouvelles que je ne connais pas!!!

  7. #7
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Pardon!!

    j'oubliais de te remercier! Concernant la possibilité de rentrer les noms des élèves automatiquement, je n'irais pas trop vite en besogne. Je veux pouvoir maitriser la base.

    Encore merci

  8. #8
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Surement le fait d'être débutant, tu dois ingurgiter un tas d'informations, la macro \montableau n'a rien de compliquée du tout. Elle prend les arguments et les place dans le tableau rien d'autre.
    Regarde ce que fait cette macro tu comprendras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    \documentclass{minimal}
    \newcommand{\toto}[3]{%
    	\textbf{#1} 
    	\emph{#2}
    	\begin{LARGE}
    	#3
    	\end{LARGE}}
    \begin{document}
    \toto{voici un texte en gras}{puis emphasé}{puis large}
    \end{document}

  9. #9
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par -Nikopol- Voir le message
    C'est bien d'être fainéant, ça oblige à être intelligent
    Du coup, ce qui peut être pratique c'est de pouvoir remplir les autres lignes sans avoir à reprendre le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    \documentclass[10pt,a4paper]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{tabularx}
    \usepackage{array} 
     
     
    \makeatletter
    \def\montableau#1#2#3#4{%
    \renewcommand{\arraystretch}{1.5}
    \setlength{\fboxsep}{6pt}
    \addvspace\baselineskip\par\parindent\z@
    \begin{tabularx}{\linewidth}{|p{4cm}|X|}
    \hline
    Nom:\dotfill & \centering\arraybackslash Module: #1\\
    Prénom: \dotfill & TIC : #2\\
    Classe: \dotfill & Pr\'e requis : #3\\
    Date: \dotfill & Formule : #4\\
    \hline
    \end{tabularx}
    \par\addvspace\baselineskip}
    \makeatother 
     
    \begin{document}
    \montableau{Statistiques}{tableur}{pas grand chose}{$3\times2=6$}
    \montableau{\'Equations du second degr\'e}{calculatrice}{premier degr\'e}{$\Delta=b^2-4ac$}
    \montableau{Fonction dérivée}{geogebra}{représentation d'une fonction}{$f'(x) =\lim\limits_{\substack{h \to 0 \\ h\neq 0}} \frac{y(x+h)-y(x)}{h}$}
    \end{document}
    Ainsi dans les quatre arguments tu peux remplir tes quatre lignes de la partie droite du tableau.
    Si tu as une liste des élèves dans un fichier externe, il est aussi possible de demander à TeX de remplir la partie gauche de façon automatique.
    Alors j'ai étudié ton code et j'aurais quelques questions à te poser:

    Après recherche, j'ai compris que tu avais emmurer le code du tableau par "makeatletter" et "makeatother" pour que le @ de la commande \z@ soit interprété comme une lettre.
    Naturellement, je dois te demander: Mais quelle est cette commande \z@?

    y a t-il plusieurs façons de définir une commande? je m'attendais à ce que tu utilise la syntaxe suivante:

    \newcommande{\montableau}[4]{code du tableau avec les arguments #1 #2 #3 #4}Toi tu as écris: \def\montableau#1#2#3#4. As tu redéfinis la commande \newcommande? Pourquoi écris tu {%
    Ensuite tu écris \addvspace\baselineskip\par\parindent : Si j'ai bien compris, tu as inséré un espace verticale. \baselineskip ( saut de ligne de base ?? je ne comprends pas trop à quoi elle sert ).
    A quoi sert la commande \par ?
    Et enfin tu utilise la commande \parindent pour insérer une indentation ou la supprimer car je ne vois pas de: \parindent=5pt ( par exemple: dans ce cas, on ajouterait un retrait de 5 pt).

    j'imagine que \fboxsep gère les séparations entre les boites. mais ici je ne vois pas l'intérêt de : \setlength{\fboxsep}{6pt} : car quand je fais varier la valeur numérique "6pt" aucun changement physique sur le rendu pdf.

  10. #10
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    J'ai voulu te répondre rapidement ce matin, et je l'avoue mon message n'était pas très pédagogique. (j'ai recopié en partie un code que j'avais, d'où ...)
    • \z@ renvoit une dimension qui vaut 0 (commande TeX) ;
    • \def est la façon de définir une commande par TeX, j'aurais du uiliser \newcommand ici (voir plus bas) ;
    • sans entrer dans des détails un peu trop TeXniques : \addvspace\baselineskip\par ajoute un espace avant le tableau (c'est pas aussi simple...)je n'aurai peut être pas dû mettre cette ligne dans ce code puisque ton tableau est peut être une entête, auquel cas il n'y aura pas de texte avant ;
    • \par : commande pour terminer un paragraph ;
    • \parindent=0pt pour que le tableau commence sans indentation ;
    • \fboxsep tu as parfaitement raison c'est pour les boites, ma faute, copié-collé sans relire, il faut utiliser \tabcolsep.

    Voilà le code que j'aurais du envoyer, le principe est le même, mais il est plus compréhensible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    \documentclass[10pt,a4paper]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{tabularx}
    \usepackage{array} 
     
     
    \newcommand{\montableau}[4]{%
    	\renewcommand{\arraystretch}{1.5}
    	\setlength{\tabcolsep}{8pt}
    	\vspace\baselineskip %selon l'utilisation du tableau en entête ou pas
    	\par\parindent=0pt
    	\begin{tabularx}{\linewidth}{|p{4cm}|X|}
    		\hline
    		Nom:\dotfill & \centering\arraybackslash Module: #1\\
    		Prénom: \dotfill & TIC : #2\\
    		Classe: \dotfill & Pr\'e requis : #3\\
    		Date: \dotfill & Formule : #4\\
    		\hline
    	\end{tabularx}
    	\vspace{\baselineskip}}
     
    \begin{document}
    \montableau{Statistiques}{tableur}{pas grand chose}{$3\times2=6$}
    \montableau{\'Equations du second degr\'e}{calculatrice}{premier degr\'e}{$\Delta=b^2-4ac$}
    \montableau{Fonction dérivée}{geogebra}{représentation d'une fonction}{$f'(x) =\lim\limits_{\substack{h \to 0 \\ h\neq 0}} \frac{y(x+h)-y(x)}{h}$}
    \end{document}

  11. #11
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Ah ok!! C'est beaucoup plus clair maintenant. D'ailleurs un de ces jours, il faudra que j'étudie les nuances sémantiques autour de Tex et laTex car (AMHA), je risque de rencontrer d'autres personnes utilisant des commandes tex.

    Merci

  12. #12
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Ah oui, j'oubliais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \newcommand{\montableau}[4]{%
    À quoi sert de mettre le % ? j'ai essayé de compiler sans, et cela fonctionne toujours. C'est volontaire ? Et pourquoi?

  13. #13
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Un petit code plus facile à comprendre que celui de ce matin
    J'ai pas mis de @ et utilisé \newcommand
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    \documentclass[10pt,a4paper]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{amsmath}
     
     
     
    \newcommand{\pointi}[1][2]{%
    	\parindent=0pt
    	\def\nbligne{#1}
    	\def\currentline{0}
    		\loop
    			\edef\currentline{\number\numexpr\currentline+1 }%
    			\unless\ifnum\currentline>\nbligne
    			\dotfill\par
    		\repeat}
     
    \begin{document}
    \noindent Résoudre les équations suivantes :
    \begin{itemize}
    \item $2x+1=5$ \pointi[5]
    \item $4x-3=9x$
     
    \pointi[3]
    \end{itemize}
     
    \noindent Par défaut il y aura deux lignes de pointillés
     
    \pointi
     
    \noindent on peut aussi changer de page.
     
    \pointi[66]
     
    \end{document}
    Cette macro n'a qu'un usage limité (lignes complètes, pas dans un tableau, pas en mode mathématiques,...
    Si tu veux plus performant, il faudra un code un peu plus complexe.

  14. #14
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Salut !!

    J'étais en train de regarder le code que tu m'avais proposé il y a 1 mois de cela concernant la création d'une commande pour insérer des lignes de pointillés. Aujourd’hui avec un mois de recul, j'arrive à faire cela mais avec une méthode beaucoup plus simple que celle que tu m'as proposé. J'utlise \multido.

    Tu avais fais fort en me proposant ton code !! En tout cas, c'est toujours bien d'avoir plusieurs flèches à son arc, je vais essayer ton code dans 2 ou 3 mois quand j'aurais un peu plus de Latexrience !!!!

  15. #15
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    salut!

    Le code que j'utilise pour les pointilles ne me permet pas l'utilisation dans les tableaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    \newcommand{\pointilles}[1]{%
    \multido{}{#1}{%
    \makebox[\linewidth]{\dotfill}\\
    }}
    Code vu dans la brochure latex pour les profs de maths

    Est ce que quelqu'un aurait une proposition compréhensible pour un débutant pour remédier à ce problème ?

  16. #16
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Désolé du retard, je voulais répondre et puis j'ai oublié la discussion.
    En utilisant multido, tu as l'impression que c'est plus simple, mais c'est simplement parce que le code de multido est caché, je t'invite à regarder le fichier .sty de multido.
    Le code que je t'ai proposé est très simple, il s'agit d'une simple boucle. (Ce qui peut paraître déroutant c'est la syntaxe de TeX)
    Voici le code commenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    \newcommand{\pointi}[1][2]{%commande prennant un argument, si pas d'argument alors il vaudra 2
    	\parindent=0pt% supprime l'indentation
    	\def\nbligne{#1}% définition d'une macro indiquant le nombre de ligne pointillées que l'on souhaite, on aurait pu utiliser un compteur
    	\def\currentline{0}% définition d'une macro qui va compter le nombre de lignes effectuées, on aurait pu aussi utiliser un compteur
    		\loop% boucle
    			\edef\currentline{\number\numexpr\currentline+1 }%on incrémente la macro ligne
    			\unless\ifnum\currentline>\nbligne% tant que currentlin n'est pas > à nbligne
    			\dotfill\par % on fait une ligne pointillé
    		\repeat% et on repète}

  17. #17
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    D'accord merci !! Je vais étudier tous cela !

    Si j'ai bien compris, latex est une évolution de TEx et contient une collection de commandes Tex ? J'imagine que Tex a évolué en Latex pour faciliter la prise en Main. En faite, Latex fournit des commandes raccourcis en quelques sortes c'est cela ? Moi je me suis lancé directement dans le LaTex car la plupart de mes documentations traitent de Latex. Tu me conseilles d'apprendre le langage Tex ? J'ai l'impression qu'utiliser le langage Tex, c'est flirter déjà avec la programmation.

    Toi qui code en Tex, quelles ont étés tes sources d'apprentissages ?

    Concernant ton code source en TeX:

    La commande whiledo ne serait pas un raccourci ou un équivalent de ton code ?

    C'est ce genre de codes que l'on trouve dans le fichier sty ? Dis moi, comment je dois faire pour lire le fichier sty de multido stp? Si j'ai bien compris, je peux apprendre le langage Tex en lisant les sources Tex de certaines commandes ?

  18. #18
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    Bonsoir tout le monde !

    J'ai cherché mais je ne sais toujours pas comment accéder au fichier multido.sty pour lire la définition de la commande \multido. Sinon j'ai pu trouvé de la documentation pour l'apprentissage de TeX : "TeX pour l'impatient " qui a l'air intéressant .

    Si vous en connaissez d'autres, je suis preneur !!

    A bientôt!

  19. #19
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    En utilisant la fonction recherche de ton pc, tu aurais surement pu trouver ce fichier dans ton installation.
    Sinon pour MikTeX, le chemin doit-être quelque chose comme C:\texmf\tex\latex\.

    Il y a le TeXbook entre autre mais ce n'est pas des plus simple à lire.

  20. #20
    Membre régulier
    Avatar de floyd973
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Points : 119
    Points
    119
    Par défaut
    merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. personnaliser un Command Button
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/06/2010, 15h12
  2. personnaliser la commande more
    Par devaben dans le forum Linux
    Réponses: 3
    Dernier message: 11/05/2009, 08h34
  3. Reconnaissance vocale : personnaliser les commandes
    Par Emotion dans le forum Windows Vista
    Réponses: 7
    Dernier message: 28/12/2008, 22h30
  4. Eclipse CDT : personnaliser sa commande de compilation
    Par totosursonchameau dans le forum Eclipse C & C++
    Réponses: 4
    Dernier message: 05/11/2008, 11h39
  5. Code/Commande : personnaliser un dossier
    Par entreprise38 dans le forum Windows Vista
    Réponses: 5
    Dernier message: 02/11/2008, 23h20

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