{"id":977,"date":"2025-09-16T16:51:53","date_gmt":"2025-09-16T14:51:53","guid":{"rendered":"https:\/\/spheresdevir.ovh\/?p=977"},"modified":"2025-09-22T11:35:33","modified_gmt":"2025-09-22T09:35:33","slug":"les-formulaires-dans-latex","status":"publish","type":"post","link":"https:\/\/spheresdevir.ovh\/index.php\/2025\/09\/16\/les-formulaires-dans-latex\/","title":{"rendered":"Les formulaires dans Latex"},"content":{"rendered":"\n<p>Il est possible de cr\u00e9er des formulaires pdf en Latex. J&#8217;utilise l\u2019extension hyperref pour ce faire.  Les champs de formulaire g\u00e9r\u00e9 par cette extension peuvent avoir des param\u00e8tres utile \u00e0 l\u2019utilisation du javascript comme name, onfocus, onclick, onselect, onkeypress, etc&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\\documentclass&#91;a4paper, 12pt]{report}\n\\usepackage{hyperref}% \\ paquet pour champs de formulaires\n\\begin{document}\n\\begin{Form}\n\\PushButton&#91;name=myButton,onclick={HelloWorld();}]{Hello}\\\\\n\\end{Form}\n\\end{document}<\/code><\/pre>\n\n\n\n<p>Je reviendrais plus en d\u00e9tail dans un autre article de l&#8217;utilisation du javascript en Latex.<br>Il est recommand\u00e9 dans la documentation officiel de n&#8217;avoir qu&#8217;un seul formulaire par document.<br>Le formulaire est d\u00e9limit\u00e9 par un \\begin{Form} et par un \\end{form}, comme vous pouvez le voir ci-dessus.<\/p>\n\n\n\n<p class=\"has-large-font-size\">\\TextField<\/p>\n\n\n\n<p>TextField est une zone de texte qui de base est mono-ligne. Voici ci-dessous, une liste plut\u00f4t exhaustive  des options que l&#8217;on peut mettre \u00e0 TexField:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% Zone de texte monoligne avec en label \"Mon label :\"\n\\TextField{Mon label :}\\\\\n\n%Si vous ne souhaitez pas avoir de label, il suffit de laisser un espace entre les accolades\n\\TextField{ }\\\\\n\n%Le param\u00e8tre d'align permet d'aligner le texte dans le le champ de formulaire : 0 pour gauche, 1 pour le centre et 2 pour la droite\n\\TextField&#91;align=2]{Mon label :}\\\\\n\n%Le param\u00e8tre de backrgroundcolor permet de modifier la couleur de fond du champ de formulaire. Pour appeler une couleur, vous aurez besoin du paquet xcolor.\n\\TextField&#91;backgroundcolor=cyan]{Mon label :}\\\\\n\n%Vous n'aimez par les bordure rouge de votre zone de texte, le param\u00eatre bordercolor est fait pour vous.\n\\TextField&#91;bordercolor=cyan]{Mon label :}\\\\\n\n%Le param\u00e8tre color vous permet de modifier la couleur de police \u00e0 l'int\u00e8rieur de votre zone de texte.\n\\TextField&#91;color=cyan]{Mon label :}\\\\\n\n%Le param\u00e8tre charsize vous permet de modifier la taille de police \u00e0 l'int\u00e8rieur de votre zone de texte.\n\\TextField&#91;charsize=24pt]{Mon label :}\\\\\n\n%Le param\u00e8tre height permet de g\u00e9rer la hauteur de la zone de texte et width pour la largeur.\n\\TextField&#91;height=250pt, width=300pt]{Mon label :}\\\\\n\n%Quitte \u00e0 faire une grande zone de texte, autant qu'elle puisse contenir plusieur ligne gr\u00e2ce au param\u00eatre multiline. Des bugs ont pu \u00eatre remarqu\u00e9 en fonction du label.\n\\TextField&#91;height=250pt, width=300pt, multiline]{Label :}\\\\\n\n%maxlen permet de limiter le nombre de charact\u00e8re dans un champ de texte\n\\TextField&#91;height=250pt, width=300pt, multiline, maxlen=10]{Label :}\\\\\n\n%password permet de masquer les champs de caract\u00e8res saisie, readonly emp\u00e9che la modification de la zone de texte par l'utilisateur, value permet d'initialiser la zone de texte.\n\\TextField&#91;password, readonly, value=\"test\"]{MDP :}\\\\<\/code><\/pre>\n\n\n\n<p class=\"has-large-font-size\">\\Checkbox<\/p>\n\n\n\n<p>Chexkbox est une case \u00e0 cocher, la syntaxe est assez simple, je ne vais pas remettre les options d\u00e9taill\u00e9 dans TextField, la seul option propre que j&#8217;ai pu voir permet de cocher la case par d\u00e9faut :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>%Case \u00e0 cocher individuel\n\\CheckBox{Oui}\n\n%Case \u00e0 cocher d\u00e9j\u00e0 cocher\n\\CheckBox&#91;checked]{Non}<\/code><\/pre>\n\n\n\n<p class=\"has-large-font-size\">\\PushButton et \\Reset<\/p>\n\n\n\n<p>Personnellement, je suis assez d\u00e9\u00e7us des boutons d&#8217;hyperref, je n&#8217;ai pas r\u00e9ussis \u00e0 les redimensionner et il ne supporte pas le jascript : &#8220;event.target.buttonImportIcon();&#8221; qui aurait pu les rendre particuli\u00e8rement sexy&#8230; <br>M\u00eame si ils font moins que j\u2019esp\u00e9rais, ils peuvent \u00eatre pr\u00e9cieux pour articuler du javascript dans un formulaire. Le bouton Reset permet de r\u00e9initialiser toutes les modifications faites aux formulaires.<br>Je n&#8217;ai pas r\u00e9ussi \u00e0 faire fonctionner le bouton Submit, je pense qu&#8217;il faut mettre des param\u00e8tres suppl\u00e9mentaires au Forms afin qu&#8217;il puisse \u00eatre utilis\u00e9, comme d\u00e9finir l&#8217;action.<br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>%Bouton simple \n\\PushButton{Mon bouton}\\\\\n\n%Bonton cach\u00e9 qui ne cache pas son label et qui rend le bouton non clickable...\n\\PushButton&#91;hidden]{.        .}\\\\\n\n%Bouton de remise \u00e0 zero du formulaire\n\\Reset{R\u00e9initialiser}<\/code><\/pre>\n\n\n\n<p class=\"has-large-font-size\">\\ChoiceMenu<\/p>\n\n\n\n<p>ChoiceMenu s&#8217;occupe des listes \u00e0 choix, la version basique est particuli\u00e8rement pas folle, mais avec les bonnes options, on peut faire des liste utile et jolie :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>%liste \u00e0 choix basique\n\\ChoiceMenu{Question ?}{\noui,\nnon\n}\\\\\n\n%liste d\u00e9roulante gr\u00e2ce \u00e0 l'option combo\n\\ChoiceMenu&#91;combo]{Question 1}{\noui,\nnon\n}\\\\\n\n%liste de case \u00e0 cocher gr\u00e2ce \u00e0 l'option radio\n\\ChoiceMenu&#91;radio]{Question 2}{\n1,2,3\n}\\\\<\/code><\/pre>\n\n\n\n<p>NB: Le nom des labels permet d&#8217;identifier les listes au niveau des pdf, il faut \u00e9viter de mettre des noms identiques.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il est possible de cr\u00e9er des formulaires pdf en Latex. J&#8217;utilise l\u2019extension hyperref pour ce&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51,8],"tags":[43,53],"class_list":["post-977","post","type-post","status-publish","format-standard","hentry","category-latex-pdf","category-technology","tag-43","tag-latex"],"_links":{"self":[{"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/posts\/977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/comments?post=977"}],"version-history":[{"count":6,"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/posts\/977\/revisions"}],"predecessor-version":[{"id":987,"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/posts\/977\/revisions\/987"}],"wp:attachment":[{"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/media?parent=977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/categories?post=977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spheresdevir.ovh\/index.php\/wp-json\/wp\/v2\/tags?post=977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}