tmac.q4 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. .\" MACROES FOR FOOTNOTES (file tmac.q4)
  2. .\"
  3. .\" Th.A. Zoethout
  4. .\"
  5. .de FN \" NUMBERED FOOTNOTE START
  6. .\" .FN [ [$1] $2 ]
  7. . \" $1 = prefix
  8. . \" $2 = suffix
  9. .ie \\n(FS=0 \{\
  10. .ie n \{\
  11. .if \\n(.$=0 .FS (\\n(FN)
  12. .if \\n(.$=1 .FS (\\n(FN) \\$1
  13. .if \\n(.$=2 .FS \\$1 (\\n(FN) \\$2\}
  14. .el \{\
  15. .if \\n(.$=0 .FS \\n(FN
  16. .if \\n(.$=1 .FS \\n(FN \\$1
  17. .if \\n(.$=2 .FS \\$1 \\n(FN \\$2\}\}
  18. .el \{\
  19. . Er W ".FN: nested footnotes are not allowed
  20. \&\\$1\\n(FN\\$2\}
  21. .nr FN +1
  22. ..
  23. .de FS \" FOOTNOTE START
  24. .\" .FS [ [$1] ) $2 ( $3 ]
  25. . \" $1 = prefix
  26. . \" $2 = indicator
  27. . \" $3 = suffix
  28. .if \\n(.$>0 \{.ie n \&\\$1\\$2\\$3
  29. .el \v'-0.4m'\s-2\\$1\\$2\\$3\s+2\v'0.4m'\}
  30. .ie \\n(FS=1 .Er W ".FS: nested footnotes are not allowed
  31. .el \{\
  32. .nr FS 1
  33. .ev 1
  34. .nr Fp \\n(.s
  35. .ps \\n(Sf
  36. .ll \\n(Lfu
  37. .nr FE \\n(.i
  38. .in 1
  39. .da Fx
  40. .if \\n(.$>2 \&\\$2
  41. .if \\n(.$=1:(\\n(.$=2) \&\\$1\}
  42. ..
  43. .de FE \" FOOTNOTE END
  44. .\" .FE $1
  45. . \" $1 = succeeding vertical spacing { 0 }
  46. .ie \\n(FS=0 .Er W ".FE: no matching .FS or .FN
  47. .el \{\
  48. .br
  49. .if !\&\\$1\&\& .sp \\$1v
  50. .di
  51. .ll \\n(LLu
  52. .in \\n(FEu
  53. .ps \\n(Fp
  54. .rr FE
  55. .rr Fp
  56. .nr Fx +\\n(dn
  57. .ev
  58. .Fp
  59. .nr FS 0\}
  60. ..
  61. .de Fo \" catch footnote overflow trap macro
  62. .if \\n(Fl=2 .di Fl
  63. ..
  64. .de Fp \" place footnote trap macro
  65. .nr Fl 0
  66. .if \\n(Fx>0 \{\
  67. .nr Fl 1
  68. .nr Fo \\n(nl+1v
  69. .if \\n(Fo<(\\n(Tmu+\\n(NDv+1v) .nr Fo \\n(Tmu+\\n(NDv+1v
  70. .if \\n(Fo>(\\n(.pu-\\n(Bmu-\\n(Fxu-\\n(Fmu) .nr Fl 2
  71. .if \\n(Fo>=(\\n(.pu-\\n(Bmu-\\n(Fmu) .nr Fl 3 \}
  72. .if \\n(Fl=0 .ch Bm \\n(.pu-\\n(Bmu
  73. .if \\n(Fl=1 .ch Bm \\n(.pu-\\n(Bmu-\\n(Fxu-\\n(Fmu
  74. .if \\n(Fl=2 .ch Bm \\n(Fou
  75. .if \\n(Fl=3 .ch Bm \\n(.pu-\\n(Bmu
  76. .rr Fo
  77. ..
  78. .de Ft \" footnote processing at top of page
  79. .ev 1
  80. .if \\n(Fl=2 \{\
  81. .nr dn 0
  82. .nf
  83. .di Fx
  84. .Fl
  85. .br
  86. .di
  87. .fi
  88. .rm Fl
  89. .nr Fx \\n(dn \}
  90. .ev
  91. .Fp
  92. ..
  93. .de Fb \" footnote processing at bottom of page
  94. .if (\\n(Fl=1):(\\n(Fl=2) \{\
  95. .ev 1
  96. .nr Fx 0
  97. .nr Fb \\n(.i
  98. .in 0
  99. \\*(Ncnf \" Nc is no-break control character
  100. .Fm
  101. .Fx
  102. \\*(Ncfi \" Nc is no-break control character
  103. .in \\n(Fbu
  104. .ev
  105. .rm Fx \}
  106. .if \\n(Fl=2 .if "\\n(.z"Fl" .di
  107. ..
  108. .de Fm \" footnote marker
  109. \l#150p\(ul#
  110. \\*(Ncsp \" Nc is no-break control character
  111. ..
  112. . \" FOOTNOTE INITIALIZATION
  113. .nr FN 1
  114. .nr Fx 0
  115. .nr Fl 0
  116. .ev 1
  117. .nr Fm 2v
  118. .ev
  119. .ch Bm \n(.pu+1v
  120. .wh \n(.pu-\n(Bmu Fo
  121. .ch Bm \n(.pu-\n(Bmu
  122. .\*($0
  123. .rm $0 ]R