diff --git a/doc/paper/2023/simhydro/ajustement-for-paper.patch b/doc/paper/2023/simhydro/ajustement-for-paper.patch
new file mode 100644
index 00000000..b4466e69
--- /dev/null
+++ b/doc/paper/2023/simhydro/ajustement-for-paper.patch
@@ -0,0 +1,635 @@
+diff --git a/packages/linux.sh b/packages/linux.sh
+index 215047e..a19bfb6 100755
+--- a/packages/linux.sh
++++ b/packages/linux.sh
+@@ -76,11 +76,11 @@ mv ../pamhyr-src.tar.gz ./
+
+ echo " *** MAKE BIN PACKAGE"
+
+-OLD_PWD=$PWD
+-cd dist/
+-tar --xz -cf pamhyr-gnulinux-amd64.tar.xz pamhyr --checkpoint=.100
+-cd $OLD_PWD
++# OLD_PWD=$PWD
++# cd dist/
++# tar --xz -cf pamhyr-gnulinux-amd64.tar.xz pamhyr --checkpoint=.100
++# cd $OLD_PWD
+
+-mv dist/pamhyr-gnulinux-amd64.tar.xz ./
++# mv dist/pamhyr-gnulinux-amd64.tar.xz ./
+
+ echo " *** DONE"
+diff --git a/src/Model/Friction/Friction.py b/src/Model/Friction/Friction.py
+index 18167a8..5bf2302 100644
+--- a/src/Model/Friction/Friction.py
++++ b/src/Model/Friction/Friction.py
+@@ -170,6 +170,7 @@ class Friction(SQLSubModel):
+ @begin_strickler.setter
+ def begin_strickler(self, strickler):
+ self._begin_strickler = strickler
++ self._end_strickler = strickler # HACK: Only one Strickler
+ self._status.modified()
+
+ @property
+diff --git a/src/Model/Stricklers/Stricklers.py b/src/Model/Stricklers/Stricklers.py
+index baa484f..a5670d2 100644
+--- a/src/Model/Stricklers/Stricklers.py
++++ b/src/Model/Stricklers/Stricklers.py
+@@ -38,7 +38,7 @@ class Stricklers(SQLSubModel):
+ else:
+ self.id = id
+
+- Stricklers._id_cnt = max(Stricklers._id_cnt + 1, self.id)
++ Stricklers._id_cnt = max(Stricklers._id_cnt + 1, id + 1)
+
+ self._name = name
+ self._comment = comment
+diff --git a/src/View/BoundaryCondition/translate.py b/src/View/BoundaryCondition/translate.py
+index c4ff8f8..172999a 100644
+--- a/src/View/BoundaryCondition/translate.py
++++ b/src/View/BoundaryCondition/translate.py
+@@ -29,9 +29,9 @@ _translate = QCoreApplication.translate
+ long_types = {
+ "ND": _translate("BoundaryCondition", "Not defined"),
+ "PC": _translate("BoundaryCondition", "Ponctual contribution"),
+- "TZ": _translate("BoundaryCondition", "Time over Z"),
+- "TD": _translate("BoundaryCondition", "Time over Discharge"),
+- "ZD": _translate("BoundaryCondition", "Z over Discharge"),
++ "TZ": _translate("BoundaryCondition", "TimeZ"),
++ "TD": _translate("BoundaryCondition", "TimeDischarge"),
++ "ZD": _translate("BoundaryCondition", "ZDischarge"),
+ "SL": _translate("BoundaryCondition", "Solid"),
+ }
+
+diff --git a/src/View/Frictions/PlotStricklers.py b/src/View/Frictions/PlotStricklers.py
+index 71ff6e6..b9060bc 100644
+--- a/src/View/Frictions/PlotStricklers.py
++++ b/src/View/Frictions/PlotStricklers.py
+@@ -106,6 +106,8 @@ class PlotStricklers(APlot):
+ )
+ self.draw_frictions(lst, color="b")
+
++ self.canvas.axes.invert_xaxis()
++
+ self.canvas.figure.tight_layout()
+ self.canvas.figure.canvas.draw_idle()
+ if self.toolbar is not None:
+diff --git a/src/View/Frictions/Window.py b/src/View/Frictions/Window.py
+index 4af3b66..f46fae3 100644
+--- a/src/View/Frictions/Window.py
++++ b/src/View/Frictions/Window.py
+@@ -112,10 +112,10 @@ class FrictionsWindow(ASubMainWindow, ListedSubWindow):
+ )
+
+ table.setItemDelegateForColumn(
+- 3, self._delegate_stricklers
++ 2, self._delegate_stricklers
+ )
+ table.setItemDelegateForColumn(
+- 4, self._delegate_stricklers
++ 3, self._delegate_stricklers
+ )
+
+ table.setSelectionBehavior(QAbstractItemView.SelectRows)
+diff --git a/src/View/Frictions/translate.py b/src/View/Frictions/translate.py
+index 21981ab..82071e9 100644
+--- a/src/View/Frictions/translate.py
++++ b/src/View/Frictions/translate.py
+@@ -21,10 +21,10 @@ from PyQt5.QtCore import QCoreApplication
+ _translate = QCoreApplication.translate
+
+ table_headers = {
+- "name": _translate("Frictions", "Name"),
++ # "name": _translate("Frictions", "Name"),
+ # "edge": _translate("Frictions", "Reach"),
+ "begin_kp": _translate("Frictions", "Begin kp (m)"),
+ "end_kp": _translate("Frictions", "End kp (m)"),
+- "begin_strickler": _translate("Frictions", "Begin strickler"),
+- "end_strickler": _translate("Frictions", "End strickler"),
++ "begin_strickler": _translate("Frictions", "Strickler"),
++ # "end_strickler": _translate("Frictions", "End strickler"),
+ }
+diff --git a/src/View/Geometry/PlotKPZ.py b/src/View/Geometry/PlotKPZ.py
+index eb7d5e2..64057aa 100644
+--- a/src/View/Geometry/PlotKPZ.py
++++ b/src/View/Geometry/PlotKPZ.py
+@@ -158,6 +158,8 @@ class PlotKPZ(APlot):
+ color='lightgrey'
+ )
+
++ self.canvas.axes.invert_xaxis()
++
+ self.canvas.figure.tight_layout()
+ self.canvas.figure.canvas.draw_idle()
+ if self.toolbar is not None:
+diff --git a/src/View/Geometry/Window.py b/src/View/Geometry/Window.py
+index 7776d73..1c8cb5d 100644
+--- a/src/View/Geometry/Window.py
++++ b/src/View/Geometry/Window.py
+@@ -111,7 +111,7 @@ class GeometryWindow(ASubMainWindow, ListedSubWindow):
+ self.ui.btn_sort_desc.triggered.connect(self.sort_descending)
+ self.ui.btn_move_up.triggered.connect(self.move_row_up)
+ self.ui.btn_move_down.triggered.connect(self.move_row_down)
+- self.ui.btn_end_editing.triggered.connect(self.handleSave)
++ # self.ui.btn_end_editing.triggered.connect(self.handleSave)
+ self.ui.btn_add.triggered.connect(self.insert_row)
+ self.ui.btn_delete.triggered.connect(self.delete_rows)
+ self.ui.btn_edit.triggered.connect(self.edit_profile)
+diff --git a/src/View/Geometry/mainwindow_ui_reach.py b/src/View/Geometry/mainwindow_ui_reach.py
+index 897b698..60bcfa6 100644
+--- a/src/View/Geometry/mainwindow_ui_reach.py
++++ b/src/View/Geometry/mainwindow_ui_reach.py
+@@ -95,29 +95,29 @@ class Ui_MainWindow(object):
+ self.btn_edit.setIcon(icon_btn_edit)
+ self.toolBar.addAction(self.btn_edit)
+
+- self.btn_copy_selected_profile = QtWidgets.QAction(self.widget)
+- self.btn_copy_selected_profile.setObjectName("btn_copy_selected_profile")
+- icon_btn_copy_selected_profile = QtGui.QIcon()
+- icon_btn_copy_selected_profile.addPixmap(
+- QtGui.QPixmap(f"{icon_path}gtk-copy.png"))
+- self.btn_copy_selected_profile.setIcon(icon_btn_copy_selected_profile)
+- self.toolBar.addAction(self.btn_copy_selected_profile)
+-
+- self.btn_paste_selected_profile = QtWidgets.QAction(self.widget)
+- self.btn_paste_selected_profile.setObjectName("btn_paste_selected_profile")
+- icon_btn_paste_selected_profile = QtGui.QIcon()
+- icon_btn_paste_selected_profile.addPixmap(
+- QtGui.QPixmap(f"{icon_path}gtk-paste.png"))
+- self.btn_paste_selected_profile.setIcon(icon_btn_paste_selected_profile)
+- self.toolBar.addAction(self.btn_paste_selected_profile)
+-
+- self.btn_duplicate_selected_profile = QtWidgets.QAction(self.widget)
+- self.btn_duplicate_selected_profile.setObjectName("btn_duplicate_selected_profile")
+- icon_btn_duplicate_selected_profile = QtGui.QIcon()
+- icon_btn_duplicate_selected_profile.addPixmap(
+- QtGui.QPixmap(f"{icon_path}gtk-dnd-multiple.png"))
+- self.btn_duplicate_selected_profile.setIcon(icon_btn_duplicate_selected_profile)
+- self.toolBar.addAction(self.btn_duplicate_selected_profile)
++ # self.btn_copy_selected_profile = QtWidgets.QAction(self.widget)
++ # self.btn_copy_selected_profile.setObjectName("btn_copy_selected_profile")
++ # icon_btn_copy_selected_profile = QtGui.QIcon()
++ # icon_btn_copy_selected_profile.addPixmap(
++ # QtGui.QPixmap(f"{icon_path}gtk-copy.png"))
++ # self.btn_copy_selected_profile.setIcon(icon_btn_copy_selected_profile)
++ # self.toolBar.addAction(self.btn_copy_selected_profile)
++
++ # self.btn_paste_selected_profile = QtWidgets.QAction(self.widget)
++ # self.btn_paste_selected_profile.setObjectName("btn_paste_selected_profile")
++ # icon_btn_paste_selected_profile = QtGui.QIcon()
++ # icon_btn_paste_selected_profile.addPixmap(
++ # QtGui.QPixmap(f"{icon_path}gtk-paste.png"))
++ # self.btn_paste_selected_profile.setIcon(icon_btn_paste_selected_profile)
++ # self.toolBar.addAction(self.btn_paste_selected_profile)
++
++ # self.btn_duplicate_selected_profile = QtWidgets.QAction(self.widget)
++ # self.btn_duplicate_selected_profile.setObjectName("btn_duplicate_selected_profile")
++ # icon_btn_duplicate_selected_profile = QtGui.QIcon()
++ # icon_btn_duplicate_selected_profile.addPixmap(
++ # QtGui.QPixmap(f"{icon_path}gtk-dnd-multiple.png"))
++ # self.btn_duplicate_selected_profile.setIcon(icon_btn_duplicate_selected_profile)
++ # self.toolBar.addAction(self.btn_duplicate_selected_profile)
+
+ self.btn_sort_asc = QtWidgets.QAction(self.widget)
+ self.btn_sort_asc.setObjectName("btn_sort_asc")
+@@ -151,13 +151,13 @@ class Ui_MainWindow(object):
+ self.btn_move_down.setIcon(icon_btn_move_down)
+ self.toolBar.addAction(self.btn_move_down)
+
+- self.btn_end_editing = QtWidgets.QAction(self.widget)
+- self.btn_end_editing.setObjectName("btn_end_editing")
+- icon_btn_save = QtGui.QIcon()
+- icon_btn_save.addPixmap(
+- QtGui.QPixmap(f"{icon_path}gtk-apply.png"))
+- self.btn_end_editing.setIcon(icon_btn_save)
+- self.toolBar.addAction(self.btn_end_editing)
++ # self.btn_end_editing = QtWidgets.QAction(self.widget)
++ # self.btn_end_editing.setObjectName("btn_end_editing")
++ # icon_btn_save = QtGui.QIcon()
++ # icon_btn_save.addPixmap(
++ # QtGui.QPixmap(f"{icon_path}gtk-apply.png"))
++ # self.btn_end_editing.setIcon(icon_btn_save)
++ # self.toolBar.addAction(self.btn_end_editing)
+
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.tableView = QtWidgets.QTableView(self.widget)
+@@ -314,30 +314,23 @@ class Ui_MainWindow(object):
+ def retranslateUi(self, MainWindow_reach):
+ _translate = QtCore.QCoreApplication.translate
+ self.name_reach = ""
+- self.mainwindow_title = _translate("MainWindow_reach", "Jeu de sections du Bief")
++ self.mainwindow_title = _translate("MainWindow_reach", "Geometry reach edit")
+ MainWindow_reach.setWindowTitle(self.mainwindow_title + f"{self.name_reach}")
+- self.text_section_order = _translate("MainWindow_reach", "\nOrdre des sections : "
+- "Amont --> Aval")
+ # self.label_section_order.setText(f"{self.text_section_order}")
+ self.vertical_slider_value = ""
+- self.vertical_slider_label.setText(_translate("MainWindow_reach", "Pk = ") + f"{self.vertical_slider_value}")
+- self.btn_open.setToolTip(_translate("MainWindow_reach", " Importer une géométrie"))
+- self.btn_add.setToolTip(_translate("MainWindow_reach", " Nouveau profil"))
+- self.btn_delete.setToolTip(_translate("MainWindow_reach", " Supprimer le profil sélectionné"))
+- self.btn_edit.setToolTip(_translate("MainWindow_reach", " Éditer le profil sélectionné"))
+- self.btn_copy_selected_profile.setToolTip(_translate("MainWindow_reach", " Copier le profil sélectionné"))
+- self.btn_paste_selected_profile.setToolTip(_translate("MainWindow_reach", "Coller le profil en fin de liste ("
+- "penser à modifier le Pk avant de "
+- "trier)"))
+- self.btn_duplicate_selected_profile.setToolTip(
+- _translate("MainWindow_reach", " Dupliquer la section sélectionnée"))
++ self.vertical_slider_label.setText(_translate("MainWindow_reach", "Kp = ") + f"{self.vertical_slider_value}")
++ self.btn_open.setToolTip(_translate("MainWindow_reach", " Import geometry"))
++ self.btn_add.setToolTip(_translate("MainWindow_reach", " New profile"))
++ self.btn_delete.setToolTip(_translate("MainWindow_reach", " Delete selected profile"))
++ self.btn_edit.setToolTip(_translate("MainWindow_reach", " Editer selected profile"))
++
+ self.btn_sort_asc.setToolTip(_translate("MainWindow_reach", " Trier les profils par ordre croissant des Pk"))
+ self.btn_sort_desc.setToolTip(_translate("MainWindow_reach", " Trier les profils par ordre décroissant des Pk"))
+ self.btn_move_up.setToolTip(_translate("MainWindow_reach", " Changer l'ordre des profils (en décalant le "
+ "profil sélectionné vers le haut)"))
+ self.btn_move_down.setToolTip(_translate("MainWindow_reach", " Changer l'ordre des profils (en décalant le "
+ "profil sélectionné vers le bas)"))
+- self.btn_end_editing.setToolTip(_translate("MainWindow_reach", " Terminer l'édition"))
++ # self.btn_end_editing.setToolTip(_translate("MainWindow_reach", " Terminer l'édition"))
+ self.tableView_header = [_translate("MainWindow_reach", "Name"),
+ _translate("MainWindow_reach", "Kp (m)"),
+ _translate("MainWindow_reach", "Type")]
+diff --git a/src/View/InitialConditions/PlotDKP.py b/src/View/InitialConditions/PlotDKP.py
+index 58a8321..445cc08 100644
+--- a/src/View/InitialConditions/PlotDKP.py
++++ b/src/View/InitialConditions/PlotDKP.py
+@@ -71,6 +71,8 @@ class PlotDKP(APlot):
+ color='b', marker='+', lw=1.
+ )
+
++ self.canvas.axes.invert_xaxis()
++
+ self.canvas.figure.tight_layout()
+ self.canvas.figure.canvas.draw_idle()
+ if self.toolbar is not None:
+diff --git a/src/View/InitialConditions/PlotDischarge.py b/src/View/InitialConditions/PlotDischarge.py
+index 1fe05de..0703c59 100644
+--- a/src/View/InitialConditions/PlotDischarge.py
++++ b/src/View/InitialConditions/PlotDischarge.py
+@@ -65,6 +65,8 @@ class PlotDischarge(APlot):
+ color='r', lw=1.
+ )
+
++ self.canvas.axes.invert_xaxis()
++
+ self.canvas.figure.tight_layout()
+ self.canvas.figure.canvas.draw_idle()
+ if self.toolbar is not None:
+diff --git a/src/View/InitialConditions/translate.py b/src/View/InitialConditions/translate.py
+index 370d4a2..3fe45f7 100644
+--- a/src/View/InitialConditions/translate.py
++++ b/src/View/InitialConditions/translate.py
+@@ -21,11 +21,11 @@ from PyQt5.QtCore import QCoreApplication
+ _translate = QCoreApplication.translate
+
+ table_headers = {
+- "name": _translate("LateralContribution", "Name"),
++ # "name": _translate("LateralContribution", "Name"),
+ "kp": _translate("LateralContribution", "KP (m)"),
+ # "speed": _translate("LateralContribution", "Speed (m/s)"),
+ "discharge": _translate("LateralContribution", "Discharge (m³/s)"),
+ "elevation": _translate("LateralContribution", "Elevation (m)"),
+ "height": _translate("LateralContribution", "Height (m)"),
+- "comment": _translate("LateralContribution", "Comment"),
++ # "comment": _translate("LateralContribution", "Comment"),
+ }
+diff --git a/src/View/SedimentLayers/Edit/translate.py b/src/View/SedimentLayers/Edit/translate.py
+index fe9e44a..f9f02cb 100644
+--- a/src/View/SedimentLayers/Edit/translate.py
++++ b/src/View/SedimentLayers/Edit/translate.py
+@@ -6,7 +6,7 @@ _translate = QCoreApplication.translate
+
+ table_headers = {
+ "name": _translate("SedimentLayers", "Name"),
+- "type": _translate("SedimentLayers", "Type"),
++ # "type": _translate("SedimentLayers", "Type"),
+ "height": _translate("Sedimentlayers", "Height"),
+ "d50": _translate("Sedimentlayers", "D50"),
+ "sigma": _translate("Sedimentlayers", "Sigma"),
+diff --git a/src/View/SedimentLayers/Reach/Plot.py b/src/View/SedimentLayers/Reach/Plot.py
+index a312a8c..5764abf 100644
+--- a/src/View/SedimentLayers/Reach/Plot.py
++++ b/src/View/SedimentLayers/Reach/Plot.py
+@@ -78,6 +78,8 @@ class Plot(APlot):
+ color='grey' if i == len(z_sl) - 1 else None
+ )
+
++ self.canvas.axes.invert_xaxis()
++
+ self.canvas.figure.tight_layout()
+ self.canvas.figure.canvas.draw_idle()
+ if self.toolbar is not None:
+diff --git a/src/lang/fr.ts b/src/lang/fr.ts
+index 8034809..35d3439 100644
+--- a/src/lang/fr.ts
++++ b/src/lang/fr.ts
+@@ -60,21 +60,6 @@
+ Ponctual contribution
+ Contributions ponctuelles
+
+-
+-
+- Time over Z
+-
+-
+-
+-
+- Time over Discharge
+-
+-
+-
+-
+- Z over Discharge
+-
+-
+
+
+ Name
+@@ -110,6 +95,21 @@
+ Solid
+ Solide
+
++
++
++ TimeZ
++
++
++
++
++ TimeDischarge
++
++
++
++
++ ZDischarge
++
++
+
+
+ Checker
+@@ -533,7 +533,7 @@
+
+
+ Name
+- Nom
++ Nom
+
+
+
+@@ -548,12 +548,17 @@
+
+
+ Begin strickler
+- strickler de départ
++ strickler de départ
+
+
+
+ End strickler
+- Strickler de fin
++ Strickler de fin
++
++
++
++ Strickler
++
+
+
+
+@@ -587,7 +592,7 @@
+
+ LateralContribution
+
+-
++
+ Name
+ Nom
+
+@@ -602,7 +607,7 @@
+ Lit moyen
+
+
+-
++
+ Comment
+ Commentaire
+
+@@ -1715,7 +1720,7 @@ sur le plan défini par les deux points nommés extrêmes
+
+
+
+-
++
+ MainWindow_reach
+
+
+@@ -1723,7 +1728,7 @@ sur le plan défini par les deux points nommés extrêmes
+
+
+
+-
++
+ Kp (m)
+ Pk (m)
+
+@@ -1778,68 +1783,47 @@ sur le plan défini par les deux points nommés extrêmes
+
+
+
+-
+- Jeu de sections du Bief
+-
+-
+-
+-
+-
+-Ordre des sections : Amont --> Aval
+-
+-
+-
+-
+- Pk =
+-
+-
+-
+-
+- Nouveau profil
+-
+-
+-
+-
++
+ Trier les profils par ordre croissant des Pk
+
+
+
+-
++
+ Name
+ Nom
+
+
+-
++
+ Type
+ Type
+
+
+-
++
+ Alt+Z
+
+
+
+-
++
+ Alt+E
+
+
+
+-
++
+ Alt+R
+
+
+
+-
++
+ Vue globale automatique (Alt+S)
+
+
+
+-
++
+ Vue globale automatique (Alt+D)
+
+
+
+-
++
+ Vue globale automatique (Alt+F)
+
+
+@@ -1889,68 +1873,33 @@ Seuls les 5 premiers seront édités.
+ Profil sélectionné
+
+
+-
+-
+- Importer une géométrie
+-
+-
+-
+-
+- Supprimer le profil sélectionné
+-
+-
+-
+-
+- Éditer le profil sélectionné
+-
+-
+
+
+- Copier le profil sélectionné
+-
+-
+-
+-
+- Coller le profil en fin de liste (penser à modifier le Pk avant de trier)
+-
+-
+-
+-
+- Dupliquer la section sélectionnée
+-
+-
+-
+-
+ Trier les profils par ordre décroissant des Pk
+
+
+
+-
++
+ Changer l'ordre des profils (en décalant le profil sélectionné vers le haut)
+
+
+
+-
++
+ Changer l'ordre des profils (en décalant le profil sélectionné vers le bas)
+
+
+
+-
+- Terminer l'édition
+-
+-
+-
+-
++
+ Vue isométrique (Alt+Z)
+
+
+
+-
++
+ Vue isométrique (Alt+E)
+
+
+
+-
++
+ Vue isométrique (Alt+R)
+
+
+@@ -1969,6 +1918,36 @@ Seuls les 5 premiers seront édités.
+ Select destination file
+
+
++
++
++ Geometry reach edit
++
++
++
++
++ Kp =
++
++
++
++
++ Import geometry
++
++
++
++
++ New profile
++
++
++
++
++ Delete selected profile
++
++
++
++
++ Editer selected profile
++
++
+
+
+ Network
+@@ -2071,7 +2050,7 @@ Seuls les 5 premiers seront édités.
+
+
+ Type
+- Type
++ Type
+
+
+