From 1bce5380664c1922d4296df529457ab34c6acd82 Mon Sep 17 00:00:00 2001 From: Denis Merigoux Date: Sat, 11 Apr 2020 18:36:00 +0200 Subject: [PATCH] Escape percent in Latex --- src/lawspec/literate/weave.ml | 9 +++++++-- test/allocations_familiales.lawspec | 25 ++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/lawspec/literate/weave.ml b/src/lawspec/literate/weave.ml index 2c6bf076..4ad2a3ec 100644 --- a/src/lawspec/literate/weave.ml +++ b/src/lawspec/literate/weave.ml @@ -17,12 +17,17 @@ module A = Ast module P = Printf +module R = Re.Pcre + +let pre_latexify (s : string) = + let percent = R.regexp "%" in + R.substitute ~rex:percent ~subst:(fun _ -> "\\%") s let source_file_item_to_latex (i : A.source_file_item) : string = match i with | A.LawCode c -> P.sprintf "\\section*{%s}" c - | A.LawText t -> t - | A.LawArticle a -> P.sprintf "\\paragraph{%s}" a + | A.LawText t -> pre_latexify t + | A.LawArticle a -> P.sprintf "\\paragraph{%s}" (pre_latexify a) | A.CodeBlock c -> P.sprintf "\\begin{minted}[firstnumber=%d]{lawspec}%s\\end{minted}" (Pos.get_start_line (Pos.get_position c) + 1) diff --git a/test/allocations_familiales.lawspec b/test/allocations_familiales.lawspec index 88b02181..2d5369ff 100644 --- a/test/allocations_familiales.lawspec +++ b/test/allocations_familiales.lawspec @@ -141,7 +141,7 @@ déclaration structure R521_3 : déclaration structure R521_4 : donnée majorations_allocation_familiales_avec_garde_alternée contenu montant - dépend de Enfant + dépend de Enfant déclaration champ d'application CalculPrestationsFamiliales : # Les règles déclarées dans PrestationsFamiliales pourront utiliser @@ -531,3 +531,26 @@ champ d'application CalculAllocationsFamiliales : -- GardeAlternée de parents: l521_3.majorations_allocation_familiales / 2 ) */ + +@Article D521-1@ +I.- Pour l'application de l'article L. 521-1, le montant des allocations familiales et de la majoration pour âge prévue à l'article L. 521-3 est défini selon le barème suivant : + +1° Lorsque le ménage ou la personne a disposé d'un montant de ressources inférieur ou égal au plafond défini au I de l'article D. 521-3, les taux servant au calcul des allocations familiales sont fixés, en pourcentage de la base mensuelle prévue à l'article L. 551-1, à : +a) 32 % pour le deuxième enfant à charge ; +b) 41 % pour le troisième enfant à charge et chacun des suivants. +La majoration pour âge est fixée à 16 % de la base mensuelle de calcul des prestations familiales ; + +2° Lorsque le ménage ou la personne a disposé d'un montant de ressources supérieur au plafond défini au I de l'article D. 521-3 et inférieur ou égal à celui défini au II du même article, les taux servant au calcul des allocations familiales sont fixés, en pourcentage de la base mensuelle prévue à l'article L. 551-1, à : +a) 16 % pour le deuxième enfant à charge ; +b) 20,5 % pour le troisième enfant à charge et chacun des suivants. + +La majoration pour âge est fixée à 8 % de la base mensuelle de calcul des prestations familiales ; +3° Lorsque le ménage ou la personne a disposé d'un montant de ressources supérieur au plafond défini au II de l'article D. 521-3, les taux servant au calcul des allocations familiales sont fixés, en pourcentage de la base mensuelle prévue à l'article L. 551-1, à : +a) 8 % pour le deuxième enfant à charge ; +b) 10,25 % pour le troisième enfant à charge et chacun des suivants. + +La majoration pour âge est fixée à 4 % de la base mensuelle de calcul des prestations familiales. + +II.- En application du sixième alinéa de l'article L. 521-1, le montant mensuel des allocations familiales et, le cas échéant, de la majoration pour âge est majoré d'un complément dégressif, lorsque les ressources annuelles du ménage ou de la personne dépassent l'un des plafonds défini au I ou au II de l'article D. 521-3 d'une somme inférieure à douze fois le montant mensuel des allocations familiales augmenté, le cas échéant, de la ou des majorations pour âge. + +Ce complément dégressif est égal, pour chaque mois, au douzième de la différence entre, d'une part, ce plafond de ressources majoré de la somme définie à l'alinéa précédent et, d'autre part, le montant des ressources.