Mercurial > hg > xemacs-beta
comparison man/w3.texi @ 22:8fc7fe29b841 r19-15b94
Import from CVS: tag r19-15b94
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:50:29 +0200 |
parents | 859a2309aef8 |
children | 4103f0995bd7 |
comparison
equal
deleted
inserted
replaced
21:b88636d63495 | 22:8fc7fe29b841 |
---|---|
92 * Getting Started:: Getting up and running with Emacs-W3 | 92 * Getting Started:: Getting up and running with Emacs-W3 |
93 * Basic Usage:: Basic movement and usage of Emacs-W3. | 93 * Basic Usage:: Basic movement and usage of Emacs-W3. |
94 * Compatibility:: Explanation of compatibility with | 94 * Compatibility:: Explanation of compatibility with |
95 other browsers. | 95 other browsers. |
96 * Stylesheets:: How to control the look of web pages | 96 * Stylesheets:: How to control the look of web pages |
97 * Supported URLs:: What @sc{URL} schemes are supported. | |
97 * MIME Support:: Support for @sc{mime} | 98 * MIME Support:: Support for @sc{mime} |
98 * Security:: Various security methods supported | 99 * Security:: Various security methods supported |
99 * Non-Unix Operating Systems:: Special considerations necessary to get | 100 * Non-Unix Operating Systems:: Special considerations necessary to get |
100 up and running correctly under non-unix | 101 up and running correctly under non-unix |
101 OS's. | 102 OS's. |
104 * More Help:: How to get more help---mailing lists, | 105 * More Help:: How to get more help---mailing lists, |
105 newsgroups, etc. | 106 newsgroups, etc. |
106 * Future Directions:: Plans for future revisions | 107 * Future Directions:: Plans for future revisions |
107 | 108 |
108 Appendices: | 109 Appendices: |
109 * Reporting Bugs:: How to report a bug in Emacs-W3 | 110 * Reporting Bugs:: How to report a bug in Emacs-W3. |
110 * Installing SSL:: Turning on @sc{ssl} support | 111 * Dealing with Firewalls:: How to get around your firewall. |
111 * Mailcap Files:: An explanation of Mailcap files | 112 * Proxy Gateways:: Using a proxy gateway with Emacs-W3. |
113 * Installing SSL:: Turning on @sc{ssl} support. | |
114 * Mailcap Files:: An explanation of Mailcap files. | |
115 * Down with DoubleClick:: Annoyed by advertisements? Read this! | |
112 | 116 |
113 Indices: | 117 Indices: |
114 * General Index:: General Index | 118 * General Index:: General Index. |
115 * Key Index:: Menus of command keys and their references | 119 * Key Index:: Menus of command keys and their references. |
116 @end menu | 120 @end menu |
117 @end ifinfo | 121 @end ifinfo |
118 | 122 |
119 @node Getting Started, Basic Usage, Top, Top | 123 @node Getting Started, Basic Usage, Top, Top |
120 @chapter Getting Started | 124 @chapter Getting Started |
130 | 134 |
131 If the default page is not retrieved correctly at startup, you will have | 135 If the default page is not retrieved correctly at startup, you will have |
132 to do some customization. | 136 to do some customization. |
133 | 137 |
134 @menu | 138 @menu |
135 * Using the Network:: Tell Emacs about your network setup. | 139 * Downloading:: Where to download Emacs-W3. |
136 * Proxy Gateways:: Using an @sc{http} proxy | 140 * Building and Installing:: Compiling and installing from source. |
137 * Startup Files:: What is where, and why. | 141 * Startup Files:: What is where, and why. |
138 * Preferences Panel:: Quick configuration of common options. | 142 * Preferences Panel:: Quick configuration of common options. |
139 @end menu | 143 @end menu |
140 | 144 |
141 @node Using the Network, Proxy Gateways, Getting Started, Getting Started | 145 @node Downloading, Building and Installing, Getting Started, Getting Started |
142 @section Using the Network | 146 @section Downloading |
143 By default, Emacs can support standard @sc{tcp}/@sc{ip} network | 147 :: WORK :: What you need, and why |
144 connections on almost all the platforms it runs on (Unix, @sc{vms}, | 148 :: WORK :: Where to download Emacs, XEmacs, various platforms |
145 Windows, etc). However, there are several situations where it is not | 149 :: WORK :: Where to download Emacs-W3 |
146 sufficient. | 150 :: WORK :: Where to download related utilities (netpbm, xv, gimp, etc.) |
147 | 151 |
148 @table @b | 152 @node Building and Installing, Startup Files, Downloading, Getting Started |
149 @cindex Firewalls | 153 @section Building and Installing |
150 @item Firewalls | 154 :: WORK :: Document makefile variables |
151 It is becoming more and more common to be behind a firewall or some | 155 :: WORK :: Document what gets installed where, why |
152 other system that restricts your outbound network activity, especially | 156 |
153 if you are like me and away from the wonderful world of academia. | 157 @node Startup Files, Preferences Panel, Building and Installing, Getting Started |
154 Emacs-W3 has several different methods to get around firewalls (not to | |
155 worry though - none of them should get you in trouble with the local | |
156 @sc{mis} department.) | |
157 | |
158 @item Emacs cannot resolve hostnames. | |
159 @cindex Faulty hostname resolvers | |
160 @cindex Broken SunOS libc | |
161 @cindex Hostname resolution | |
162 This happens quite often on SunOS workstations and some ULTRIX machines. | |
163 Some C libraries do not include the hostname resolver routines in their | |
164 static libraries. If Emacs was linked statically, and was not linked | |
165 with the resolver libraries, it wil not be able to get to any machines | |
166 off the local network. This is characterized by being able to reach | |
167 someplace with a raw ip number, but not its hostname | |
168 (@url{http://129.79.254.191/} works, but | |
169 @url{http://www.cs.indiana.edu/} doesn't). | |
170 | |
171 The best solution for this problem is to recompile Emacs, making sure to | |
172 either link dynamically (if available on your operating system), or | |
173 include the @file{-lresolv}. | |
174 | |
175 @cindex url-gateway-broken-resolution | |
176 If you do not have the disk space or the appropriate permissions to | |
177 recompile Emacs, another alternative is using the @file{nslookup} | |
178 program to do hostname resolution. To turn this on, set the variable | |
179 @code{url-gateway-broken-resolution} in your @file{~/.emacs} file. This | |
180 runs the program specified by @code{url-gateway-nslookup-program} (by | |
181 default "@code{nslookup}" to do hostname resolution. This program should | |
182 expect a single argument on the command line - the hostname to resolve, | |
183 and should produce output similar to the standard Unix @file{nslookup} | |
184 program: | |
185 | |
186 @example | |
187 Name: www.cs.indiana.ed | |
188 Address: 129.79.254.191 | |
189 @end example | |
190 | |
191 @cindex @sc{term} | |
192 @item Using @sc{term} (or @sc{term}-like) Networking Software | |
193 @sc{term} @footnote{@sc{term} is a user-level protocol for emulating | |
194 @sc{ip} over a serial line. More information is available at | |
195 @url{ftp://sunsite.unc.edu/pub/Linux/apps/comm/term}} for slip-like | |
196 access to the internet. | |
197 | |
198 @sc{note}: XEmacs and Emacs 19.22 or later have patches to enable native | |
199 @sc{term} networking. To enable it, @code{#define TERM} in the | |
200 appropriate s/*.h file for the operating system, then change the | |
201 @code{SYSTEM_LIBS} definition to include the @file{termnet} library that | |
202 comes with the latest versions of @sc{term}. | |
203 | |
204 If you run into any problems with the native @sc{term} networking | |
205 support in Emacs or XEmacs, please let @t{wmperry@@cs.indiana.edu} know, | |
206 as he is responsible for the original support. | |
207 @end table | |
208 | |
209 @vindex url-gateway-local-host-regexp | |
210 Emacs-W3 has support for using the gateway mechanism for certain | |
211 domains, and directly connecting to others. The variable | |
212 @code{url-gateway-local-host-regexp} controls this behaviour. This is a | |
213 regular expression @footnote{Please see the full Emacs distribution for | |
214 a description of regular expressions} that matches local hosts that do | |
215 not require the use of a gateway. If @code{nil}, then all connections | |
216 are made through the gateway. | |
217 | |
218 @vindex url-gateway-method | |
219 Emacs-W3 supports several methods of getting around gateways. The | |
220 variable @code{url-gateway-method} controls which of these methods is | |
221 used. This variable can have several values (use these as symbol names, | |
222 not strings), ie: @samp{(setq url-gateway-method 'telnet)}. Possible | |
223 values are: | |
224 | |
225 @table @dfn | |
226 @item telnet | |
227 Use this method if you must first telnet and log into a gateway host, | |
228 and then run telnet from that host to connect to outside machines. | |
229 | |
230 :: WORK :: document telnet gw variables | |
231 This section needs more information, specifically documenting the | |
232 following variables. For now, please do @key{C-h v} on the variable for | |
233 more information. | |
234 | |
235 @table @code | |
236 @item url-gateway-telnet-host | |
237 @item url-gateway-telnet-parameters | |
238 @item url-gateway-telnet-password-prompt | |
239 @item url-gateway-telnet-puser-name | |
240 @item url-gateway-prompt-pattern | |
241 @end table | |
242 | |
243 @item rlogin | |
244 This method is identical to the @code{telnet} method, but uses | |
245 @file{rlogin} to log into the remote machine without having to send the | |
246 username and password over the wire every time. | |
247 | |
248 :: WORK :: document rlogin gw variables | |
249 This section needs more information, specifically documenting the | |
250 following variables. For now, please do @key{C-h v} on the variable for | |
251 more information. | |
252 | |
253 @table @code | |
254 @item url-gateway-rlogin-host | |
255 @item url-gateway-rlogin-parameters | |
256 @item url-gateway-rlogin-user-name | |
257 @item url-gateway-prompt-pattern | |
258 @end table | |
259 | |
260 @item tcp | |
261 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very small | |
262 application that you can run in a subprocess to do the network | |
263 connections. | |
264 | |
265 @item @sc{socks} | |
266 Use if the firewall has a @sc{socks} gateway running on it. | |
267 | |
268 :: WORK :: document socks variables | |
269 This section needs more information, specifically documenting the | |
270 following variables. For now, please do @key{C-h v} on the variable for | |
271 more information. | |
272 | |
273 @table @code | |
274 @item socks-host | |
275 @item socks-password | |
276 @item socks-username | |
277 @item socks-port | |
278 @item socks-timeout | |
279 @end table | |
280 | |
281 @c @item ssl | |
282 @c This probably shouldn't be documented | |
283 | |
284 @item native | |
285 This means that Emacs-W3 should use the builtin networking code of | |
286 Emacs. This should be used only if there is no firewall, or the Emacs | |
287 source has already been hacked to get around the firewall. | |
288 @end table | |
289 | |
290 Emacs-W3 should now be able to get outside the local network. If none | |
291 of this makes sense, its probably my fault. Please check with the | |
292 network administrators to see if they have a program that does most of | |
293 this already, since somebody somewhere at the company has probably been | |
294 through something similar to this before, and would be much more | |
295 helpful/knowledgeable about the local setup than I would be. But feel | |
296 free to mail me as a last resort. | |
297 @node Proxy Gateways, Startup Files , Using the Network, Getting Started | |
298 @section Proxy Gateways | |
299 @vindex url-proxy-services | |
300 @cindex Proxy Servers | |
301 @cindex Proxies | |
302 @cindex Proxies, environment variables | |
303 @cindex HTTP Proxy | |
304 | |
305 In late January 1993, Kevin Altis and Lou Montulli proposed and | |
306 implemented a new proxy service. This service requires the use of | |
307 environment variables to specify a gateway server/port # to send | |
308 protocol requests to. Each protocol (@sc{http}, @sc{wais}, gopher, | |
309 @sc{ftp}, etc.) can have a different gateway server. The environment | |
310 variables are @code{PROTOCOL}_proxy, where @code{PROTOCOL} is one of the | |
311 supported network protocols (gopher, file, @sc{http}, @sc{ftp}, etc.) | |
312 | |
313 @cindex No Proxy | |
314 @cindex Proxies, exclusion lists | |
315 @vindex NO_PROXY | |
316 For companies with internal intranets, it will usually be helpful to | |
317 define a list of hosts that should be contacted directly, @b{not} sent | |
318 through the proxy. The @code{NO_PROXY} environment variable controls | |
319 what hosts are able to be contacted directly. This should be a comma | |
320 separated list of hostnames, domain names, or a mixture of both. | |
321 Asterisks can be used as a wildcard. For example: | |
322 | |
323 @example | |
324 NO_PROXY=*.aventail.com,home.com,*.seanet.com | |
325 @end example | |
326 | |
327 tells Emacs-W3 to contact all machines in the @b{aventail.com} and | |
328 @b{seanet.com} domains directly, as well as the machine named | |
329 @b{home.com}. | |
330 | |
331 @vindex url-proxy-services | |
332 @cindex Proxies, setting from lisp | |
333 For those adventurous souls who enjoy writing regular expressions, all | |
334 the proxy settings can be manipulated from Emacs-Lisp. The variable | |
335 @code{url-proxy-services} controls this. This is an assoc list, keyed | |
336 on the protocol type (@sc{http}, gopher, etc) in all lowercase. The | |
337 @code{cdr} of each entry should be the fully-specified @sc{url} of the proxy | |
338 server to contact, or, in the case of the special "no_proxy" entry, a | |
339 regular expression that matches any hostnames that should be contacted | |
340 directly. | |
341 | |
342 @example | |
343 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/") | |
344 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com"))) | |
345 @end example | |
346 | |
347 @node Startup Files, Preferences Panel, Proxy Gateways, Getting Started | |
348 @section Startup Files | 158 @section Startup Files |
349 @cindex Startup files | 159 @cindex Startup files |
350 @cindex Default stylesheet | 160 @cindex Default stylesheet |
351 :: WORK :: startup files | 161 :: WORK :: startup files |
352 This section should document where emacs-w3 looks for its startup files, | 162 This section should document where emacs-w3 looks for its startup files, |
353 and what each one does. 'profile' 'stylesheet' 'hotlist' 'history' etc. | 163 and what each one does. 'profile' 'stylesheet' 'hotlist' 'history' etc. |
354 | 164 |
355 @node Preferences Panel, , Startup Files, Getting Started | 165 @node Preferences Panel, , Startup Files, Getting Started |
356 @section Preferences Panel | 166 @section Preferences Panel |
357 @cindex Preferences | 167 @cindex Preferences |
358 @kindex M-x w3-edit-preferences | 168 @kindex M-x w3-preferences-edit |
359 :: WORK :: pref panel | 169 :: WORK :: pref panel |
360 This should document the quick preferences panel. M-x w3-edit-preferences | 170 This should document the quick preferences panel. M-x w3-preferences-edit |
361 | 171 |
362 @node Basic Usage, Movement , Getting Started, Top | 172 @node Basic Usage, Movement , Getting Started, Top |
363 @chapter Basic Usage | 173 @chapter Basic Usage |
364 @cindex Basic Usage | 174 @cindex Basic Usage |
365 @kindex space | 175 @kindex space |
648 @item HF, F | 458 @item HF, F |
649 Takes one step forward along the path in the current history. Has no | 459 Takes one step forward along the path in the current history. Has no |
650 effect if at the end of the session history. | 460 effect if at the end of the session history. |
651 @end table | 461 @end table |
652 | 462 |
653 @node Miscellaneous, , Action, Basic Usage | 463 @node Miscellaneous, Compatibility, Action, Basic Usage |
654 @section Miscellaneous | 464 @section Miscellaneous |
655 @table @kbd | 465 @table @kbd |
656 @kindex M-m | 466 @kindex M-m |
657 @findex w3-mail-current-document | 467 @findex w3-mail-current-document |
658 @item M-m | 468 @item M-m |
751 first asks what type of link to follow (Normal or Reverse), then does | 561 first asks what type of link to follow (Normal or Reverse), then does |
752 a @code{completing-read} on only the links that have that type of | 562 a @code{completing-read} on only the links that have that type of |
753 relationship. | 563 relationship. |
754 @end table | 564 @end table |
755 | 565 |
756 @node Compatibility, , , Top | 566 @node Compatibility, Emulation, Miscellaneous, Top |
757 @chapter Compatibility with other Browsers | 567 @chapter Compatibility with other Browsers |
758 Due to the popularity of several other browsers, Emacs-W3 offers an easy | 568 Due to the popularity of several other browsers, Emacs-W3 offers an easy |
759 transition to its much better way of life. This ranges from being able | 569 transition to its much better way of life. This ranges from being able |
760 to share the same preferences files and disk cache to actually emulating | 570 to share the same preferences files and disk cache to actually emulating |
761 the keybindings used in other browsers. | 571 the keybindings used in other browsers. |
1005 from that buffer. This means that the user can go forwards and | 815 from that buffer. This means that the user can go forwards and |
1006 backwards very easily along the path taken to reach a particular | 816 backwards very easily along the path taken to reach a particular |
1007 document. To go forward, use the function @code{w3-forward-in-history}, | 817 document. To go forward, use the function @code{w3-forward-in-history}, |
1008 to go backward, use the function @code{w3-backward-in-history}. | 818 to go backward, use the function @code{w3-backward-in-history}. |
1009 | 819 |
1010 @node Global History, , Session History, Compatibility | 820 @node Global History, Stylesheets, Session History, Compatibility |
1011 @section Global History | 821 @section Global History |
1012 :: WORK :: Document that the global history can have diff. formats | 822 :: WORK :: Document that the global history can have diff. formats |
1013 Most web browsers also support the idea of a ``history'' of @sc{url}s the | 823 Most web browsers also support the idea of a ``history'' of @sc{url}s the |
1014 user has visited, and it displays them in a different style than normal | 824 user has visited, and it displays them in a different style than normal |
1015 @sc{url}s. | 825 @sc{url}s. |
1036 the @kbd{tab} or @kbd{space} key will show all completions for a | 846 the @kbd{tab} or @kbd{space} key will show all completions for a |
1037 partial @sc{url}. This is very useful, especially for very long @sc{url}s that | 847 partial @sc{url}. This is very useful, especially for very long @sc{url}s that |
1038 are not in a hotlist, or for seeing all the pages from a particular web | 848 are not in a hotlist, or for seeing all the pages from a particular web |
1039 site before choosing which to retrieve. | 849 site before choosing which to retrieve. |
1040 | 850 |
1041 @node Stylesheets, General Formatting, Top, Top | 851 @node Stylesheets, Terminology, Global History, Top |
1042 @chapter Stylesheets | 852 @chapter Stylesheets |
1043 @cindex Customizing formatting | 853 The way in which Emacs-W3 formats a document is very customizable. All |
1044 @cindex Specifying Fonts | |
1045 @cindex Fonts | |
1046 @cindex Stylesheets | |
1047 @cindex Colors | |
1048 How Emacs-W3 formats a document is very customizable. All control over | |
1049 formatting is now controlled by a default stylesheet set by the user | 854 formatting is now controlled by a default stylesheet set by the user |
1050 with the @code{w3-default-stylesheet} variable. | 855 with the @code{w3-default-stylesheet} variable. Emacs-W3 currently |
1051 | 856 supports the @sc{W3C} recommendation for Cascading Style Sheets, Level 1 |
1052 The following sections describe in more detail how to change the | 857 (commonly known as @sc{CSS1}) with a few experimental items from other |
1053 formatting of a document. | 858 W3C proposals. Wherever Emacs-W3 diverges from the specification, it |
859 will be clearly documented, and will be changed once a full standard is | |
860 available. | |
861 | |
862 Support for @sc{DSSSL} is progressing, but spare time is at an all-time | |
863 low. If anyone would like to help, please contact the author. | |
864 | |
865 The following sections closely parallel the @sc{CSS1} specification so | |
866 it should be very easy to look up what Emacs-W3 supports when browsing | |
867 through the @sc{CSS1} specification. Please note that a lot of the text | |
868 in the following sections comes directly from the specification as | |
869 well. | |
1054 | 870 |
1055 @ifinfo | 871 @ifinfo |
1056 @menu | 872 @menu |
1057 * General Formatting:: Changing general things about a | 873 * Terminology:: Terms used in the rest of this chapter. |
1058 document. | 874 * Basic Concepts:: Why are stylesheets useful? Getting started. |
1059 * Character based terminals:: Changing how a document is | 875 * Pseudo-Classes/Elements:: Special classes for elements. |
1060 displayed on a non-graphics | 876 * The Cascade:: How stylesheets are combined. |
1061 terminal (vt100, etc.@:) or if | 877 * Properties:: What properties you can set on elements. |
1062 @code{w3-delimit-emphasis} is @code{t}. | 878 * Units:: What you can set them to. |
1063 * Graphics workstations:: Changing how a document is | |
1064 displayed on a graphics terminal | |
1065 (Xwindows, Windows, NeXTstep, | |
1066 OS/2, etc.) | |
1067 * Inlined images:: How to specify how Emacs-W3 | |
1068 handles inlined images/mpegs. | |
1069 @end menu | 879 @end menu |
1070 @end ifinfo | 880 @end ifinfo |
1071 @node General Formatting, Character based terminals, Stylesheets, Stylesheets | 881 |
1072 @section General formatting conventions | 882 @node Terminology, Basic Concepts, Stylesheets, Stylesheets |
1073 @iftex | 883 @section Terminology |
1074 @heading Setting the fill column | 884 |
1075 @end iftex | 885 @table @dfn |
886 @item attribute | |
887 HTML attribute, ie: @samp{align=center} - align is the attribute. | |
888 @item author | |
889 The author of an HTML document. | |
890 @item block-level element | |
891 An element which has a line break before and after (e.g. 'H1' in @sc{HTML}). | |
892 @item canvas | |
893 The part of the UA's drawing surface onto which documents are rendered. | |
894 @item child element | |
895 A subelement in @sc{sgml} terminology. | |
896 @item contextual selector | |
897 A selector that matches elements based on their position in the document | |
898 structure. A contextual selector consists of several simple | |
899 selectors. E.g., the contextual selector 'H1.initial B' consists of two | |
900 simple selectors, 'H1.initial' and 'B'. | |
901 @item @sc{css} | |
902 Cascading Style Sheets. | |
903 @item declaration | |
904 A property (e.g. 'font-size') and a corresponding value (e.g. '12pt'). | |
905 @item designer | |
906 The designer of a style sheet. | |
907 @item document | |
908 @sc{html} document. | |
909 @item element | |
910 @sc{html} element. | |
911 @item element type | |
912 A generic identifier in @sc{sgml} terminology. | |
913 @item fictional tag sequence | |
914 A tool for describing the behavior of pseudo-classes and pseudo-elements. | |
915 @item font size | |
916 The size for which a font is designed. Typically, the size of a font is | |
917 approximately equal to the distance from the bottom of the lowest letter | |
918 with a descender to the top of the tallest letter with an ascender and | |
919 (optionally) with a diacritical mark. | |
920 @item @sc{html} extension | |
921 Markup introduced by UA vendors, most often to support certain visual | |
922 effects. The @sc{font}, @sc{center} and @sc{blink} elements are examples | |
923 of HTML extensions, as is the @sc{bgcolor} attribute. One of the goals | |
924 of @sc{css} is to provide an alternative to @sc{html} extensions. | |
925 @item inline element | |
926 An element which does not have a line break before and after | |
927 (e.g. '@sc{strong}' in @sc{html}) | |
928 @item intrinsic dimensions | |
929 The width and height as defined by the element itself, not imposed by | |
930 the surroundings. In this specification it is assumed that all replaced | |
931 elements -- and only replaced elements -- come with intrinsic | |
932 dimensions. | |
933 @item parent element | |
934 The containing element in @sc{sgml} terminology. | |
935 @item pseudo-element | |
936 Pseudo-elements are used in @sc{css} selectors to address typographical | |
937 items (e.g. the first line of an element) rather than structural | |
938 elements. | |
939 @item pseudo-class | |
940 Pseudo-classes are used in @sc{css} selectors to allow information | |
941 external to the @sc{html} source (e.g. the fact that an anchor has been | |
942 visited or not) to classify elements. | |
943 @item property | |
944 A stylistic parameter that can be influenced through @sc{css}. | |
945 @item reader | |
946 The person for whom the document is rendered. | |
947 @item replaced element | |
948 An element that the @sc{css} formatter only knows the intrinsic | |
949 dimensions of. In @sc{html}, @sc{img}, @sc{input}, @sc{textarea}, | |
950 @sc{select} and @sc{object} elements can be examples of replaced | |
951 elements. E.g., the content of the @sc{img} element is often replaced by | |
952 the image that the @sc{src} attribute points to. @sc{css1} does not | |
953 define how the intrinsic dimensions are found. | |
954 @item rule | |
955 A declaration (e.g. 'font-family: helvetica') and its selector | |
956 (e.g. @sc{'H1'}). | |
957 @item selector | |
958 A string that identifies what elements the corresponding rule applies | |
959 to. A selector can either be a simple selector (e.g. 'H1') or a | |
960 contextual selector (e.g. @sc{'h1 b'}) which consists of several simple | |
961 selectors. | |
962 @item @sc{sgml} | |
963 Standard Generalized Markup Language, of which @sc{html} is an | |
964 application. | |
965 @item simple selector | |
966 A selector that matches elements based on the element type and/or | |
967 attributes, and not he element's position in the document | |
968 structure. E.g., 'H1.initial' is a simple selector. | |
969 @item style sheet | |
970 A collection of rules. | |
971 @item @sc{ua} | |
972 User Agent, often a web browser or web client. | |
973 @item user | |
974 Synonymous with reader. | |
975 @item weight | |
976 The priority of a rule. | |
977 @end table | |
978 | |
979 @node Basic Concepts, Pseudo-Classes/Elements, Terminology, Stylesheets | |
980 @section Basic Concepts | |
981 Designing simple style sheets is easy. One needs only to know a little | |
982 HTML and some basic desktop publishing terminology. E.g., to set the | |
983 text color of 'H1' elements to blue, one can say: | |
984 | |
985 @example | |
986 H1 @{ color: blue @} | |
987 @end example | |
988 | |
989 The example above is a simple CSS rule. A rule consists of two main | |
990 parts: selector ('H1') and declaration ('color: blue'). The declaration | |
991 has two parts: property ('color') and value ('blue'). While the example | |
992 above tries to influence only one of the properties needed for rendering | |
993 an HTML document, it qualifies as a style sheet on its own. Combined | |
994 with other style sheets (one fundamental feature of CSS is that style | |
995 sheets are combined) it will determine the final presentation of the | |
996 document. | |
997 | |
998 The selector is the link between the HTML document and the style sheet, and | |
999 all HTML element types are possible selectors. | |
1000 | |
1001 @node Pseudo-Classes/Elements, The Cascade, Basic Concepts, Stylesheets | |
1002 @section Pseudo-Classes/Elements | |
1003 In @sc{css1}, style is normally attached to an element based on its | |
1004 position in the document structure. This simple model is sufficient for | |
1005 a wide variety of styles, but doesn't cover some common effects. The | |
1006 concept of pseudo-classes and pseudo-elements extend addressing in | |
1007 @sc{css1} to allow external information to influence the formatting | |
1008 process. | |
1009 | |
1010 Pseudo-classes and pseudo-elements can be used in @sc{css} selectors, | |
1011 but do not exist in the @sc{html} source. Rather, they are "inserted" by | |
1012 the @sc{ua} under certain conditions to be used for addressing in style | |
1013 sheets. They are referred to as "classes" and "elements" since this is a | |
1014 convenient way of describing their behavior. More specifically, their | |
1015 behavior is defined by a fictional tag sequence. | |
1016 | |
1017 Pseudo-elements are used to address sub-parts of elements, while | |
1018 pseudo-classes allow style sheets to differentiate between different | |
1019 element types. | |
1020 | |
1021 The only support pseudo-classes in Emacs-W3 are on the anchor tag | |
1022 (<a>...</a>). | |
1023 | |
1024 User agents commonly display newly visited anchors differently from | |
1025 older ones. In @sc{css1}, this is handled through pseudo-classes on the | |
1026 'A' element: | |
1027 | |
1028 @example | |
1029 A:link @{ color: red @} /* unvisited link */ | |
1030 A:visited @{ color: blue @} /* visited links */ | |
1031 A:active @{ color: lime @} /* active links */ | |
1032 @end example | |
1033 | |
1034 All 'A' elements with an 'HREF' attribute will be put into one and only | |
1035 one of these groups (i.e. target anchors are not affected). UAs may | |
1036 choose to move an element from 'visited' to 'link' after a certain | |
1037 time. An 'active' link is one that is currently being selected (e.g. by | |
1038 a mouse button press) by the reader. | |
1039 | |
1040 The formatting of an anchor pseudo-class is as if the class had been | |
1041 inserted manually. A @sc{ua} is not required to reformat a currently | |
1042 displayed document due to anchor pseudo-class transitions. E.g., a style | |
1043 sheet can legally specify that the 'font-size' of an 'active' link | |
1044 should be larger that a 'visited' link, but the UA is not required to | |
1045 dynamically reformat the document when the reader selects the 'visited' | |
1046 link. | |
1047 | |
1048 Pseudo-class selectors do not match normal classes, and vice versa. The | |
1049 style rule in the example below will therefore not have any influence: | |
1050 | |
1051 @example | |
1052 A:link @{ color: red @} | |
1053 | |
1054 <A CLASS=link NAME=target5> ... </A> | |
1055 @end example | |
1056 | |
1057 In @sc{css1}, anchor pseudo-classes have no effect on elements other | |
1058 than 'A'. Therefore, the element type can be omitted from the selector: | |
1059 | |
1060 @example | |
1061 A:link @{ color: red @} | |
1062 :link @{ color: red @} | |
1063 @end example | |
1064 | |
1065 The two selectors above will select the same elements in CSS1. | |
1066 | |
1067 Pseudo-class names are case-insensitive. | |
1068 | |
1069 Pseudo-classes can be used in contextual selectors: | |
1070 | |
1071 @example | |
1072 A:link IMG @{ border: solid blue @} | |
1073 @end example | |
1074 | |
1075 Also, pseudo-classes can be combined with normal classes: | |
1076 | |
1077 @example | |
1078 A.external:visited @{ color: blue @} | |
1079 | |
1080 <A CLASS=external HREF="http://out.side/">external link</A> | |
1081 @end example | |
1082 | |
1083 If the link in the above example has been visited, it will be rendered | |
1084 in blue. Note that normal class names precede pseudo-classes in the | |
1085 selector. | |
1086 | |
1087 @node The Cascade, Properties, Pseudo-Classes/Elements, Stylesheets | |
1088 @section The Cascade | |
1089 | |
1090 In @sc{css}, more than one style sheet can influence the presentation | |
1091 simultaneously. There are two main reasons for this feature: modularity | |
1092 and author/reader balance. | |
1093 | |
1094 @table @i | |
1095 @item modularity | |
1096 A style sheet designer can combine several (partial) style sheets to | |
1097 reduce redundancy: | |
1098 | |
1099 @example | |
1100 @@import url(http://www.style.org/pastoral); | |
1101 @@import url(http://www.style.org/marine); | |
1102 | |
1103 H1 @{ color: red @} /* override imported sheets */ | |
1104 @end example | |
1105 @item author/reader balance | |
1106 Both readers and authors can influence the presentation through style | |
1107 sheets. To do so, they use the same style sheet language thus reflecting | |
1108 a fundamental feature of the web: everyone can become a publisher. The | |
1109 @sc{ua} is free to choose the mechanism for referencing personal style | |
1110 sheets. | |
1111 @end table | |
1112 | |
1113 Sometimes conflicts will arise between the style sheets that influence | |
1114 the presentation. Conflict resolution is based on each style rule having | |
1115 a weight. By default, the weights of the reader's rules are less than | |
1116 the weights of rules in the author's documents. I.e., if there are | |
1117 conflicts between the style sheets of an incoming document and the | |
1118 reader's personal sheets, the author's rules will be used. Both reader | |
1119 and author rules override the @sc{ua}'s default values. | |
1120 | |
1121 The imported style sheets also cascade with each other, in the order | |
1122 they are imported, according to the cascading rules defined below. Any | |
1123 rules specified in the style sheet itself override rules in imported | |
1124 style sheets. That is, imported style sheets are lower in the cascading | |
1125 order than rules in the style sheet itself. Imported style sheets can | |
1126 themselves import and override other style sheets, recursively. | |
1127 | |
1128 In @sc{css1}, all '@@import' statements must occur at the start of a | |
1129 style sheet, before any declarations. This makes it easy to see that | |
1130 rules in the style sheet itself override rules in the imported style | |
1131 sheets. | |
1132 | |
1133 NOTE: The use of !important in @sc{css} stylesheets is unsupported at | |
1134 this time. | |
1135 | |
1136 Conflicting rules are intrinsic to the CSS mechanism. To find the value | |
1137 for an element/property combination, the following algorithm must be | |
1138 followed: | |
1139 | |
1140 @enumerate | |
1141 @item | |
1142 Find all declarations that apply to the element/property in | |
1143 question. Declarations apply if the selector matches the element in | |
1144 question. If no declarations apply, the inherited value is used. If | |
1145 there is no inherited value (this is the case for the 'HTML' element and | |
1146 for properties that do not inherit), the initial value is used. | |
1147 @item | |
1148 Sort the declarations by explicit weight: declarations marked | |
1149 '!important' carry more weight than unmarked (normal) declarations. | |
1150 @item | |
1151 Sort by origin: the author's style sheets override the reader's style | |
1152 sheet which override the UA's default values. An imported style sheet | |
1153 has the same origin as the style sheet from which it is imported. | |
1154 @item | |
1155 Sort by specificity of selector: more specific selectors will override | |
1156 more general ones. To find the specificity, count the number of ID | |
1157 attributes in the selector (a), the number of CLASS attributes in the | |
1158 selector (b), and the number of tag names in the selector | |
1159 (c). Concatenating the three numbers (in a number system with a large | |
1160 base) gives the specificity. Some examples: | |
1161 @example | |
1162 LI @{...@} /* a=0 b=0 c=1 -> specificity = 1 */ | |
1163 UL LI @{...@} /* a=0 b=0 c=2 -> specificity = 2 */ | |
1164 UL OL LI @{...@} /* a=0 b=0 c=3 -> specificity = 3 */ | |
1165 LI.red @{...@} /* a=0 b=1 c=1 -> specificity = 11 */ | |
1166 UL OL LI.red @{...@} /* a=0 b=1 c=3 -> specificity = 13 */ | |
1167 #x34y @{...@} /* a=1 b=0 c=0 -> specificity = 100 */ | |
1168 @end example | |
1169 Pseudo-elements and pseudo-classes are counted as normal elements and | |
1170 classes, respectively. | |
1171 @item | |
1172 Sort by order specified: if two rules have the same weight, the latter | |
1173 specified wins. Rules in imported style sheets are considered to be | |
1174 before any rules in the style sheet itself. | |
1175 @end enumerate | |
1176 | |
1177 The search for the property value can be terminated whenever one rule | |
1178 has a higher weight than the other rules that apply to the same | |
1179 element/property combination. | |
1180 | |
1181 This strategy gives author's style sheets considerably higher weight | |
1182 than those of the reader. It is therefore important that the reader has | |
1183 the ability to turn off the influence of a certain style sheet, | |
1184 e.g. through a pull-down menu. | |
1185 | |
1186 A declaration in the 'STYLE' attribute of an element has the same weight | |
1187 as a declaration with an ID-based selector that is specified at the end | |
1188 of the style sheet: | |
1189 | |
1190 @example | |
1191 <STYLE TYPE="text/css"> | |
1192 #x97z @{ color: blue @} | |
1193 </STYLE> | |
1194 | |
1195 <P ID=x97z STYLE="color: red"> | |
1196 @end example | |
1197 | |
1198 In the above example, the color of the 'P' element would be | |
1199 red. Although the specificity is the same for both declarations, the | |
1200 declaration in the 'STYLE' attribute will override the one in the | |
1201 'STYLE' element because of cascading rule number 5. | |
1202 | |
1203 The UA may choose to honor other stylistic HTML attributes, for example | |
1204 'ALIGN'. If so, these attributes are translated to the corresponding CSS | |
1205 rules with specificity equal to 1. The rules are assumed to be at the | |
1206 start of the author style sheet and may be overridden by subsequent | |
1207 style sheet rules. In a transition phase, this policy will make it | |
1208 easier for stylistic attributes to coexist with style sheets. | |
1209 | |
1210 @node Properties, Font Properties, The Cascade, Stylesheets | |
1211 @section Properties | |
1076 @ifinfo | 1212 @ifinfo |
1077 @center -------------------- | 1213 @menu |
1078 @center Setting the right margin | 1214 * Font Properties:: Selecting fonts, styles, and sizes. |
1079 @center -------------------- | 1215 * Colors and Backgrounds:: Controlling colors, front and back. |
1216 * Text Properties:: Alignment, decoration, and more! | |
1217 * Box Properties:: Borders, padding, and margins, oh my! | |
1218 * Classification:: Changing whitespace and display policies. | |
1219 * Media Selection:: | |
1220 * Speech Properties:: | |
1221 @end menu | |
1080 @end ifinfo | 1222 @end ifinfo |
1081 @cindex Margins | 1223 |
1082 @vindex fill-column | 1224 @node Font Properties, font-family, Properties, Properties |
1083 @vindex w3-right-border | 1225 @subsection Font Properties |
1084 Each time a document is parsed, the right margin is recalculated | 1226 Setting font properties will be among the most common uses of style |
1085 using the width of the current window and @code{w3-right-border}. | 1227 sheets. Unfortunately, there exists no well-defined and universally |
1086 @code{w3-right-border} is an integer specifying how much room at the | 1228 accepted taxonomy for classifying fonts, and terms that apply to one |
1087 right edge of the screen to leave blank. The @code{fill-column} is set | 1229 font family may not be appropriate for others. E.g. 'italic' is commonly |
1088 to @code{(- (window-width) @code{w3-right-border})}. | 1230 used to label slanted text, but slanted text may also be labeled as |
1089 @iftex | 1231 being @b{Oblique}, @b{Slanted}, @b{Incline}, @b{Cursive} or |
1090 @heading Formatting of directory listings | 1232 @b{Kursiv}. Therefore it is not a simple problem to map typical font |
1091 @end iftex | 1233 selection properties to a specific font. |
1234 | |
1235 The properties defined by CSS1 are described in the following sections. | |
1092 @ifinfo | 1236 @ifinfo |
1093 @center -------------------- | 1237 @menu |
1094 @center Formatting of directory listings | 1238 * font-family:: Groups of fonts. |
1095 @center -------------------- | 1239 * font-style:: Normal, italic, or oblique? |
1240 * font-variant:: Small-caps, etc. | |
1241 * font-weight:: How bold can you go? | |
1242 * font-size:: How big is yours? | |
1243 * font:: Shorthand for all of the above. | |
1244 @end menu | |
1096 @end ifinfo | 1245 @end ifinfo |
1097 @vindex url-use-hypertext-dired | 1246 |
1098 When Emacs-W3 encounters a link to a directory (whether by local file access | 1247 @node font-family, font-style, Font Properties, Font Properties |
1099 or via @sc{ftp}), it can either create an @sc{html} document on the fly, or use | 1248 @subsubsection font-family |
1100 @code{dired-mode} to peruse the listing. The variable | 1249 |
1101 @code{url-use-hypertext-dired} controls this behavior. | 1250 @multitable @columnfractions .20 .8 |
1102 | 1251 @item Supported Values: @tab [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>] |
1103 If the value is @code{t}, Emacs-W3 uses @code{directory-files} to list them | 1252 @item Initial: @tab User specific |
1104 out and transform the directory into a hypertext document, then pass it | 1253 @item Applies to: @tab all elements |
1105 through the parser like any other document. | 1254 @item Inherited: @tab yes |
1106 | 1255 @item Percentage values: @tab N/A |
1107 If the value is @code{nil}, just pass the directory off to dired using | 1256 @end multitable |
1108 @code{find-file}. Using this option loses all the hypertext abilities | 1257 The value is a prioritized list of font family names and/or generic |
1109 of Emacs-W3, and the users is unable to load documents in the directory | 1258 family names. Unlike most other CSS1 properties, values are separated |
1110 directly into Emacs-W3 by clicking with the mouse, etc. | 1259 by a comma to indicate that they are alternatives: |
1111 | 1260 |
1112 @iftex | 1261 @example |
1113 @heading Formatting of gopher directories | 1262 BODY @{ font-family: gill, helvetica, sans-serif @} |
1114 @end iftex | 1263 @end example |
1264 | |
1265 There are two types of list values: | |
1266 | |
1267 @table @b | |
1268 @item <family-name> | |
1269 The name of a font family of choice. In the last example, "gill" and | |
1270 "helvetica" are font families. | |
1271 @item <generic-family> | |
1272 In the example above, the last value is a generic family name. The | |
1273 following generic families are defined: | |
1274 @itemize @bullet | |
1275 @item | |
1276 'serif' (e.g. Times) | |
1277 @item | |
1278 'sans-serif' (e.g. Helvetica) | |
1279 @item | |
1280 'cursive' (e.g. Zapf-Chancery) | |
1281 @item | |
1282 'fantasy' (e.g. Western) | |
1283 @item | |
1284 'monospace' (e.g. Courier) | |
1285 @end itemize | |
1286 @end table | |
1287 | |
1288 Style sheet designers are encouraged to offer a generic font family as a | |
1289 last alternative. | |
1290 | |
1291 Font names containing whitespace should be quoted: | |
1292 | |
1293 @example | |
1294 BODY @{ font-family: "new century schoolbook", serif @} | |
1295 | |
1296 <BODY STYLE="font-family: 'My own font', fantasy"> | |
1297 @end example | |
1298 | |
1299 If quoting is omitted, any whitespace characters before and after the | |
1300 font name are ignored and any sequence of whitespace characters inside | |
1301 the font name is converted to a single space. | |
1302 | |
1303 @node font-style, font-variant, font-family, Font Properties | |
1304 @subsubsection font-style | |
1305 | |
1306 @multitable @columnfractions .2 .8 | |
1307 @item Supported Values: @tab normal | italic | oblique | |
1308 @item Initial: @tab normal | |
1309 @item Applies to: @tab all elements | |
1310 @item Inherited: @tab yes | |
1311 @item Percentage values: @tab N/A | |
1312 @end multitable | |
1313 | |
1314 The 'font-style' property selects between normal (sometimes referred to | |
1315 as "roman" or "upright"), italic and oblique faces within a font family. | |
1316 | |
1317 A value of 'normal' selects a font that is classified as 'normal' in the | |
1318 UA's font database, while 'oblique' selects a font that is labeled | |
1319 'oblique'. A value of 'italic' selects a font that is labeled 'italic', | |
1320 or, if that is not available, one labeled 'oblique'. | |
1321 | |
1322 The font that is labeled 'oblique' in the UA's font database may | |
1323 actually have been generated by electronically slanting a normal font. | |
1324 | |
1325 Fonts with Oblique, Slanted or Incline in their names will typically be | |
1326 labeled 'oblique' in the UA's font database. Fonts with Italic, Cursive | |
1327 or Kursiv in their names will typically be labeled 'italic'. | |
1328 | |
1329 @example | |
1330 H1, H2, H3 @{ font-style: italic @} | |
1331 H1 EM @{ font-style: normal @} | |
1332 @end example | |
1333 | |
1334 In the example above, emphasized text within 'H1' will appear in a | |
1335 normal face. | |
1336 | |
1337 @node font-variant, font-weight, font-style, Font Properties | |
1338 @subsubsection font-variant | |
1339 | |
1340 @multitable @columnfractions .2 .8 | |
1341 @item Value: @tab normal | small-caps | |
1342 @item Initial: @tab normal | |
1343 @item Applies to: @tab all elements | |
1344 @item Inherited: @tab yes | |
1345 @item Percentage values: @tab N/A | |
1346 @end multitable | |
1347 | |
1348 Another type of variation within a font family is the small-caps. In a | |
1349 small-caps font the lower case letters look similar to the uppercase | |
1350 ones, but in a smaller size and with slightly different proportions. The | |
1351 'font-variant' property selects that font. | |
1352 | |
1353 A value of 'normal' selects a font that is not a small-caps font, | |
1354 'small-caps' selects a small-caps font. It is acceptable (but not | |
1355 required) in CSS1 if the small-caps font is a created by taking a normal | |
1356 font and replacing the lower case letters by scaled uppercase | |
1357 characters. As a last resort, uppercase letters will be used as | |
1358 replacement for a small-caps font. | |
1359 | |
1360 The following example results in an 'H3' element in small-caps, with | |
1361 emphasized words in oblique small-caps: | |
1362 | |
1363 @example | |
1364 H3 @{ font-variant: small-caps @} | |
1365 EM @{ font-style: oblique @} | |
1366 @end example | |
1367 | |
1368 There may be other variants in the font family as well, such as fonts | |
1369 with old-style numerals, small-caps numerals, condensed or expanded | |
1370 letters, etc. CSS1 has no properties that select those. | |
1371 | |
1372 @node font-weight, font-size, font-variant, Font Properties | |
1373 @subsubsection font-weight | |
1374 | |
1375 @multitable @columnfractions .2 .8 | |
1376 @item Supported Values: @tab normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | |
1377 @item Unsupported Values: @tab bolder | lighter | |
1378 @item Initial: @tab normal | |
1379 @item Applies to: @tab all elements | |
1380 @item Inherited: @tab yes | |
1381 @item Percentage values: @tab N/A | |
1382 @end multitable | |
1383 | |
1384 The 'font-weight' property selects the weight of the font. The values | |
1385 '100' to '900' form an ordered sequence, where each number indicates a | |
1386 weight that is at least as dark as its predecessor. The keyword 'normal' | |
1387 is synonymous with '400', and 'bold' is synonymous with '700'. Keywords | |
1388 other than 'normal' and 'bold' have been shown to be often confused with | |
1389 font names and a numerical scale was therefore chosen for the 9-value | |
1390 list. | |
1391 | |
1392 @example | |
1393 P @{ font-weight: normal @} /* 400 */ | |
1394 H1 @{ font-weight: 700 @} /* bold */ | |
1395 @end example | |
1396 | |
1397 The 'bolder' and 'lighter' values select font weights that are relative | |
1398 to the weight inherited from the parent: | |
1399 | |
1400 @example | |
1401 STRONG @{ font-weight: bolder @} | |
1402 @end example | |
1403 | |
1404 There is no guarantee that there will be a darker face for each of the | |
1405 'font-weight' values; for example, some fonts may have only a normal and | |
1406 a bold face, others may have eight different face weights. There is no | |
1407 guarantee on how a UA will map font faces within a family to weight | |
1408 values. The only guarantee is that a face of a given value will be no | |
1409 less dark than the faces of lighter values. | |
1410 | |
1411 @node font-size, font, font-weight, Font Properties | |
1412 @subsubsection font-size | |
1413 | |
1414 @multitable @columnfractions .2 .8 | |
1415 @item Supported Values: @tab <absolute-size> | <length> | |
1416 @item Unsupported Values: @tab <percentage> | <relative-size> | |
1417 @item Initial: @tab medium | |
1418 @item Applies to: @tab all elements | |
1419 @item Inherited: @tab yes | |
1420 @item Percentage values: @tab relative to parent element's font size | |
1421 @end multitable | |
1422 | |
1423 @table @b | |
1424 @item <absolute-size> | |
1425 An <absolute-size> keyword is an index to a table of font sizes computed | |
1426 and kept by the UA. Possible values are: | |
1427 @itemize @bullet | |
1428 @item | |
1429 xx-small | |
1430 @item | |
1431 x-small | |
1432 @item | |
1433 small | |
1434 @item | |
1435 medium | |
1436 @item | |
1437 large | |
1438 @item | |
1439 x-large | |
1440 @item | |
1441 xx-large | |
1442 @end itemize | |
1443 | |
1444 On a computer screen a scaling factor of 1.5 is suggested between | |
1445 adjacent indexes; if the 'medium' font is 10pt, the 'large' font could | |
1446 be 15pt. Different media may need different scaling factors. Also, the | |
1447 UA should take the quality and availability of fonts into account when | |
1448 computing the table. The table may be different from one font family to | |
1449 another. | |
1450 @item <relative-size> | |
1451 A <relative-size> keyword is interpreted relative to the table of font | |
1452 sizes and the font size of the parent element. Possible values are | |
1453 @b{larger} or @b{smaller}. For example, if the parent element has a font | |
1454 size of 'medium', a value of 'larger' will make the font size of the | |
1455 current element be 'large'. If the parent element's size is not close to | |
1456 a table entry, the UA is free to interpolate between table entries or | |
1457 round off to the closest one. The UA may have to extrapolate table | |
1458 values if the numerical value goes beyond the keywords. | |
1459 @end table | |
1460 | |
1461 Length and percentage values should not take the font size table into | |
1462 account when calculating the font size of the element. | |
1463 | |
1464 Negative values are not allowed. | |
1465 | |
1466 On all other properties, 'em' and 'ex' length values refer to the font | |
1467 size of the current element. On the 'font-size' property, these length | |
1468 units refer to the font size of the parent element. | |
1469 | |
1470 Note that an application may reinterpret an explicit size, depending on | |
1471 the context. E.g., inside a VR scene a font may get a different size | |
1472 because of perspective distortion. | |
1473 | |
1474 Examples: | |
1475 | |
1476 @example | |
1477 P @{ font-size: 12pt; @} | |
1478 BLOCKQUOTE @{ font-size: larger @} | |
1479 EM @{ font-size: 150% @} | |
1480 EM @{ font-size: 1.5em @} | |
1481 @end example | |
1482 | |
1483 If the suggested scaling factor of 1.5 is used, the last three | |
1484 declarations are identical. | |
1485 | |
1486 @node font, Colors and Backgrounds, font-size, Font Properties | |
1487 @subsubsection font | |
1488 | |
1489 @multitable @columnfractions .2 .8 | |
1490 @item Value: @tab [ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ]? <font-family> | |
1491 @item Initial: @tab not defined for shorthand properties | |
1492 @item Applies to: @tab all elements | |
1493 @item Inherited: @tab yes | |
1494 @item Percentage values: @tab allowed on <font-size> and <line-height> | |
1495 @end multitable | |
1496 The 'font' property is a shorthand property for setting 'font-style' | |
1497 'font-variant' 'font-weight' 'font-size', 'line-height' and | |
1498 'font-family' at the same place in the style sheet. The syntax of this | |
1499 property is based on a traditional typographical shorthand notation to | |
1500 set multiple properties related to fonts. | |
1501 | |
1502 For a definition of allowed and initial values, see the previously | |
1503 defined properties. Properties for which no values are given are set to | |
1504 their initial value. | |
1505 | |
1506 @example | |
1507 P @{ font: 12pt/14pt sans-serif @} | |
1508 P @{ font: 80% sans-serif @} | |
1509 P @{ font: x-large/110% "new century schoolbook", serif @} | |
1510 P @{ font: bold italic large Palatino, serif @} | |
1511 P @{ font: normal small-caps 120%/120% fantasy @} | |
1512 @end example | |
1513 | |
1514 In the second rule, the font size percentage value ('80%') refers to the | |
1515 font size of the parent element. In the third rule, the line height | |
1516 percentage refers to the font size of the element itself. | |
1517 | |
1518 In the first three rules above, the 'font-style', 'font-variant' and | |
1519 'font-weight' are not explicitly mentioned, which means they are all | |
1520 three set to their initial value ('normal'). The fourth rule sets the | |
1521 'font-weight' to 'bold', the 'font-style' to 'italic' and implicitly | |
1522 sets 'font-variant' to 'normal'. | |
1523 | |
1524 The fifth rule sets the 'font-variant' ('small-caps'), the 'font-size' | |
1525 (120% of the parent's font), the 'line-height' (120% times the font | |
1526 size) and the 'font-family' ('fantasy'). It follows that the keyword | |
1527 'normal' applies to the two remaining properties: 'font-style' and | |
1528 'font-weight'. | |
1529 | |
1530 @node Colors and Backgrounds, color, font, Properties | |
1531 @subsection Colors and Backgrounds | |
1532 These properties describe the color (often called foreground color) and | |
1533 background of an element (i.e. the surface onto which the content is | |
1534 rendered). One can set a background color and/or a background image. The | |
1535 position of the image, if/how it is repeated, and whether it is fixed or | |
1536 scrolled relative to the canvas can also be set. | |
1537 | |
1538 The 'color' property inherits normally. The background properties do not | |
1539 inherit, but the parent element's background will shine through by | |
1540 default because of the initial 'transparent' value on | |
1541 'background-color'. | |
1542 | |
1543 NOTE: Currently, Emacs-W3 can only show background images under XEmacs. | |
1544 Emacs 19 doesn't have the support in its display code yet. | |
1545 | |
1115 @ifinfo | 1546 @ifinfo |
1116 @center -------------------- | 1547 @menu |
1117 @center Formatting of gopher directories | 1548 * color:: Foreground colors. |
1118 @center -------------------- | 1549 * background-color:: Background colors. |
1550 * background-image:: Background images. | |
1551 * background-repeat:: Controlling repeating of background images. | |
1552 * background-attachment:: Where background images are drawn. | |
1553 * background-position:: Where background images are drawn. | |
1554 * background:: Shorthand for all background properties. | |
1555 @end menu | |
1119 @end ifinfo | 1556 @end ifinfo |
1120 @vindex w3-use-hypertext-gopher | 1557 |
1121 @cindex Gopher+ | 1558 @node color, background-color, Colors and Backgrounds, Colors and Backgrounds |
1122 @cindex ASK blocks | 1559 @subsubsection color |
1123 There are two different ways of viewing gopher links. The built-in | 1560 @multitable @columnfractions .2 .8 |
1124 support that converts gopher directories into @sc{html}, or the | 1561 @item Value: @tab <color> |
1125 @file{gopher.el} package by Scott Snyder (@i{snyder@@fnald0.fnal.gov}). | 1562 @item Initial: @tab User specific |
1126 The variable that controls this is @code{w3-use-hypertext-gopher}. If | 1563 @item Applies to: @tab all elements |
1127 set to @code{nil}, then @file{gopher.el} is used. Any other value | 1564 @item Inherited: @tab yes |
1128 causes Emacs-W3 to use its internal gopher support. If using | 1565 @item Percentage values: @tab N/A |
1129 @file{gopher.el}, all the hypertext capabilities of Emacs-W3 are lost. | 1566 @end multitable |
1130 All the functionality of @file{gopher.el} is now available in the | 1567 |
1131 hypertext version, and the hypertext version supports Gopher+ and ASK | 1568 This property describes the text color of an element (often referred to |
1132 blocks. | 1569 as the foreground color). There are different ways to specify red: |
1133 | 1570 |
1134 @vindex w3-gopher-labels | 1571 @example |
1135 The main way to control the display of gopher directories is by the | 1572 EM @{ color: red @} /* natural language */ |
1136 variable @code{w3-gopher-labels}. This variable controls the text that | 1573 EM @{ color: rgb(255,0,0) @} /* RGB range 0-255 */ |
1137 is inserted at the front of each item. This is an assoc list of gopher | 1574 @end example |
1138 types (as one character strings), and a string to insert just after the | 1575 |
1139 list item. All the normal gopher types are defined. Entries should be | 1576 See @ref{Color Units} for a description of possible color values. |
1140 similar to: @samp{("0" . "(TXT)")}. I have tried to keep all the tags | 1577 |
1141 to three characters plus two parentheses. | 1578 @node background-color, background-image, color, Colors and Backgrounds |
1142 @iftex | 1579 @subsubsection background-color |
1143 @heading Creating a horizontal rule | 1580 @multitable @columnfractions .2 .8 |
1144 @end iftex | 1581 @item Value: @tab <color> | transparent |
1582 @item Initial: @tab transparent | |
1583 @item Applies to: @tab all elements | |
1584 @item Inherited: @tab no | |
1585 @item Percentage values: @tab N/A | |
1586 @end multitable | |
1587 | |
1588 This property sets the background color of an element. | |
1589 | |
1590 @example | |
1591 H1 @{ background-color: #F00 @} | |
1592 @end example | |
1593 | |
1594 @node background-image, background-repeat, background-color, Colors and Backgrounds | |
1595 @subsubsection background-image | |
1596 @multitable @columnfractions .2 .8 | |
1597 @item Value: @tab <url> | none | |
1598 @item Initial: @tab none | |
1599 @item Applies to: @tab all elements | |
1600 @item Inherited: @tab no | |
1601 @item Percentage values: @tab N/A | |
1602 @end multitable | |
1603 | |
1604 This property sets the background image of an element. When setting a | |
1605 background image, one should also set a background color that will be | |
1606 used when the image is unavailable. When the image is available, it is | |
1607 overlaid on top of the background color. | |
1608 | |
1609 @example | |
1610 BODY @{ background-image: url(marble.gif) @} | |
1611 P @{ background-image: none @} | |
1612 @end example | |
1613 | |
1614 @node background-repeat, background-attachment, background-image, Colors and Backgrounds | |
1615 @subsubsection background-repeat | |
1616 This property is not supported at all under Emacs-W3. | |
1617 | |
1618 @node background-attachment, background-position, background-repeat, Colors and Backgrounds | |
1619 @subsubsection background-attachment | |
1620 This property is not supported at all under Emacs-W3. | |
1621 | |
1622 @node background-position, background, background-attachment, Colors and Backgrounds | |
1623 @subsubsection background-position | |
1624 This property is not supported at all under Emacs-W3. | |
1625 | |
1626 @node background, Text Properties, background-position, Colors and Backgrounds | |
1627 @subsubsection background | |
1628 @multitable @columnfractions .2 .8 | |
1629 @item Value: @tab <background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position> | |
1630 @item Initial: @tab not defined for shorthand properties | |
1631 @item Applies to: @tab all elements | |
1632 @item Inherited: @tab no | |
1633 @item Percentage values: @tab allowed on <background-position> | |
1634 @end multitable | |
1635 | |
1636 The 'background' property is a shorthand property for setting the | |
1637 individual background properties (i.e., 'background-color', | |
1638 'background-image', 'background-repeat', 'background-attachment' and | |
1639 'background-position') at the same place in the style sheet. | |
1640 | |
1641 Possible values on the 'background' properties are the set of all | |
1642 possible values on the individual properties. | |
1643 | |
1644 @example | |
1645 BODY @{ background: red @} | |
1646 P @{ background: url(chess.png) gray 50% repeat fixed @} | |
1647 @end example | |
1648 | |
1649 The 'background' property always sets all the individual background | |
1650 properties. In the first rule of the above example, only a value for | |
1651 'background-color' has been given and the other individual properties | |
1652 are set to their initial value. In the second rule, all individual | |
1653 properties have been specified. | |
1654 | |
1655 @node Text Properties, word-spacing, background, Properties | |
1656 @subsection Text Properties | |
1657 | |
1145 @ifinfo | 1658 @ifinfo |
1146 @center -------------------- | 1659 @menu |
1147 @center Creating a horizontal rule | 1660 * word-spacing:: |
1148 @center -------------------- | 1661 * letter-spacing:: |
1662 * text-decoration:: | |
1663 * vertical-align:: | |
1664 * text-transform:: | |
1665 * text-align:: | |
1666 * text-indent:: | |
1667 * line-height:: | |
1668 @end menu | |
1149 @end ifinfo | 1669 @end ifinfo |
1150 @vindex w3-horizontal-rule-char | 1670 |
1151 Horizontal rules (@b{<HR>} tags in @sc{html}[+]) are used to separate chunks | 1671 @node word-spacing, letter-spacing, Text Properties, Text Properties |
1152 of a document, and is meant to be rendered as a solid line across the | 1672 @subsubsection word-spacing |
1153 page. Some terminals display characters differently, so the variable | 1673 @multitable @columnfractions .2 .8 |
1154 @code{w3-horizontal-rule-char} controls which character is used to draw | 1674 @end multitable |
1155 a horizontal bar. This variable must be the ASCII value of the | 1675 |
1156 character, @b{not a string}. The variable is passed through | 1676 @node letter-spacing, text-decoration, word-spacing, Text Properties |
1157 @code{make-string} whenever a horizontal rule of a certain width is | 1677 @subsubsection letter-spacing |
1158 necessary. | 1678 @multitable @columnfractions .2 .8 |
1159 | 1679 @end multitable |
1160 @node Character based terminals, Graphics workstations, General Formatting, Stylesheets | 1680 |
1161 @section On character based terminals | 1681 @node text-decoration, vertical-align, letter-spacing , Text Properties |
1162 @vindex w3-delimit-emphasis | 1682 @subsubsection text-decoration |
1163 On character based terminals, there is no easy way to show that a | 1683 @multitable @columnfractions .2 .8 |
1164 certain range of text is in bold or italics. If the variable | 1684 @end multitable |
1165 @code{w3-delimit-emphasis} is non-@code{nil}, then Emacs-W3 can insert | 1685 |
1166 characters before and after character formatting commands in @sc{html} | 1686 @node vertical-align, text-transform, text-decoration, Text Properties |
1167 documents. The defaul value of @code{w3-delimit-emphasis} is | 1687 @subsubsection vertical-align |
1168 automatically set based on the type of window system and version of | 1688 @multitable @columnfractions .2 .8 |
1169 Emacs being used. | 1689 @end multitable |
1170 | 1690 |
1171 @vindex w3-header-chars-assoc | 1691 @node text-transform, text-align, vertical-align, Text Properties |
1172 :: WORK :: | 1692 @subsubsection text-transform |
1173 | 1693 @multitable @columnfractions .2 .8 |
1174 @findex w3-upcase-region | 1694 @end multitable |
1175 @code{w3-header-chars-assoc} is an assoc list of header tags and a list | 1695 |
1176 of formatting instructions. The @code{car} of the list is the level of | 1696 @node text-align, text-indent, text-transform, Text Properties |
1177 the header (1--6). The rest of the list should contain three items. | 1697 @subsubsection text-align |
1178 The first item is text to insert before the header. The second item is | 1698 @multitable @columnfractions .2 .8 |
1179 text to insert after the header. Both should have reserved characters | 1699 @end multitable |
1180 converted to their @sc{html}[+] entity definitions. The third item is a | 1700 |
1181 function to call on the area the header is in. This function is called | 1701 @node text-indent, line-height, text-align, Text Properties |
1182 with arguments specifying the start and ending character positions of | 1702 @subsubsection |
1183 the header. The starting point is always first. To convert a region to | 1703 @multitable @columnfractions .2 .8 |
1184 upper case, please use @code{w3-upcase-region} instead of | 1704 @end multitable |
1185 @code{upcase-region}, so that entities are converted properly. | 1705 |
1186 | 1706 @node line-height, Box Properties, text-indent, Text Properties |
1187 @node Graphics workstations, Inlined images, Character based terminals, Stylesheets | 1707 @subsubsection |
1188 @section With graphics workstations | 1708 @multitable @columnfractions .2 .8 |
1189 Starting with the first public release of version 2.3.0, all formatting | 1709 @end multitable |
1190 is controlled by the use of stylesheets. | 1710 |
1191 | 1711 @node Box Properties, Classification, line-height, Properties |
1192 :: WORK :: Graphic workstation stuff - redo for stylesheets | 1712 @subsection Box Properties |
1193 | 1713 @multitable @columnfractions .2 .8 |
1194 @node Inlined images, , Graphics workstations, Stylesheets | 1714 @end multitable |
1195 @cindex Inlined images | 1715 |
1196 @cindex Images | 1716 @node Classification, Media Selection, Box Properties, Properties |
1197 @cindex Movies | 1717 @subsection Classification |
1198 @cindex Inlined MPEGs | 1718 @multitable @columnfractions .2 .8 |
1199 @cindex MPEGs | 1719 @end multitable |
1200 When running in Lucid Emacs 19.10 or XEmacs 19.11 and higher, Emacs-W3 can | 1720 |
1201 display inlined images and MPEG movies. There are several variables that | 1721 @node Media Selection, Speech Properties, Classification, Properties |
1202 control how and when the images are displayed. | 1722 @subsection Media Selection |
1203 | 1723 @multitable @columnfractions .2 .8 |
1204 @cindex Netpbm | 1724 @end multitable |
1205 @cindex Pbmplus | 1725 |
1206 @vindex w3-graphic-converter-alist | 1726 @node Speech Properties, Units, Media Selection, Properties |
1207 Since Lucid/XEmacs only natively understands XPixmaps and XBitmaps, GIFs | 1727 @subsection Speech Properties |
1208 and other image types must first be converted to one of these formats. | 1728 @multitable @columnfractions .2 .8 |
1209 To do this, the @b{netpbm utilities}@footnote{Available via anonymous | 1729 @end multitable |
1210 ftp from ftp.x.org:/R5contrib/netpbm-1mar1994.tar.gz, and most large ftp | 1730 |
1211 sites.} programs are normally used. This is a suite of freeware image | 1731 @node Units, Length Units, Speech Properties, Stylesheets |
1212 conversion tools. The variable @code{w3-graphic-converter-alist} | 1732 @section Units |
1213 controls how each image type is converted. This is an assoc list, keyed | 1733 |
1214 on the @sc{mime} content-type. The @code{car} is the content-type, and | 1734 @ifinfo |
1215 the @code{cdr} is a string suitable to pass to @code{format}. A %s in | 1735 @menu |
1216 this string will be replaced with a converter from the ppm image format | 1736 * Length Units:: |
1217 to an XPixmap (or XBitmap, if being run on a monochrome display). By | 1737 * Percentage Units:: |
1218 default, the Emacs-W3 browser has converters for: | 1738 * Color Units:: |
1219 | 1739 * URLs:: |
1220 @enumerate | 1740 * Angle Units:: |
1221 @item | 1741 * Time Units:: |
1222 image/x-xbitmap | 1742 @end menu |
1223 @item | 1743 @end ifinfo |
1224 image/xbitmap | 1744 |
1225 @item | 1745 @node Length Units, Percentage Units, Units, Units |
1226 image/xbm | 1746 @subsection Length Units |
1227 @item | 1747 |
1228 image/gif | 1748 @node Percentage Units, Color Units, Length Units, Units |
1229 @item | 1749 @subsection Percentage Units |
1230 image/jpeg | 1750 |
1231 @item | 1751 @node Color Units, URLs, Percentage Units, Units |
1232 image/x-fax | 1752 @subsection color Units |
1233 @item | 1753 |
1234 image/x-raster | 1754 @node URLs, Angle Units, Color Units, Units |
1235 @item | 1755 @subsection URLs |
1236 image/windowdump | 1756 |
1237 @item | 1757 @node Angle Units, Time Units, URLs, Units |
1238 image/x-icon | 1758 @subsection Angle Units |
1239 @item | 1759 |
1240 image/portable-graymap | 1760 @node Time Units, Supported URLs, Angle Units, Units |
1241 @item | 1761 @subsection Time Units |
1242 image/portable-pixmap | 1762 |
1243 @item | 1763 @node Supported URLs, MIME Support, Time Units, Top |
1244 image/x-pixmap | 1764 @chapter Supported URLs |
1245 @item | 1765 |
1246 image/x-xpixmap | 1766 ::WORK:: List supported URL types, specific RFCs, etc. |
1247 @item | 1767 |
1248 image/pict | 1768 @node MIME Support, Adding MIME types based on file extensions, Supported URLs, Top |
1249 @item | |
1250 image/x-macpaint | |
1251 @item | |
1252 image/x-targa | |
1253 @item | |
1254 image/tiff | |
1255 @end enumerate | |
1256 | |
1257 @vindex w3-color-max-blue | |
1258 @vindex w3-color-max-green | |
1259 @vindex w3-color-max-red | |
1260 @vindex w3-color-use-reducing | |
1261 @vindex w3-color-filter | |
1262 Since most displays are (sadly) not 24-bit, Emacs-W3 can automatically | |
1263 dither an image, so that it does not fill up the application' colormap too | |
1264 quickly. If @code{w3-color-use-reducing} is non-@code{nil}, then the | |
1265 images will use reduced colors. If @code{w3-color-filter} is @code{eq} to | |
1266 @code{'ppmquant}, then the ppmquant program will be used. If @code{eq} to | |
1267 @code{'ppmdither}, then the ppmdither program will be used. The ppmdither | |
1268 program tends to give better results. The values of | |
1269 @code{w3-color-max-red}, @code{w3-color-max-blue}, and | |
1270 @code{w3-color-max-green} control how many colors the inlined images can | |
1271 use. If using ppmquant, then the product of these three variables is used | |
1272 as the maximum number of colors per image. If using ppmdither, then only | |
1273 the set number of color cells can be allocated per image. See the man | |
1274 pages for ppmdither and ppmquant for more information on how the dithering | |
1275 is actually done. @code{w3-color-filter} may also be a string, specifying | |
1276 exactly what external filter to use. An example is: @samp{ppmquant -fs | |
1277 -map ~/pixmaps/colormap.ppm}. | |
1278 | |
1279 @cindex MPEGs | |
1280 @cindex Inlined animations | |
1281 When running in XEmacs 19.11 or XEmacs 19.12, Emacs-W3 can insert an | |
1282 MPEG movie in the middle of a buffer. | |
1283 | |
1284 :: WORK :: Need a pointer to the new EMBED Internet Draft :: | |
1285 | |
1286 The basic syntax is: | |
1287 @example | |
1288 <embed href="somevideo.mpg" type="video/mpeg"> | |
1289 @end example | |
1290 | |
1291 @vindex w3-mpeg-args | |
1292 @vindex w3-mpeg-program | |
1293 This requires a special version of the standard @file{mpeg_play} mpeg | |
1294 player. Patches against the 2.0 version are available at | |
1295 ftp://ftp.cs.indiana.edu/pub/elisp/w3/mpeg_patch. The variable | |
1296 @code{w3-mpeg-program} should point to this executable, and | |
1297 @code{w3-mpeg-args} should be a list of any additional arguments to be | |
1298 passed to the player. By default, this includes @var{-loop}, so the | |
1299 mpeg plays continuously. | |
1300 | |
1301 @cindex Delaying inlined images | |
1302 @cindex Delaying inlined animations | |
1303 @vindex w3-delay-image-loads | |
1304 @vindex w3-delay-mpeg-loads | |
1305 Because images and movies can take up an incredible amount of bandwidth, | |
1306 it is useful to be able to control whether they are loaded or not. By | |
1307 default, images and movies are loaded automatically, but the variables | |
1308 @code{w3-delay-image-loads} and @code{w3-delay-mpeg-loads} control this. | |
1309 If set to non-@code{nil}, then the images or movies are not | |
1310 loaded until explicitly requested by the user. | |
1311 | |
1312 @cindex Loading delayed images | |
1313 @cindex Loading delayed movies | |
1314 @findex w3-load-delayed-images | |
1315 @findex w3-load-delayed-mpegs | |
1316 To load any delayed images, use the function | |
1317 @code{w3-load-delayed-images}. Its counterpart for delayed movies is | |
1318 @code{w3-load-delayed-mpegs} | |
1319 | |
1320 @node MIME Support, Adding MIME types based on file extensions, , Top | |
1321 @chapter MIME Support | 1769 @chapter MIME Support |
1322 @sc{mime} is an emerging standard for multimedia mail. It offers a very | 1770 @sc{mime} is an emerging standard for multimedia mail. It offers a very |
1323 flexible typing mechanism. The type of a file or message is specified | 1771 flexible typing mechanism. The type of a file or message is specified |
1324 in two parts, separated by a '/'. The first part is the general | 1772 in two parts, separated by a '/'. The first part is the general |
1325 category of the data (text, application, image, etc.). The second part | 1773 category of the data (text, application, image, etc.). The second part |
1960 for the better). This is a list of the things that are being worked on | 2408 for the better). This is a list of the things that are being worked on |
1961 right now. | 2409 right now. |
1962 | 2410 |
1963 :: WORK :: Revamp the todo list | 2411 :: WORK :: Revamp the todo list |
1964 | 2412 |
1965 @node Reporting Bugs, Installing SSL, Future Directions, Top | 2413 @node Reporting Bugs, Dealing with Firewalls, Future Directions, Top |
1966 @appendix Reporting Bugs | 2414 @appendix Reporting Bugs |
1967 @cindex Reporting Bugs | 2415 @cindex Reporting Bugs |
1968 @cindex Bugs | 2416 @cindex Bugs |
1969 @cindex Contacting the author | 2417 @cindex Contacting the author |
1970 | 2418 |
2005 odds are I will have no clue what didn't work, much less what that was | 2453 odds are I will have no clue what didn't work, much less what that was |
2006 trying to fix in the first place. It will be much quicker and less | 2454 trying to fix in the first place. It will be much quicker and less |
2007 painful if I don't have to waste a round-trip email exchange saying | 2455 painful if I don't have to waste a round-trip email exchange saying |
2008 'what are you talking about'. | 2456 'what are you talking about'. |
2009 | 2457 |
2010 @node Installing SSL, Mailcap Files, Reporting Bugs, Top | 2458 @node Dealing with Firewalls, Proxy Gateways, Reporting Bugs, Top |
2459 @appendix Dealing with Firewalls | |
2460 By default, Emacs can support standard @sc{tcp}/@sc{ip} network | |
2461 connections on almost all the platforms it runs on (Unix, @sc{vms}, | |
2462 Windows, etc). However, there are several situations where it is not | |
2463 sufficient. | |
2464 | |
2465 @table @b | |
2466 @cindex Firewalls | |
2467 @item Firewalls | |
2468 It is becoming more and more common to be behind a firewall or some | |
2469 other system that restricts your outbound network activity, especially | |
2470 if you are like me and away from the wonderful world of academia. | |
2471 Emacs-W3 has several different methods to get around firewalls (not to | |
2472 worry though - none of them should get you in trouble with the local | |
2473 @sc{mis} department.) | |
2474 | |
2475 @item Emacs cannot resolve hostnames. | |
2476 @cindex Faulty hostname resolvers | |
2477 @cindex Broken SunOS libc | |
2478 @cindex Hostname resolution | |
2479 This happens quite often on SunOS workstations and some ULTRIX machines. | |
2480 Some C libraries do not include the hostname resolver routines in their | |
2481 static libraries. If Emacs was linked statically, and was not linked | |
2482 with the resolver libraries, it wil not be able to get to any machines | |
2483 off the local network. This is characterized by being able to reach | |
2484 someplace with a raw ip number, but not its hostname | |
2485 (@url{http://129.79.254.191/} works, but | |
2486 @url{http://www.cs.indiana.edu/} doesn't). | |
2487 | |
2488 The best solution for this problem is to recompile Emacs, making sure to | |
2489 either link dynamically (if available on your operating system), or | |
2490 include the @file{-lresolv}. | |
2491 | |
2492 @cindex url-gateway-broken-resolution | |
2493 If you do not have the disk space or the appropriate permissions to | |
2494 recompile Emacs, another alternative is using the @file{nslookup} | |
2495 program to do hostname resolution. To turn this on, set the variable | |
2496 @code{url-gateway-broken-resolution} in your @file{~/.emacs} file. This | |
2497 runs the program specified by @code{url-gateway-nslookup-program} (by | |
2498 default "@code{nslookup}" to do hostname resolution. This program should | |
2499 expect a single argument on the command line - the hostname to resolve, | |
2500 and should produce output similar to the standard Unix @file{nslookup} | |
2501 program: | |
2502 | |
2503 @example | |
2504 Name: www.cs.indiana.ed | |
2505 Address: 129.79.254.191 | |
2506 @end example | |
2507 | |
2508 @cindex @sc{term} | |
2509 @item Using @sc{term} (or @sc{term}-like) Networking Software | |
2510 @sc{term} @footnote{@sc{term} is a user-level protocol for emulating | |
2511 @sc{ip} over a serial line. More information is available at | |
2512 @url{ftp://sunsite.unc.edu/pub/Linux/apps/comm/term}} for slip-like | |
2513 access to the internet. | |
2514 | |
2515 @sc{note}: XEmacs and Emacs 19.22 or later have patches to enable native | |
2516 @sc{term} networking. To enable it, @code{#define TERM} in the | |
2517 appropriate s/*.h file for the operating system, then change the | |
2518 @code{SYSTEM_LIBS} definition to include the @file{termnet} library that | |
2519 comes with the latest versions of @sc{term}. | |
2520 | |
2521 If you run into any problems with the native @sc{term} networking | |
2522 support in Emacs or XEmacs, please let @t{wmperry@@cs.indiana.edu} know, | |
2523 as he is responsible for the original support. | |
2524 @end table | |
2525 | |
2526 @vindex url-gateway-local-host-regexp | |
2527 Emacs-W3 has support for using the gateway mechanism for certain | |
2528 domains, and directly connecting to others. The variable | |
2529 @code{url-gateway-local-host-regexp} controls this behaviour. This is a | |
2530 regular expression @footnote{Please see the full Emacs distribution for | |
2531 a description of regular expressions} that matches local hosts that do | |
2532 not require the use of a gateway. If @code{nil}, then all connections | |
2533 are made through the gateway. | |
2534 | |
2535 @vindex url-gateway-method | |
2536 Emacs-W3 supports several methods of getting around gateways. The | |
2537 variable @code{url-gateway-method} controls which of these methods is | |
2538 used. This variable can have several values (use these as symbol names, | |
2539 not strings), ie: @samp{(setq url-gateway-method 'telnet)}. Possible | |
2540 values are: | |
2541 | |
2542 @table @dfn | |
2543 @item telnet | |
2544 Use this method if you must first telnet and log into a gateway host, | |
2545 and then run telnet from that host to connect to outside machines. | |
2546 | |
2547 :: WORK :: document telnet gw variables | |
2548 This section needs more information, specifically documenting the | |
2549 following variables. For now, please do @key{C-h v} on the variable for | |
2550 more information. | |
2551 | |
2552 @table @code | |
2553 @item url-gateway-telnet-host | |
2554 @item url-gateway-telnet-parameters | |
2555 @item url-gateway-telnet-password-prompt | |
2556 @item url-gateway-telnet-puser-name | |
2557 @item url-gateway-prompt-pattern | |
2558 @end table | |
2559 | |
2560 @item rlogin | |
2561 This method is identical to the @code{telnet} method, but uses | |
2562 @file{rlogin} to log into the remote machine without having to send the | |
2563 username and password over the wire every time. | |
2564 | |
2565 :: WORK :: document rlogin gw variables | |
2566 This section needs more information, specifically documenting the | |
2567 following variables. For now, please do @key{C-h v} on the variable for | |
2568 more information. | |
2569 | |
2570 @table @code | |
2571 @item url-gateway-rlogin-host | |
2572 @item url-gateway-rlogin-parameters | |
2573 @item url-gateway-rlogin-user-name | |
2574 @item url-gateway-prompt-pattern | |
2575 @end table | |
2576 | |
2577 @item tcp | |
2578 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very small | |
2579 application that you can run in a subprocess to do the network | |
2580 connections. | |
2581 | |
2582 @item @sc{socks} | |
2583 Use if the firewall has a @sc{socks} gateway running on it. | |
2584 | |
2585 :: WORK :: document socks variables | |
2586 This section needs more information, specifically documenting the | |
2587 following variables. For now, please do @key{C-h v} on the variable for | |
2588 more information. | |
2589 | |
2590 @table @code | |
2591 @item socks-host | |
2592 @item socks-password | |
2593 @item socks-username | |
2594 @item socks-port | |
2595 @item socks-timeout | |
2596 @end table | |
2597 | |
2598 @c @item ssl | |
2599 @c This probably shouldn't be documented | |
2600 | |
2601 @item native | |
2602 This means that Emacs-W3 should use the builtin networking code of | |
2603 Emacs. This should be used only if there is no firewall, or the Emacs | |
2604 source has already been hacked to get around the firewall. | |
2605 @end table | |
2606 | |
2607 Emacs-W3 should now be able to get outside the local network. If none | |
2608 of this makes sense, its probably my fault. Please check with the | |
2609 network administrators to see if they have a program that does most of | |
2610 this already, since somebody somewhere at the company has probably been | |
2611 through something similar to this before, and would be much more | |
2612 helpful/knowledgeable about the local setup than I would be. But feel | |
2613 free to mail me as a last resort. | |
2614 | |
2615 @node Proxy Gateways, Installing SSL, Dealing with Firewalls, Top | |
2616 @appendix Proxy Gateways | |
2617 @vindex url-proxy-services | |
2618 @cindex Proxy Servers | |
2619 @cindex Proxies | |
2620 @cindex Proxies, environment variables | |
2621 @cindex HTTP Proxy | |
2622 | |
2623 In late January 1993, Kevin Altis and Lou Montulli proposed and | |
2624 implemented a new proxy service. This service requires the use of | |
2625 environment variables to specify a gateway server/port # to send | |
2626 protocol requests to. Each protocol (@sc{http}, @sc{wais}, gopher, | |
2627 @sc{ftp}, etc.) can have a different gateway server. The environment | |
2628 variables are @code{PROTOCOL}_proxy, where @code{PROTOCOL} is one of the | |
2629 supported network protocols (gopher, file, @sc{http}, @sc{ftp}, etc.) | |
2630 | |
2631 @cindex No Proxy | |
2632 @cindex Proxies, exclusion lists | |
2633 @vindex NO_PROXY | |
2634 For companies with internal intranets, it will usually be helpful to | |
2635 define a list of hosts that should be contacted directly, @b{not} sent | |
2636 through the proxy. The @code{NO_PROXY} environment variable controls | |
2637 what hosts are able to be contacted directly. This should be a comma | |
2638 separated list of hostnames, domain names, or a mixture of both. | |
2639 Asterisks can be used as a wildcard. For example: | |
2640 | |
2641 @example | |
2642 NO_PROXY=*.aventail.com,home.com,*.seanet.com | |
2643 @end example | |
2644 | |
2645 tells Emacs-W3 to contact all machines in the @b{aventail.com} and | |
2646 @b{seanet.com} domains directly, as well as the machine named | |
2647 @b{home.com}. | |
2648 | |
2649 @vindex url-proxy-services | |
2650 @cindex Proxies, setting from lisp | |
2651 For those adventurous souls who enjoy writing regular expressions, all | |
2652 the proxy settings can be manipulated from Emacs-Lisp. The variable | |
2653 @code{url-proxy-services} controls this. This is an assoc list, keyed | |
2654 on the protocol type (@sc{http}, gopher, etc) in all lowercase. The | |
2655 @code{cdr} of each entry should be the fully-specified @sc{url} of the proxy | |
2656 server to contact, or, in the case of the special "no_proxy" entry, a | |
2657 regular expression that matches any hostnames that should be contacted | |
2658 directly. | |
2659 | |
2660 @example | |
2661 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/") | |
2662 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com"))) | |
2663 @end example | |
2664 | |
2665 @node Installing SSL, Mailcap Files, Proxy Gateways, Top | |
2011 @appendix Installing SSL | 2666 @appendix Installing SSL |
2012 @cindex HTTP/1.0 Authentication | 2667 @cindex HTTP/1.0 Authentication |
2013 @cindex Secure Sockets Layer | 2668 @cindex Secure Sockets Layer |
2014 @cindex SSL | 2669 @cindex SSL |
2015 @cindex Gag Puke Retch | 2670 @cindex Gag Puke Retch |
2041 | 2696 |
2042 This should be all the configuration necessary. In the future, I will | 2697 This should be all the configuration necessary. In the future, I will |
2043 be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to | 2698 be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to |
2044 SSL-enable them, for the sake of speed. | 2699 SSL-enable them, for the sake of speed. |
2045 | 2700 |
2046 @node Mailcap Files, General Index, Installing SSL, Top | 2701 @node Mailcap Files, Down with DoubleClick, Installing SSL, Top |
2047 @appendix Mailcap Files | 2702 @appendix Mailcap Files |
2048 NCSA Mosaic and almost all other WWW browsers rely on a separate file | 2703 NCSA Mosaic and almost all other WWW browsers rely on a separate file |
2049 for mapping MIME types to external viewing programs. This takes some of | 2704 for mapping MIME types to external viewing programs. This takes some of |
2050 the burden off of browser developers, so each browser does not have to | 2705 the burden off of browser developers, so each browser does not have to |
2051 support all image formats, or postscript, etc. Instead of having the | 2706 support all image formats, or postscript, etc. Instead of having the |
2175 simply ignore all such unrecognized fields to permit such extensions, | 2830 simply ignore all such unrecognized fields to permit such extensions, |
2176 some of which might be standardized in a future version of this | 2831 some of which might be standardized in a future version of this |
2177 document. | 2832 document. |
2178 @end itemize | 2833 @end itemize |
2179 | 2834 |
2180 @node General Index, Key Index, Mailcap Files, Top | 2835 @node Down with DoubleClick, General Index, Mailcap Files, Top |
2836 @appendix Down with DoubleClick | |
2837 :: WORK :: Document why doubleclick is evil | |
2838 :: WORK :: Document how you can never see another ad from them again | |
2839 | |
2840 @node General Index, Key Index, Down with DoubleClick, Top | |
2181 @appendix General Index | 2841 @appendix General Index |
2182 @printindex fn | 2842 @printindex fn |
2183 @node Key Index, , General Index, Top | 2843 @node Key Index, , General Index, Top |
2184 @appendix Key Index | 2844 @appendix Key Index |
2185 @printindex ky | 2845 @printindex ky |
2186 @contents | 2846 @contents |
2187 @bye | 2847 @bye |
2188 | |
2189 @c @ifinfo | |
2190 @c Here is some more specific information about what languages and | |
2191 @c protocols Emacs-W3 supports. | |
2192 @c @menu | |
2193 @c * Markup Languages Supported:: Markup languages supported by Emacs-W3 | |
2194 @c * Stylesheets:: Stylesheet languages supported by Emacs-W3 | |
2195 @c * Supported Protocols:: Network protocols supported by Emacs-W3 | |
2196 @c @end menu | |
2197 @c @end ifinfo | |
2198 @c @node Markup Languages Supported, Stylesheets, Introduction, Introduction | |
2199 @c @chapter Supported Markup Languages | |
2200 @c Several different markup languages, and various extensions to those | |
2201 @c languages, are supported by Emacs-W3. | |
2202 @c @ifinfo | |
2203 @c @center ---------- | |
2204 @c @center HTML 2.0 | |
2205 @c @center ---------- | |
2206 @c @end ifinfo | |
2207 @c @iftex | |
2208 @c @section HTML 2.0 | |
2209 @c @end iftex | |
2210 @c @cindex HTML 2.0 | |
2211 | |
2212 @c :: WORK :: Reference to the HTML 2.0 RFC | |
2213 @c :: WORK :: Basic explanation of HTML, tag structure, etc. | |
2214 | |
2215 @c @ifinfo | |
2216 @c @center ---------- | |
2217 @c @center HTML 3.2 | |
2218 @c @center ---------- | |
2219 @c @end ifinfo | |
2220 @c @iftex | |
2221 @c @section HTML 3.2 | |
2222 @c @end iftex | |
2223 @c @cindex HTML 3.2 | |
2224 @c The HTML 3.2 language is an extension of HTML, with a large degree of | |
2225 @c backward compatibility with HTML 2.0. This basically documents current | |
2226 @c practice as of January, 1996. | |
2227 | |
2228 @c @ifinfo | |
2229 @c @center ---------- | |
2230 @c @center SGML Features | |
2231 @c @center ---------- | |
2232 @c @end ifinfo | |
2233 @c @iftex | |
2234 @c @section SGML Features | |
2235 @c @end iftex | |
2236 @c @cindex SGML Features | |
2237 @c @cindex Entity Definitions | |
2238 @c @cindex Marked Sections | |
2239 | |
2240 @c :: WORK :: Document marked sections, SGML features | |
2241 | |
2242 @c @ifinfo | |
2243 @c @center ---------- | |
2244 @c @center Extras | |
2245 @c @center ---------- | |
2246 @c @end ifinfo | |
2247 @c @iftex | |
2248 @c @section Extra Markup | |
2249 @c @end iftex | |
2250 @c @cindex Easter Eggs | |
2251 @c @cindex Fluff | |
2252 @c @cindex Pomp & Circumstance | |
2253 @c There are several different markup elements that are not officially part | |
2254 @c of HTML or HTML 3.2 that Emacs-W3 supports. These are either items that | |
2255 @c were dropped from HTML 3.@var{x} after I had implemented them, things I | |
2256 @c find just completely hilarious, or experimental parts of HTML that | |
2257 @c should not be counted as "official" or long lived. | |
2258 @c @itemize @bullet | |
2259 @c @item | |
2260 @c FLAME support. For truly interesting dynamic documents. This is | |
2261 @c replaced with a random quote from Mr. Angry (see @kbd{M-x flame} for a | |
2262 @c sample). | |
2263 @c @item | |
2264 @c The top ten tags that did not make it into netscape. These tags were | |
2265 @c posted to the newsgroup comp.infosystems.www.misc by Laura Lemay | |
2266 @c (@i{lemay@@netcom.com}). Much thanks to her for the humor. | |
2267 @c @table @b | |
2268 @c @item <wired>...</wired> | |
2269 @c Renders the enclosed text in a suitably ugly font/color combination. If | |
2270 @c no default has been set up by the user, this is the default font, with | |
2271 @c red text on a yellow background. | |
2272 @c @item <roach>...</roach> | |
2273 @c When selected, the enclosed text runs and hides under the nearest | |
2274 @c window. OR, giggles a lot and demands nachos, depending on the | |
2275 @c definition of "roach." (the formal definition, of course, to be | |
2276 @c determined by the Official Honorary Internet Standards Committee For | |
2277 @c Moving Really Slowly.) | |
2278 @c @item <pinhead> | |
2279 @c Inserts "zippyisms" into the enclosed text. Perfect for those professional | |
2280 @c documents. This is sure to be a favorite of mine! | |
2281 @c @item <secret>...</secret> | |
2282 @c Must use secret spy decoder glasses (available direct from Netscape for | |
2283 @c a reasonable fee) in order to read the enclosed text. Can also be read | |
2284 @c by holding the computer in front of a full moon during the autumn | |
2285 @c solstice. | |
2286 | |
2287 @c In Emacs-W3, this displays the text using rot13 encoding. | |
2288 @c @item <hype> | |
2289 @c Causes Marc Andreesen to magically appear and grant an interview (wanted | |
2290 @c or not). Please use this tag sparingly. | |
2291 @c @item <peek>....</peek> | |
2292 @c @item <poke>...</poke> | |
2293 @c Need more control over screen layout in HTML? Well, here ya go. | |
2294 @c n | |
2295 @c Actually, <peek> could almost be considered useful. The VARIABLE | |
2296 @c attribute can be used to insert the value of an emacs variable into the | |
2297 @c current document. Things like 'Welcome to my page, <peek | |
2298 @c variable=user-mail-address>' can be useful in spreading fear, | |
2299 @c uncertainty, and doubt among users. | |
2300 @c @item <yogsothoth> | |
2301 @c @cindex Gates Bill | |
2302 @c @cindex Yogsothoth | |
2303 @c Summons the elder gods to suck away your immortal soul. Or Bill Gates, | |
2304 @c if the elder gods are busy. Unpredictable (but amusing) results occur | |
2305 @c when the <YOGSOTHOTH> and <HYPE> tags are used in close proximity. | |
2306 | |
2307 @c @item <blink>...</blink> | |
2308 @c Causes the enclosed text to .... ooops that one made it in. | |
2309 @c @end table | |
2310 @c @end itemize | |
2311 | |
2312 @c @node Stylesheets, Supported Protocols, Markup Languages Supported,Introduction | |
2313 @c @chapter Stylesheets | |
2314 @c @cindex Stylesheets | |
2315 @c @cindex Cascading Style Sheets | |
2316 @c @cindex Aural Cascading Style Sheets | |
2317 @c @cindex CSS | |
2318 @c @cindex DSSSL | |
2319 @c :: WORK :: Document CSS support | |
2320 @c CSS Information at http://www.w3.org/pub/WWW/TR/REC-CSS1 | |
2321 @c Style guide at http://www.htmlhelp.com/reference/css/ | |
2322 @c :: WORK :: Document ACSS support | |
2323 @c ACSS Information at http://www.w3.org/pub/WWW/Style/CSS/Speech/NOTE-ACSS | |
2324 @c :: WORK :: Document DSSSL support | |
2325 | 2848 |
2326 @c @node Supported Protocols, , Stylesheets, Introduction | 2849 @c @node Supported Protocols, , Stylesheets, Introduction |
2327 @c @chapter Supported Protocols | 2850 @c @chapter Supported Protocols |
2328 @c @cindex Network Protocols | 2851 @c @cindex Network Protocols |
2329 @c @cindex Protocols Supported | 2852 @c @cindex Protocols Supported |