F diff --git a/g.tmac b/g.tmac
--- a/g.tmac
+++ b/g.tmac
.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
\#########################################################################
\#########################################################################
\#########################################################################
+ .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
.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
.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
..
.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 \{\
.di footnote_text_unfinished_text_hold
.di
- .if d footnote_text \{\
+ .ie d footnote_text \{\
\# separator
\l'1i'
.br
.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
.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
\#########################################################################
.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
.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
\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]]
.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