summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGalin Simeonov <gts@volconst.com>2021-05-27 23:15:41 +0300
committerGalin Simeonov <gts@volconst.com>2021-05-28 21:33:46 +0300
commitee9d3272aa67de912eb1f015b62ba128fbb1a974 (patch)
tree9dea1426a6d1dccddf213a1cc6e9c8477b3a17cf
parent543646b651cba4c305f4f06dd655999eb6a13581 (diff)
downloadmg-ee9d3272aa67de912eb1f015b62ba128fbb1a974.tar.gz
Footer and footnote fixes
-rw-r--r--g.tmac157
1 files changed, 104 insertions, 53 deletions
diff --git a/g.tmac b/g.tmac
index 0b83c44..98693c5 100644
--- a/g.tmac
+++ b/g.tmac
@@ -26,7 +26,7 @@
.ds proof_string Proof
\#########################################################################
.nr header_text_from_top_spacing 1
-.nr header_line_from_text_spacing 0.3
+.nr header_line_from_text_spacing 0
.nr header_real_text_from_line_spacing 1
.nr header_horizontal_line 1
.nr header_horizontal_line_thickness 0.5p
@@ -52,15 +52,29 @@
\#########################################################################
\#########################################################################
\#########################################################################
+.de set_footnote_environment
+.ev footnote_environment
+.vs -\\n[footnote_vertical_spacing_reduction]
+.ps -\\n[footnote_point_size_reduction]
+.ev
+..
+\#########################################################################
.de place_footer_trap
-.wh -3v footer_trap_macro
+.wh -3v breakpage
+.wh -2v footer_trap_macro
..
\#########################################################################
.de place_header_trap
.wh 0 paste_header
..
-.de place_footnote_trap
-.wh -1i paste_footnote
+\#########################################################################
+.de remove_footer_trap
+.wh -3v
+.wh -2v
+..
+\#########################################################################
+.de remove_header_trap
+.wh 0
..
\#########################################################################
.de place_ordinary_traps
@@ -68,23 +82,23 @@
.place_footer_trap
..
\#########################################################################
-.de set_footnote_environment
-.ev footnote_environment
-.vs -\\n[footnote_vertical_spacing_reduction]
-.ps -\\n[footnote_point_size_reduction]
-.ev
+.de place_decoration
+.place_ordinary_traps
..
-.set_footnote_environment
\#########################################################################
-\# IMPORTANT!
-.place_ordinary_traps
+.de remove_decoration
+.remove_header_trap
+.remove_footer_trap
+..
\#########################################################################
-.de remove_footer_trap
-.wh -3v
+.de start
+.set_footnote_environment
+.place_ordinary_traps
..
\#########################################################################
-.de remove_header_trap
-.wh 0
+.de finish
+.references
+\#.plainpage end
..
\#########################################################################
.de paragraph
@@ -94,16 +108,16 @@
.de list
.ie '\\$1'end' \{\
.nr list_indentation 0
-\!.br
+.br
\}
.el \{\
.nr list_indentation 1
-\!.br
+.br
\}
..
\#########################################################################
.de item
-\!.br
+.br
\\n[list_indentation])
.nr list_indentation +1
..
@@ -182,9 +196,16 @@
.br
.boxa
.ev
-.if !d there_is_a_footnote \{\
+.ie !d there_is_a_footnote \{\
.ds there_is_a_footnote "yes"
-.place_footnote_trap
+.nr current_footnote_height 4v
+.wh -(\\n[current_footnote_height]u+\\n[dn]u) paste_footnote
+.nr current_footnote_height +\\n[dn]u
+\}
+.el \{
+.wh -\\n[current_footnote_height]u
+.wh -(\\n[current_footnote_height]u+\\n[dn]u) paste_footnote
+.nr current_footnote_height +\\n[dn]u
\}
\}
.el \{\
@@ -207,7 +228,7 @@
.di footnote_text_unfinished_text_hold
.di
-.if d footnote_text \{\
+.ie d footnote_text \{\
\# separator
\l'1i'
.br
@@ -216,7 +237,7 @@
.footnote_text
.rm footnote_text
.rm footnote_start_flag
-.ie d footer_start_flag \{\
+.ie dfooter_start_flag \{\
.di
.di footnote_text
.footnote_text_hold
@@ -232,6 +253,13 @@
.bp
\}
\}
+.el \{
+.bp
+.footnote_text_unfinished_text_hold
+.rm footnote_text_unfinished_text_hold
+\}
+.wh -\\n[current_footnote_height]u
+.rm current_footnote_height
..
\#########################################################################
.de footer_trap_macro
@@ -249,9 +277,7 @@
\#########################################################################
.de paste_footer
.ev footer_environment
-.ce 1
-- \\n[.pn] -
-.ce 0
+.tl ''- \\n[.pn] -''
.bp
.footnote_text_unfinished_text_hold
.rm footnote_text_unfinished_text_hold
@@ -290,20 +316,8 @@
.ev header_env
.br
.sp \n[header_text_from_top_spacing]
-.ad l
-\\*[header_left]
-.br
-.sp -1
-.ad c
-\\*[header_center]
-.br
-.sp -1
-.ad r
-\\*[header_right]
-.br
-.sp -1
-.ad l
-.br
+.tl '\\*[header_left]'\\*[header_center]'\\*[header_right]'
+.sp -1v
.sp \n[header_line_from_text_spacing]
.draw_full_page_horisontal_line
.br
@@ -401,11 +415,22 @@
\s-\\n[superscript_size_decrease]\v'-0.5v'\h'-0.2v'\\$1\v'+0.5v'\s+\\n[superscript_size_decrease]
..
\#########################################################################
-.de ][
-.if !dhasreferences \{
-.ds hasreferences yes
-.em references
+.de references
+.if d references_accumulation \{
+.plainpage
+.br
+.sp \n[space_from_top_to_bibliography_string]
+.center
+\\*[bibliography_string]
+.center end
+.br
+.sp \n[space_from_bibliography_string_to_references]
+.references_accumulation
+.br
\}
+..
+\#########################################################################
+.de ][
.boxa references_accumulation
.br
[\\*[[F]]
@@ -420,21 +445,47 @@
.box
..
\#########################################################################
-.de references
+.de titlepage
+.ie '\\$1'end' \{
+.place_header_trap
.newpage
+.place_footer_trap
+.pn 1
+\}
+.el \{
+.remove_decoration
+\}
+..
+\#########################################################################
+.de plainpage
.br
-.sp \n[space_from_top_to_bibliography_string]
-.center
-\\*[bibliography_string]
-.center end
+.ie '\\$1'end' \{
+.place_header_trap
+.place_footer_trap
+\}
+.el \{
+.remove_header_trap
+.newpage
+.remove_footer_trap
+\}
+..
+\#########################################################################
+.de breakpage
+.di breakpage_diversion
.br
-.sp \n[space_from_bibliography_string_to_references]
-.references_accumulation
+.di
+.bp
+.breakpage_diversion
+..
+\#########################################################################
+.de newpage
+.bp
+..
+\#########################################################################
+.de newline
.br
..
\#########################################################################
-.als newpage bp
-.als newline br
.ig
.als параграф paragraph
.als заглавие title