diff --git a/doc/lib.m4 b/doc/lib.m4
index 1870d57ed..2dc950b6c 100644
--- a/doc/lib.m4
+++ b/doc/lib.m4
@@ -1,7 +1,31 @@
 m4_changequote({{,}})m4_dnl
-m4_define({{_man_}}, m4_ifdef({{MAN}},{{$1}}))m4_dnl
-m4_define({{_web_}}, m4_ifdef({{WEB}},{{$1}}))m4_dnl
-m4_define({{_include_}}, m4_defn({{m4_include}}))m4_dnl
+m4_dnl
+m4_define({{_include_}},     m4_defn({{m4_include}})              )m4_dnl
+m4_define({{_man_}},         m4_ifdef({{MAN}},{{$1}})             )m4_dnl
+m4_define({{_web_}},         m4_ifdef({{WEB}},{{$1}})             )m4_dnl
+m4_define({{_webseparate_}}, m4_ifdef({{WEB && SEPARATE}},{{$1}}) )m4_dnl
+m4_define({{_webcombined_}}, m4_ifdef({{WEB && COMBINED}},{{$1}}) )m4_dnl
+m4_dnl
+m4_define({{_currentrelease_}}, {{0.27}})m4_dnl
+m4_dnl
+m4_define({{_versions_}},
+
)m4_dnl
+m4_dnl
+m4_define({{_toc_}}, {{* toc}})m4_dnl
+m4_dnl
+m4_dnl _table_({{
+m4_dnl | cell1 | cell2 ...
+m4_dnl | cell1 | cell2 ...
+m4_dnl ...
+m4_dnl }})
+m4_define({{_table2_}}, {{
+|
+|-|-$1}})m4_dnl
+m4_dnl
 m4_define({{_col2_}},
 {{
 
@@ -9,6 +33,7 @@ m4_define({{_col2_}},
 
$2
  }})m4_dnl
+m4_dnl
 m4_define({{_col3_}},
 {{
 
@@ -17,14 +42,11 @@ m4_define({{_col3_}},
 
$3
  }})m4_dnl
-m4_define({{_shell_}}, {{```{.shell .clear}$1```}})m4_dnl
-m4_define({{_shellbold_}}, {{```{.shell .bold .clear}$1```}})m4_dnl
-m4_define({{_journal_}}, {{```{.journal .clear}$1```}})m4_dnl
-m4_define({{_currentrelease_}}, {{0.27}})m4_dnl
-m4_define({{_versions_}},
-)m4_dnl
-m4_define({{_toc_}}, {{* toc}})m4_dnl
+m4_dnl
+m4_define({{_shell_}},     {{```shell$1```}}          )m4_dnl
+m4_define({{_shellbold_}}, {{```{.shell .bold}$1```}} )m4_dnl
+m4_define({{_journal_}},   {{```journal$1```}}        )m4_dnl
+m4_define({{_csv_}},       {{```csv$1```}}            )m4_dnl
+m4_define({{_rules_}},     {{```rules$1```}}          )m4_dnl
+m4_define({{_timeclock_}}, {{```timeclock$1```}}      )m4_dnl
+m4_define({{_timedot_}},   {{```timedot$1```}}        )m4_dnl