Histoire de ta bêtise: presque fini
This commit is contained in:
parent
f65e71cf75
commit
fdd9d86188
64
Makefile.in
64
Makefile.in
@ -1,25 +1,46 @@
|
||||
SRC ?= haskelltut
|
||||
|
||||
# Let's allow different implementations to be tested.
|
||||
BINPIC ?= pic
|
||||
BINREFER ?= refer
|
||||
BINSOELIM ?= soelim
|
||||
BINPRECONV ?= preconv
|
||||
BINEQN ?= eqn
|
||||
BINGHIGHLIGHT ?= ./bin/ghighlight
|
||||
BINBUSGRAP ?= ./bin/busgrap.pl
|
||||
BINGRAP ?= grap
|
||||
BINROFF ?= groff
|
||||
export BINPIC BINREFER BINSOELIM BINPRECONV BINEQN BINGHIGHLIGHT BINBUSGRAP BINGRAP BINROFF
|
||||
|
||||
ODIR ?= .
|
||||
|
||||
BIBLIOGRAPHY ?= bibliography
|
||||
BIBLIOGRAPHY_PROCESSED ?= /tmp/bib
|
||||
ALLSRC = $(shell find . -name "*.ms")
|
||||
|
||||
SOELIM_OPTS ?=
|
||||
SOELIM = soelim $(SOELIM_OPTS)
|
||||
SOELIM = $(BINSOELIM) $(SOELIM_OPTS)
|
||||
|
||||
# Custom script, currently to replace unbreakable spaces by \SP.
|
||||
CUSTOM_OPTS ?=
|
||||
CUSTOM ?= ./bin/custom $(CUSTOM_OPTS)
|
||||
|
||||
#CUSTOM_BIS_OPTS ?=
|
||||
#CUSTOM_BIS ?= ./bin/utf8-to-ms.sh $(CUSTOM_BIS_OPTS)
|
||||
|
||||
PRECONV_OPTS ?= -e utf-8
|
||||
PRECONV = preconv $(PRECONV_OPTS)
|
||||
PRECONV = $(BINPRECONV) $(PRECONV_OPTS)
|
||||
|
||||
EQN_OPTS ?= -Tpdf
|
||||
EQN = eqn $(EQN_OPTS)
|
||||
EQN = $(BINEQN) $(EQN_OPTS)
|
||||
|
||||
# source-highlight stuff
|
||||
# GH_INTRO: instructions before each source code provided by source-highlight
|
||||
# GH_OUTRO: ------------ after ---- ------ ---- -------- -- ----------------
|
||||
# GH_INTRO/GH_OUTRO: values are separated by ';'
|
||||
#
|
||||
GH_INTRO := .b1;.nr DI 0;.DS I;.fam C
|
||||
CODE_FONT_FAMILY ?= C
|
||||
GH_INTRO := .b1;.nr DI 0;.DS I;.fam $(CODE_FONT_FAMILY)
|
||||
GH_OUTRO := .fam;.DE;.b2
|
||||
#
|
||||
export GH_INTRO
|
||||
@ -31,20 +52,24 @@ export SHOPTS
|
||||
|
||||
# ghighlight brings `source-highlight` to troff
|
||||
GHIGHLIGHT_OPTS ?=
|
||||
GHIGHLIGHT = ./bin/ghighlight $(GHIGHLIGHT_OPTS)
|
||||
GHIGHLIGHT = $(BINGHIGHLIGHT) $(GHIGHLIGHT_OPTS)
|
||||
|
||||
# BUSGRAP brings pie charts to troff
|
||||
BUSGRAP_OPTS ?=
|
||||
BUSGRAP = $(BINBUSGRAP) $(BUSGRAP_OPTS)
|
||||
|
||||
GRAP_OPTS ?=
|
||||
GRAP = grap $(GRAP_OPTS)
|
||||
GRAP = $(BINGRAP) $(GRAP_OPTS)
|
||||
|
||||
PIC_OPTS ?= -Tpdf
|
||||
PIC = pic $(PIC_OPTS)
|
||||
PIC = $(BINPIC) $(PIC_OPTS)
|
||||
|
||||
# -P => move ponctuation after reference
|
||||
# -S => label and bracket-label options
|
||||
# -e => accumulate (use a reference section)
|
||||
# -p bib => bibliography file
|
||||
REFER_OPTS ?= -PS -e -p $(BIBLIOGRAPHY)
|
||||
REFER = refer $(REFER_OPTS)
|
||||
REFER_OPTS ?= -PS -e -p $(BIBLIOGRAPHY_PROCESSED)
|
||||
REFER = $(BINREFER) $(REFER_OPTS)
|
||||
|
||||
# -k => iconv conversion (did it ever worked?)
|
||||
# -ms => ms macro
|
||||
@ -58,20 +83,29 @@ REFER = refer $(REFER_OPTS)
|
||||
# TODO: no change with or without the following options -P -e
|
||||
# This has to be inverstigated: how to make PDFs look nice in browsers?
|
||||
# -P -e => provide "-e" to gropdf to embed fonts
|
||||
GROFF_OPTS ?= -ms -t -Tpdf -U -mspdf -mpdfmark -M ./bin -P -e
|
||||
GROFF = groff $(GROFF_OPTS)
|
||||
ROFF_OPTS ?= -ms -t -Tpdf -U -mspdf -mpdfmark -M ./bin -P -e
|
||||
ROFF = $(BINROFF) $(ROFF_OPTS)
|
||||
|
||||
$(SRC).pdf:
|
||||
$(BIBLIOGRAPHY_PROCESSED): $(BIBLIOGRAPHY)
|
||||
@# Let's process the bibliography file
|
||||
@echo "Let's process the bibliography file"
|
||||
$(PRECONV) < $(BIBLIOGRAPHY) > $(BIBLIOGRAPHY_PROCESSED)
|
||||
|
||||
$(SRC).pdf: $(BIBLIOGRAPHY_PROCESSED)
|
||||
sleep 0.1
|
||||
$(SOELIM) < $(SRC).ms |\
|
||||
$(CUSTOM) |\
|
||||
$(BUSGRAP) |\
|
||||
$(PRECONV) |\
|
||||
$(REFER) |\
|
||||
$(EQN) |\
|
||||
$(GHIGHLIGHT) |\
|
||||
$(GRAP) |\
|
||||
$(PIC) |\
|
||||
$(REFER) |\
|
||||
$(GROFF) > $(ODIR)/$@
|
||||
$(PRECONV) |\
|
||||
$(ROFF) > $(ODIR)/$@
|
||||
|
||||
# Keep options in memory for the recursive 'make' call
|
||||
export SOELIM_OPTS PRECONV_OPTS EQN_OPTS GHIGHLIGHT_OPTS GRAP_OPTS PIC_OPTS REFER_OPTS
|
||||
serve:
|
||||
find . -name "*.ms" | entr gmake -B $(SRC).pdf
|
||||
find . | entr gmake $(SRC).pdf
|
||||
|
2684
bin/busgrap.pl
Executable file
2684
bin/busgrap.pl
Executable file
File diff suppressed because it is too large
Load Diff
57
bin/custom
Executable file
57
bin/custom
Executable file
@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
# From a single byte in hexadecimal per line to lines ending with 0a
|
||||
# (hex for '\n'). Ex: 61 62 63 0a
|
||||
# Required to easily match (and remove) multi-byte characters.
|
||||
regroup_lines() awk '
|
||||
BEGIN {
|
||||
line_start=1
|
||||
}
|
||||
|
||||
{
|
||||
if (line_start == 1)
|
||||
line = $1;
|
||||
else
|
||||
line = line " " $1;
|
||||
|
||||
line_start = 0;
|
||||
if ($1 == "0a") {
|
||||
print line;
|
||||
line_start = 1
|
||||
}
|
||||
}
|
||||
|
||||
END {
|
||||
if (line_start == 0)
|
||||
print line
|
||||
}
|
||||
'
|
||||
|
||||
uppercase() tr "[a-z]" "[A-Z]"
|
||||
|
||||
# One column decimal to plain text.
|
||||
from_dec() awk '{ printf ("%c", $1 + 0) }'
|
||||
|
||||
# Replace spaces by line returns, outputs a single column.
|
||||
spaces_to_line_returns() tr " " "\n"
|
||||
|
||||
# Convert input into hexadecimal and a single byte per line.
|
||||
to_hex_one_column() { od -An -tx1 | awk '{for(i=1;i<=NF;i++){ print $i }}'; }
|
||||
|
||||
# One column hexa to one column decimal.
|
||||
hex_to_dec() { { echo "obase=10;ibase=16;" ; cat ; } | bc ; }
|
||||
|
||||
# Reverse hexadecimal (with space separators) to original value.
|
||||
from_hex() { spaces_to_line_returns | uppercase | hex_to_dec | from_dec; }
|
||||
|
||||
# Replace unbreakable spaces by '\ '.
|
||||
replace_unbreakable_spaces() sed "s/c2 a0/5c 20/g"
|
||||
|
||||
custom_mods(){
|
||||
to_hex_one_column | # Input to hexadecimal, 1-byte representation per line.
|
||||
regroup_lines | # From 1-byte to x-byte lines with space separators.
|
||||
replace_unbreakable_spaces | # Replace unbreakable spaces by '\ '.
|
||||
from_hex # Convert back from hex (x-byte per line, space separator).
|
||||
}
|
||||
|
||||
custom_mods
|
@ -1,5 +1,6 @@
|
||||
.so macros.ms
|
||||
.so book-summary-macros.ms
|
||||
.mso fr.tmac
|
||||
.TITLE Histoire de ta bêtise
|
||||
.AUTHOR François Bégaudeau
|
||||
.SUMMARIZED_BY_FR Philippe Pittoli
|
||||
@ -87,6 +88,61 @@ J'ajoute volontiers que ce délire s'est désormais répandu à bien des milieux
|
||||
Ce besoin de tout voir sur un prisme moral, devoir se positionner pour ou contre des idées, une vraie immaturité émotionnelle.
|
||||
.FOOTNOTE2
|
||||
|
||||
La bourgoisie matraque les prolo, mais absorbe le situationnisme, un million de migrants pour l'Allemagne pour sauver sa démographie, le management collaboratif pour absorber la délibération égalitaire, etc.
|
||||
La liste des récupérations est longue.
|
||||
Les discours subversifs sont infantilisés, en les mettant en scène pour les humilier.
|
||||
Parce que le prolo fait peur, le bourgeois devient « patriarche cool » et donne congés payés, allocations chômage, bourses scolaires, soins.
|
||||
Tout ça pour cacher que le système a des cadences laborieuses, énormément de chômage, une ségrégation scolaire, des métiers qui meurtrissent.
|
||||
Mais comme le travail ne crée plus autant de marges, on taxe davantage le travail, le coût de la vie augmente pour nourrir la marge du bourgeois.
|
||||
En page 65, Bégaudeau annonce la couleur : dès que l'on rentre dans une phase difficile économiquement, le bourgeois devient complètement libéral, passe à
|
||||
.I "En Marche"
|
||||
et met de côté le Parti Socialiste qui n'était qu'une
|
||||
.B névrose .
|
||||
|
||||
Page 66, référence à Coluche : le travailleur pauvre c'est pas plus mal que si c'était pire.
|
||||
|
||||
Page 68, critique de l'hypocrisie.
|
||||
Plan social, sauvegarde de l'emploi => licenciement.
|
||||
Restructuration => compression de personnel.
|
||||
Modernisation => privatisation.
|
||||
Le bourgeois pense parfois sincèrement ses conneries, par conséquent même quand il ne ment pas, il paraît creux.
|
||||
Aussi, on parle davantage de l'esthétique bourgeois que du fond, peut-être que l'hypocrisie serait trop flagrante.
|
||||
|
||||
Page 80, Bégaudeau parle de Vanessa Paradis, qui n'est pas connue pour ses œuvres pas-si-mémorables, mais parce qu'elle apparaît dans plus de 150 couvertures de magazines.
|
||||
Elle est « connue pour être célèbre ».
|
||||
Les magazines ne reflètent pas sa notoriété, ils la crée de toute pièce\*[*].
|
||||
.FOOTNOTE1
|
||||
Et ceci me fait fortement penser à Macron.
|
||||
.FOOTNOTE2
|
||||
|
||||
Tout au long du livre, Bégaudeau rappelle que l'art est tout autant apprécié qu'il raconte quelque chose sur nous-même.
|
||||
On apprécie une œuvre autant qu'on s'apprécie nous-même aimant cette œuvre.
|
||||
|
||||
Page 82, Bégaudeau est visionnaire : il a déjà capté qu'on allait conditionner les salaires des profs à leur mérite, à leurs performances, tout simplement parce qu'il est insupportable pour les bourgeois qu'une personne touche un salaire simplement pour faire leur travail (plutôt que pour se soumettre à la volonté de quelqu'un, je suppose).
|
||||
La valeur d'un geste doit être liée à une valeur marchande, sinon il ne la voit pas, il ne comprend pas.
|
||||
Le bourgeois ne voit d'ailleurs plus que le commerce, et son monde devient flou : le sourire de la boulangère est-il sincère ou est-ce un argument de vente\*[*] ?
|
||||
.FOOTNOTE1
|
||||
Cela rappelle fortement le livre
|
||||
.I "Religion poisons everything" " »." "« "
|
||||
.FOOTNOTE2
|
||||
|
||||
Page 95 : Macron n'est pas moderne, il est neuf.
|
||||
Très juste.
|
||||
|
||||
Page 100 : le bourgeois a peur des extrêmes, lui est dans la nuance.
|
||||
Sauf bien évidemment pour parler des extrêmes, qui sont extrêmes de manière absolue.
|
||||
Ou bien du fait qu'un patron soit nécessaire et doive gagner plus que ses employés.
|
||||
Ou encore que la sortie de l'euro provoquera une troisième guerre mondiale.
|
||||
Bien entendu, il faut réduire les dépenses publiques.
|
||||
Bien entendu également, la France est une démocratie, etc\*[*].
|
||||
.FOOTNOTE1
|
||||
Fait intéressant, Bégaudeau parlait déjà en janvier 2019 des vaccins, en disant que toute remise en cause tenait forcément du complotisme pour un petit bourgeois.
|
||||
Je trouve cela assez juste, dans la mesure où se poser simplement la question est mal vu quand bien même la conclusion après une étude rationnelle de la situation amènerait à vouloir un statu quo, c'est-à-dire à être d'accord avec leur usage tel qu'il est fait actuellement.
|
||||
Le simple fait de poser une question est déjà presque réprimandé, et c'est un problème.
|
||||
.FOOTNOTE2
|
||||
Bref, pour quelqu'un de modéré, il y a comme des absolus indépassables, qui ne peuvent être remis en question, qui ne peuvent même pas être discutés.
|
||||
Pour quelqu'un qui se dit modéré, cela fait un peu tâche.
|
||||
|
||||
.SECTION Expressions vides de sens
|
||||
.PARAGRAPH_INDENTED
|
||||
Bégaudeau critique les expressions toutes faites, sans substance, qui tentent d'attaquer ou diminuer un point de vue.
|
||||
@ -135,6 +191,14 @@ Ce passage montre son point de vue, et c'est un peu tout.
|
||||
Autre exemple, à un moment il parle du racisme engendré par le capitalisme.
|
||||
Autant la prédation du libéralisme me semble évidente, autant le racisme du capitalisme beaucoup moins.
|
||||
|
||||
Page 66 à 67, Bégaudeau parle des attentats de 2015, le fait que si on parle de « banlieue islamiste » c'est forcément pour parler des « arabes ».
|
||||
Pour lui, se désolidariser des islamistes et dire fermement qu'on ne veut pas de ça parce qu'on s'attaque à nos valeurs, c'est en réalité être raciste.
|
||||
Je ne suis pas d'accord, je pense que c'est un faux dilemme un peu ridicule.
|
||||
Il va même jusqu'à dire qu'on ne considérerait pas le français qui ne boit pas comme un français, ce qui est complètement abusé selon moi.
|
||||
La culture islamiste, on voit quand même à quoi ça ressemble (voile intégral pour les femmes, interdiction de la musique, etc.), et tu n'es pas islamiste-compatible juste parce que tu ne bois pas.
|
||||
C'est quand même dommage d'avoir un livre par ailleurs plutôt lucide et modéré pour se vautrer dans des avis tranchés d'une façon aussi absurde.
|
||||
Tout comme, page 75, il parle de communautarisme (sous-entendu presque racial) du bourgeois, qui préférerait presque être métisse pour moins qu'on reconnaisse son milieu très fermé : la formulation est au moins maladroite.
|
||||
|
||||
.SECTION Conclusion
|
||||
.PARAGRAPH_INDENTED
|
||||
À plusieurs reprise Bégaudeau rappelle l'hypocrisie ambiante.
|
||||
|
51
macros.ms
51
macros.ms
@ -18,6 +18,7 @@ accumulate
|
||||
.defcolor darkblue rgb 0.3 0.3 0.7
|
||||
.defcolor darkred rgb 0.7 0.3 0.3
|
||||
.defcolor black rgb 0 0 0
|
||||
.defcolor color_box rgb 1 1 .6
|
||||
.
|
||||
. \" with semantic
|
||||
.defcolor citation rgb 0.4 0.4 0.4
|
||||
@ -25,6 +26,7 @@ accumulate
|
||||
.defcolor explanation rgb 0.7 0.4 0.4
|
||||
.defcolor explanationbar rgb 0.8 0.3 0.3
|
||||
.
|
||||
.defcolor specialcolor_command rgb 0.7 0.3 0.3
|
||||
.defcolor specialcolor_type rgb 0.6 0.3 0.5
|
||||
.defcolor specialcolor_constructor rgb 0.1 0.5 0.2
|
||||
.defcolor specialcolor_module rgb 0.1 0.5 0.2
|
||||
@ -34,6 +36,7 @@ accumulate
|
||||
.defcolor specialcolor_shine rgb 0.3 0.3 0.7
|
||||
.
|
||||
. \" SIZES
|
||||
.nr specialsize_command 10
|
||||
.nr specialsize_type 8
|
||||
.nr specialsize_constructor 8
|
||||
.nr specialsize_module 8
|
||||
@ -43,6 +46,7 @@ accumulate
|
||||
.nr specialsize_shine 11
|
||||
.
|
||||
. \" FONTS
|
||||
.ds specialfont_command CW
|
||||
.ds specialfont_type CW
|
||||
.ds specialfont_constructor CW
|
||||
.ds specialfont_module CW
|
||||
@ -165,8 +169,14 @@ accumulate
|
||||
.
|
||||
.
|
||||
.de FRAC
|
||||
.ie '\\$3'' \{\
|
||||
\v'-.7m\s[\\n(.s*6u/10u]+.7m'\\$1\v'-.7m\s0+.7m'\
|
||||
\(f/\s[\\n(.s*6u/10u]\\$2\s0
|
||||
\}
|
||||
.el \{\
|
||||
\v'-.7m\s[\\n(.s*6u/10u]+.7m'\\$1\v'-.7m\s0+.7m'\
|
||||
\(f/\s[\\n(.s*6u/10u]\\$2\s0\\$3
|
||||
\}
|
||||
..
|
||||
.de FOOTNOTE_TO_COLUMN_WIDTH
|
||||
.nr pg@fn-colw \\n[pg@colw] \" footnotes' column width
|
||||
@ -187,6 +197,7 @@ accumulate
|
||||
. \" Fonts and colors.
|
||||
.
|
||||
.de SPECIAL_WORDS
|
||||
.ie !'\\$3'' \\$3\c
|
||||
.nr current_size \\n[.s] \" Current point size.
|
||||
.gcolor specialcolor_\\*[semantictoken]
|
||||
.
|
||||
@ -220,39 +231,40 @@ accumulate
|
||||
.b2
|
||||
..
|
||||
.de COMMANDNAME
|
||||
.I "\\$1" "\\$2"
|
||||
.ds semantictoken command
|
||||
.SPECIAL_WORDS \\$@
|
||||
..
|
||||
.de FUNCTION
|
||||
.ds semantictoken function
|
||||
.SPECIAL_WORDS "\\$1" "\\$2"
|
||||
.SPECIAL_WORDS \\$@
|
||||
..
|
||||
.de TYPE
|
||||
.ds semantictoken type
|
||||
.SPECIAL_WORDS "\\$1" "\\$2"
|
||||
.SPECIAL_WORDS \\$@
|
||||
..
|
||||
.de TYPECLASS
|
||||
.I "\\$1" "\\$2"
|
||||
..
|
||||
.de OPERATOR
|
||||
.ds semantictoken operator
|
||||
.SPECIAL_WORDS "\\$1" "\\$2"
|
||||
.SPECIAL_WORDS \\$@
|
||||
..
|
||||
.de QUESTION
|
||||
.ds semantictoken question
|
||||
.SPECIAL_WORDS "\\$1" "\\$2"
|
||||
.SPECIAL_WORDS \\$@
|
||||
\h'5p'
|
||||
..
|
||||
.de CONSTRUCTOR
|
||||
.ds semantictoken constructor
|
||||
.SPECIAL_WORDS "\\$1" "\\$2"
|
||||
.SPECIAL_WORDS \\$@
|
||||
..
|
||||
.de MODULE
|
||||
.ds semantictoken module
|
||||
.SPECIAL_WORDS "\\$1" "\\$2"
|
||||
.SPECIAL_WORDS \\$@
|
||||
..
|
||||
.de SHINE
|
||||
.ds semantictoken shine
|
||||
.SPECIAL_WORDS "\\$1" "\\$2"
|
||||
.SPECIAL_WORDS \\$@
|
||||
..
|
||||
.de MODULEX
|
||||
.MODULE \\$1 ,
|
||||
@ -397,3 +409,26 @@ Compilé pour la dernière fois le
|
||||
.de VOCABULARY2
|
||||
.KE
|
||||
..
|
||||
.
|
||||
.
|
||||
.de HIGHLIGHT
|
||||
.
|
||||
. nr @wd \w'\\$1'
|
||||
. nr x1 0
|
||||
. nr y1 (\\n[rst]u - \\n[rsb]u + .4m)
|
||||
. nr x2 (\\n[@wd]u + .4m)
|
||||
. nr y2 0
|
||||
. nr x3 0
|
||||
. nr y3 (\\n[rst]u - \\n[rsb]u + .4m)
|
||||
. nr x4 (\\n[@wd]u + .4m)
|
||||
. nr y4 0
|
||||
.
|
||||
\h'.2m'\
|
||||
\h'-.2m'\v'(.2m - \\n[rsb]u)'\
|
||||
\M[color_box]\
|
||||
\D'P \\n[x1] -\\n[y1]u \\n[x2]u \\n[y2]u \\n[x3]u \\n[y3]u -\\n[x4]u \\n[y4]u '\
|
||||
\h'.2m'\v'-(.2m - \\n[rsb]u)'\
|
||||
\M[]\
|
||||
\\$1\
|
||||
\h'.2m'
|
||||
..
|
||||
|
Loading…
Reference in New Issue
Block a user