Mercurial > hg > sv-dependency-builds
comparison src/fftw-3.3.3/doc/FAQ/m-lout.pl @ 10:37bf6b4a2645
Add FFTW3
author | Chris Cannam |
---|---|
date | Wed, 20 Mar 2013 15:35:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
9:c0fb53affa76 | 10:37bf6b4a2645 |
---|---|
1 ## Lout output | |
2 # Copyright (C) 1993-1995 Ian Jackson. | |
3 | |
4 # This file is free software; you can redistribute it and/or modify | |
5 # it under the terms of the GNU General Public License as published by | |
6 # the Free Software Foundation; either version 2, or (at your option) | |
7 # any later version. | |
8 | |
9 # It is distributed in the hope that it will be useful, | |
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 # GNU General Public License for more details. | |
13 | |
14 # You should have received a copy of the GNU General Public License | |
15 # along with GNU Emacs; see the file COPYING. If not, write to | |
16 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
17 # Boston, MA 02111-1307, USA. | |
18 | |
19 # (Note: I do not consider works produced using these BFNN processing | |
20 # tools to be derivative works of the tools, so they are NOT covered | |
21 # by the GPL. However, I would appreciate it if you credited me if | |
22 # appropriate in any documents you format using BFNN.) | |
23 | |
24 sub lout_init { | |
25 open(LOUT,">$prefix.lout"); | |
26 chop($dprint= `date '+%d %B %Y'`); | |
27 $dprint =~ s/^0//; | |
28 } | |
29 | |
30 sub lout_startup { | |
31 local ($lbs) = &lout_sanitise($user_brieftitle); | |
32 print LOUT <<END; | |
33 \@SysInclude{ fontdefs } | |
34 \@SysInclude{ langdefs } | |
35 \@SysInclude{ dl } | |
36 \@SysInclude{ docf } | |
37 \@Use { \@DocumentLayout | |
38 \@OddTop { \@Null } | |
39 \@EvenTop { \@Null } | |
40 \@StartOddTop { \@Null } | |
41 \@StartEvenTop { \@Null } | |
42 \@OddFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } } | |
43 \@EvenFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } } | |
44 \@StartOddFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } } | |
45 \@StartEvenFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } } | |
46 \@ParaGap { 1.70vx } | |
47 \@InitialBreak { 1.0fx ragged hyphen } | |
48 } | |
49 \@Use { \@OrdinaryLayout } | |
50 END | |
51 $lout_textstatus= 'p'; | |
52 } | |
53 | |
54 sub lout_pageref { | |
55 print LOUT "Q$_[1] (page {\@PageOf{$_[0]}}) "; | |
56 &lout_text("\`"); | |
57 } | |
58 | |
59 sub lout_endpageref { | |
60 &lout_text("'"); | |
61 } | |
62 | |
63 sub lout_finish { | |
64 print LOUT "\@End \@Text\n"; | |
65 close(L); | |
66 } | |
67 | |
68 sub lout_startmajorheading { | |
69 $lout_styles .= 'h'; | |
70 print LOUT <<END | |
71 \@CNP | |
72 { | |
73 newpath 0 ysize 0.3 ft sub moveto | |
74 xsize 0 rlineto | |
75 0 0.2 ft rlineto | |
76 xsize neg 0 rlineto | |
77 closepath fill | |
78 } \@Graphic { //1.6f \@HAdjust \@Heading{ | |
79 END | |
80 ; | |
81 $endh= "}\n{\@PageMark s_$_[0]}\n/1.0fo\n"; | |
82 &lout_text($_[0] ? "Section $_[0]. " : ''); | |
83 } | |
84 | |
85 sub lout_startminorheading { | |
86 $lout_styles .= 'h'; | |
87 print LOUT "//0.2f \@CNP {\@PageMark $_[0]} \@Heading{\n"; | |
88 $endh= ''; | |
89 } | |
90 | |
91 sub lout_endheading { | |
92 $lout_styles =~ s/.$//; print LOUT "}\n$endh"; | |
93 $lout_status= 'p'; | |
94 } | |
95 | |
96 sub lout_endmajorheading { &lout_endheading(@_); } | |
97 sub lout_endminorheading { &lout_endheading(@_); } | |
98 | |
99 sub lout_courier { | |
100 $lout_styles .= 'f'; | |
101 print LOUT "{{0.7 1.0} \@Scale {Courier Bold} \@Font {"; | |
102 } | |
103 | |
104 sub lout_endcourier { | |
105 $lout_styles =~ s/.$//; print LOUT "}}"; | |
106 } | |
107 | |
108 sub lout_italic { $lout_styles .= 'f'; print LOUT "{Slope \@Font {"; } | |
109 sub lout_enditalic { $lout_styles =~ s/.$//; print LOUT "}}"; } | |
110 | |
111 sub lout_startindent { $lout_styles .= 'i'; print LOUT "\@IndentedDisplay {\n"; } | |
112 | |
113 sub lout_endindent { | |
114 &lout_endpara; | |
115 $lout_styles =~ s/.$//; print LOUT "}\n\@LP\n"; | |
116 } | |
117 | |
118 sub lout_startpackedlist { $lout_plc=-1; } | |
119 sub lout_endpackedlist { &lout_newline if !$lout_plc; } | |
120 sub lout_packeditem { | |
121 &lout_newline if !$lout_plc; | |
122 &lout_tab(($lout_plc>0)*40+5); | |
123 $lout_plc= !$lout_plc; | |
124 } | |
125 | |
126 sub lout_startlist { | |
127 &lout_endpara; | |
128 print LOUT "\@RawIndentedList style {\@Bullet} indent {0.5i} gap {1.1vx}\n"; | |
129 $lout_styles .= 'l'; | |
130 $lout_status= ''; | |
131 } | |
132 | |
133 sub lout_endlist { | |
134 &lout_endpara; | |
135 print LOUT "\@EndList\n\n"; | |
136 $lout_styles =~ s/.$//; | |
137 } | |
138 | |
139 sub lout_item { | |
140 &lout_endpara; | |
141 print LOUT "\@ListItem{"; | |
142 $lout_styles.= 'I'; | |
143 } | |
144 | |
145 sub lout_startindex { | |
146 print LOUT "//0.0fe\n"; | |
147 } | |
148 | |
149 sub lout_endindex { | |
150 $lout_status='p'; | |
151 } | |
152 | |
153 sub lout_startindexmainitem { | |
154 $lout_marker= $_[0]; | |
155 $lout_status= ''; | |
156 print LOUT "//0.3vx Bold \@Font \@HAdjust { \@HContract { { $_[1] } |3cx {"; | |
157 $lout_iiendheight= '1.00'; | |
158 $lout_styles .= 'X'; | |
159 } | |
160 | |
161 sub lout_startindexitem { | |
162 $lout_marker= $_[0]; | |
163 print LOUT "\@HAdjust { \@HContract { { $_[1] } |3cx {"; | |
164 $lout_iiendheight= '0.95'; | |
165 $lout_styles .= 'X'; | |
166 } | |
167 | |
168 sub lout_endindexitem { | |
169 print LOUT "} } |0c \@PageOf { $lout_marker } } //${lout_iiendheight}vx\n"; | |
170 $lout_styles =~ s/.$//; | |
171 } | |
172 | |
173 sub lout_email { &lout_courier; &lout_text('<'); } | |
174 sub lout_endemail { &lout_text('>'); &lout_endcourier; } | |
175 | |
176 sub lout_ftpon { &lout_courier; } sub lout_endftpon { &lout_endcourier; } | |
177 sub lout_ftpin { &lout_courier; } sub lout_endftpin { &lout_endcourier; } | |
178 sub lout_docref { } sub lout_enddocref { } | |
179 sub lout_ftpsilent { $lout_ignore++; } | |
180 sub lout_endftpsilent { $lout_ignore--; } | |
181 | |
182 sub lout_newsgroup { &lout_courier; } | |
183 sub lout_endnewsgroup { &lout_endcourier; } | |
184 | |
185 sub lout_text { | |
186 return if $lout_ignore; | |
187 $lout_status= 'p'; | |
188 $_= &lout_sanitise($_[0]); | |
189 s/ $/\n/ unless $lout_styles =~ m/[fhX]/; | |
190 print LOUT $_; | |
191 } | |
192 | |
193 sub lout_tab { | |
194 local ($size) = $_[0]*0.5; | |
195 print LOUT " |${size}ft "; | |
196 } | |
197 | |
198 sub lout_newline { | |
199 print LOUT " //1.0vx\n"; | |
200 } | |
201 | |
202 sub lout_sanitise { | |
203 local ($in) = @_; | |
204 local ($out); | |
205 $in= ' '.$in.' '; | |
206 $out=''; | |
207 while ($in =~ m/(\s)(\S*[\@\/|\\\"\^\&\{\}\#]\S*)(\s)/) { | |
208 $out .= $`.$1; | |
209 $in = $3.$'; | |
210 $_= $2; | |
211 s/[\\\"]/\\$&/g; | |
212 $out .= '"'.$_.'"'; | |
213 } | |
214 $out .= $in; | |
215 $out =~ s/^ //; $out =~ s/ $//; | |
216 $out; | |
217 } | |
218 | |
219 sub lout_endpara { | |
220 return if $lout_status eq ''; | |
221 if ($lout_styles eq '') { | |
222 print LOUT "\@LP\n\n"; | |
223 } elsif ($lout_styles =~ s/I$//) { | |
224 print LOUT "}\n"; | |
225 } | |
226 $lout_status= ''; | |
227 } | |
228 | |
229 sub lout_startverbatim { | |
230 print LOUT "//0.4f\n\@RawIndentedDisplay lines \@Break". | |
231 " { {0.7 1.0} \@Scale {Courier Bold} \@Font {\n"; | |
232 } | |
233 | |
234 sub lout_verbatim { | |
235 $_= $_[0]; | |
236 s/^\s*//; | |
237 print LOUT &lout_sanitise($_),"\n"; | |
238 } | |
239 | |
240 sub lout_endverbatim { print LOUT "}\n}\n//0.4f\n"; } | |
241 | |
242 1; |