Re: RFC gothic font
From Amykate <amy...@nospammail.com>
· alt.ascii-art
· 19 Oct 2000 00:00 · View full thread
· report
In article <1bt...@4ax.com>, ppu...@damnthatspam.chello.nl (Peter Punk) wrote: >Now, what those figures at the start os an FLF mean, beats me! Perhaps someone >else could clarify that. Excerpt from "The FIGfont Version 2 FIGfont and FIGdriver Standard" CREATING FIGFONTS ======== ======== NOTE: FIGWin 1.0 is packaged with a program called FIGfont Editor for Windows 1.0, which is just that. There is no need to read further if you intend to use it. However, the section "CONTROL FILES" below is still relevant. Since a FIGfont file is a text file, it can be created with any text editing program on any platform, and will still be compatible with FIGdrivers on all operating systems, except that the bytes used to indicate the end of each text line may vary. (PC's use carriage return and linefeed at the end of each line, Macintosh uses carriage return only, and UNIX uses linefeed only.) This minor difference among operating systems is handled easily by setting your FTP program to ASCII mode during upload or download. So there is no need to be concerned about this as long as you remember to do this during file transfer. The filename of a FIGfont file must end with ".flf", which stands for "<F>IG<L>ettering <F>ont". The first part of the filename should contain only letters, and should be lowercase on operating systems which permit case sensitive filenames. The filename should be unique in the first 8 characters, since some older file systems truncate longer filenames. It is easier to modify an existing FIGfont than it is to create a new one from scratch. The first step is to read and understand this document. You may want to load "standard.flf" or another FIGfont into a text editor as an example while you read. A FIGfont file contains three portions: a header line, comments, and FIGcharacter data. THE HEADER LINE The header line gives information about the FIGfont. Here is an example showing the names of all parameters: flf2a$ 6 5 20 15 3 0 143 229 NOTE: The first five characters in | | | | | | | | | | the entire file must be "flf2a". / / | | | | | | | \ Signature / / | | | | | \ Codetag_Count Hardblank / / | | | \ Full_Layout* Height / | | \ Print_Direction Baseline / \ Comment_Lines Max_Length Old_Layout* * The two layout parameters are closely related and fairly complex. (See "INTERPRETATION OF LAYOUT PARAMETERS".) For those desiring a quick explanation, the above line indicates that this FIGfont uses "$" to represent the hardblank in FIGcharacter data, it has FIGcharacters which are 6 lines tall, 5 of which are above the baseline, no line in the FIGfont data is more than 20 columns wide, the default horizontal layout is represented by the number 15, there are 3 comment lines, the default print direction for this FIGfont is left-to-right, a complete description of default and possible horizontal and vertical layouts is represented by the number 143, and there are 229 code-tagged characters. The first seven parameters are required. The last three (Direction, Full_Layout, and Codetag_Count, are not. This allows for backward compatibility with older FIGfonts, but a FIGfont without these parameters would force a FIGdriver to "guess" (by means not described in this document) the information it would expect to find in Full_Layout. For this reason, inclusion of all parameters is strongly recommended. Future versions of this standard may add more parameters after Codetag_Count. A description of each parameter follows: Signature The signature is the first five characters: "flf2a". The first four characters "flf2" identify the file as compatible with FIGlet version 2.0 or later (and FIGWin 1.0). The "a" is currently ignored, but cannot be omitted. Different characters in the "a" location may mean something in future versions of this standard. If so, you can be sure your FIGfonts will still work if this character is "a". Hardblank Immediately following the signature is the hardblank character. The hardblank character in the header line defines which sub-character will be used to represent hardblanks in the FIGcharacter data. By convention, the usual hardblank is a "$", but it can be any character except a blank (space), a carriage-return, a newline (linefeed) or a null character. If you want the entire printable ASCII set available to use, make the hardblank a "delete" character (character code 127). With the exception of delete, it is inadvisable to use non-printable characters as a hardblank. Height The Height parameter specifies the consistent height of every FIGcharacter, measured in sub-characters. Note that ALL FIGcharacters in a given FIGfont have the same height, since this includes any empty space above or below. This is a measurement from the top of the tallest FIGcharacter to the bottom of the lowest hanging FIGcharacter, such as a lowercase g. Baseline The Baseline parameter is the number of lines of sub-characters from the baseline of a FIGcharacter to the top of the tallest FIGcharacter. The baseline of a FIGfont is an imaginary line on top of which capital letters would rest, while the tails of lowercase g, j, p, q, and y may hang below. In other words, Baseline is the height of a FIGcharacter, ignoring any descenders. This parameter does not affect the output of FIGlet 2.2 or FIGWin 1.0, but future versions or other future FIGdrivers may use it. The Baseline parameter should be correctly set to reflect the true baseline as described above. It is an error for Baseline to be less than 1 or greater than the Height parameter. Max_Length The Max_Length parameter is the maximum length of any line describing a FIGcharacter. This is usually the width of the widest FIGcharacter, plus 2 (to accommodate endmarks as described later.) However, you can (and probably should) set Max_Length slightly larger than this as a safety measure in case your FIGfont is edited to include wider FIGcharacters. FIGlet (but not FIGWin 1.0) uses this number to minimize the memory taken up by a FIGfont, which is important in the case of FIGfonts with many FIGcharacters. Old_Layout (See "INTERPRETATION OF LAYOUT PARAMETERS" below.) Comment_Lines Between the first line and the actual FIGcharacters of the FIGfont are the comment lines. The Comment_Lines parameter specifies how many lines there are. Comments are optional, but recommended to properly document the origin of a FIGfont. Print_Direction The Print_Direction parameter tells which direction the font is to be printed by default. A value of 0 means left-to-right, and 1 means right-to-left. If this parameter is absent, 0 (left-to-right) is assumed. Print_Direction may not specify vertical print, although FIGdrivers are capable of vertical print. Versions of FIGlet prior to 2.1 ignore this parameter. Full_Layout (See "INTERPRETATION OF LAYOUT PARAMETERS" just below.) Codetag_Count Indicates the number of code-tagged (non-required) FIGcharacters in this FIGfont. This is always equal to the total number of FIGcharacters in the font minus 102. This parameter is typically ignored by FIGdrivers, but can be used to verify that no characters are missing from the end of the FIGfont. The chkfont program will display the number of codetagged characters in the FIGfont on which it is run, making it easy to insert this parameter after a FIGfont is written. INTERPRETATION OF LAYOUT PARAMETERS Full_Layout describes ALL information about horizontal and vertical layout: the default layout modes and potential smushing rules, even when smushing is not a default layout mode. Old_Layout does not include all of the information desired by the most recent FIGdrivers, which is the inspiration for the creation of the new Full_Layout parameter. Old_Layout is still required for backward compatibility, and FIGdrivers must be able to interpret FIGfonts which do not have the Full_Layout parameter. (See "STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS".) Versions of FIGlet prior to 2.2 do not recognize the Full_Layout parameter. Documentation accompanying FIGlet versions prior to 2.2 refer to Old_Layout as "smushmode", which is somewhat misleading since it can indicate layout modes other than smushing. Old_Layout and Full_Layout must contain some redundant information. Setting the layout parameters is a matter of adding numbers together ("code values"). What follows is a chart of the meanings of all code values. (You may skip down to "SETTING LAYOUT PARAMETERS STEP BY STEP" if you prefer, or if you find this portion confusing.) Full_Layout: (Legal values 0 to 32767) 1 Apply horizontal smushing rule 1 when smushing 2 Apply horizontal smushing rule 2 when smushing 4 Apply horizontal smushing rule 3 when smushing 8 Apply horizontal smushing rule 4 when smushing 16 Apply horizontal smushing rule 5 when smushing 32 Apply horizontal smushing rule 6 when smushing 64 Horizontal fitting (kerning) by default 128 Horizontal smushing by default (Overrides 64) 256 Apply vertical smushing rule 1 when smushing 512 Apply vertical smushing rule 2 when smushing 1024 Apply vertical smushing rule 3 when smushing 2048 Apply vertical smushing rule 4 when smushing 4096 Apply vertical smushing rule 5 when smushing 8192 Vertical fitting by default 16384 Vertical smushing by default (Overrides 8192) When no smushing rules are included in Full_Layout for a given axis, the meaning is that universal smushing shall occur, either by default or when requested. Old_Layout: (Legal values -1 to 63) -1 Full-width layout by default 0 Horizontal fitting (kerning) layout by default* 1 Apply horizontal smushing rule 1 by default 2 Apply horizontal smushing rule 2 by default 4 Apply horizontal smushing rule 3 by default 8 Apply horizontal smushing rule 4 by default 16 Apply horizontal smushing rule 5 by default 32 Apply horizontal smushing rule 6 by default * When Full_Layout indicates UNIVERSAL smushing as a horizontal default (i.e., when none of the code values of horizontal smushing rules are included and code value 128 is included in Full_Layout) Old_Layout must be set to 0 (zero). Older FIGdrivers which cannot read the Full_Layout parameter are also incapable of universal smushing. Therefore they would be directed to the "next best thing", which is horizontal fitting (kerning). NOTE: You should NOT add the -1 value to any positive code value for Old_Layout. This would be a logical contradiction. See "STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS" for the behavior of a FIGdriver when the Full_Layout parameter is absent (presumably in an older FIGfont). The following rules establish consistency between Old_Layout and Full_Layout. If full width is to be the horizontal default: Old_Layout must be -1. Full_Layout must NOT include code values 64 nor 128. If horizontal fitting (kerning) is to be default: Old_Layout must be 0. Full_Layout must include code value 64. Full_Layout must NOT include code value 128. If CONTROLLED smushing is to be the horizontal default: Old_Layout must be a positive number, represented by the added code values of all desired horizontal smushing rules. Full_Layout must include the code values for the SAME set of horizontal smushing rules as included in Old_Layout. Full_Layout must include code value 128. If UNIVERSAL smushing is to be the horizontal default: Old_Layout must be 0. Full_Layout must include code value 128. Full_Layout must NOT include any code value under 64. In general terms, if Old_Layout specifies horizontal smushing rules, Full_Layout must specify the same set of horizontal rules, and both must indicate the same horizontal default layout mode. SETTING LAYOUT PARAMETERS STEP-BY-STEP The following step-by-step process will yield correct and consistent values for the two layout parameters. You may skip this if you find the explanations above easier to use. Step 1: Start with 0 for both numbers. Write "Old_Layout" and "Full_Layout" on a piece of paper. Write the number 0 next to each. The number 0 may be crossed out and changed several times below. Go to step 2. Step 2: Set the DEFAULT HORIZONTAL LAYOUT MODE. If you want to use FULL WIDTH as the default Make Old_Layout -1 Go to step 3. If you want to use HORIZONTAL FITTING (kerning) as the default Make Full_Layout 64 Go to step 3. If you want to use HORIZONTAL SMUSHING as the default Make Full_Layout 128 Go to step 3. Step 3: Specify HOW TO SMUSH HORIZONTALLY WHEN SMUSHING. If you want to use UNIVERSAL smushing for the horizontal axis Go to step 4. If you want to use CONTROLLED smushing for the horizontal axis Add together the code values for all the horizontal smushing rules you want from the list below to get the horizontal smushing rules total. EQUAL CHARACTER SMUSHING 1 UNDERSCORE SMUSHING 2 HIERARCHY SMUSHING 4 OPPOSITE PAIR SMUSHING 8 BIG X SMUSHING 16 HARDBLANK SMUSHING 32 Horizontal smushing rules total: ___ If Full_Layout is currently 128 Change Old_Layout to the horizontal smushing rules total. Increase Full_Layout by the horizontal smushing rules total. Go to Step 4. If Full_Layout is currently 0 or 64 Increase Full_Layout by the horizontal smusing rules total. Go to Step 4. Step 4: Set the DEFAULT VERTICAL LAYOUT MODE. If you want to use FULL HEIGHT as the default Go to step 5. If you want to use VERTICAL FITTING as the default Increase Full_Layout by 8192. Go to step 5. If you want to use VERTICAL SMUSHING as the default Increase Full_Layout by 16384. Go to step 5. Step 5: Specify HOW TO SMUSH VERTICALLY WHEN SMUSHING. If you want to use UNIVERSAL smushing for the vertical axis Go to step 6. If you want to use CONTROLLED smushing for the vertical axis Add together the code values for all the vertical smushing rules you want from the list below to get the vertical smushing rules total. EQUAL CHARACTER SMUSHING 256 UNDERSCORE SMUSHING 512 HIERARCHY SMUSHING 1024 HORIZONTAL LINE SMUSHING 2048 VERTICAL LINE SUPERSMUSHING 4096 Vertical smushing rules total: ____ Increase Full_Layout by the vertical smushing rules total. Go to step 6. Step 6: You're done. The resulting value of Old_Layout will be a number from -1 to 63. The resulting value of Full_Layout will be a number from 0 and 32767. FIGFONT COMMENTS After the header line are FIGfont comments. The comments can be as many lines as you like, but should at least include your name and Email address. Here is an example which also shows the header line. flf2a$ 6 5 20 15 3 0 143 Example by Glenn Chappell <gg...@uiuc.edu> 8/94 Permission is hereby given to modify this font, as long as the modifier's name is placed on a comment line. Comments are not required, but they are appreciated. Please comment your FIGfonts. Remember to adjust the Comment_Lines parameter as you add lines to your comments. Don't forget that blank lines DO count. FIGCHARACTER DATA ============ ==== The FIGcharacter data begins on the next line after the comments and continues to the end of the file. BASIC DATA STRUCTURE The sub-characters in the file are given exactly as they should be output, with two exceptions: 1) Hardblanks should be the hardblank character specified in the header line, not a blank (space). 2) Every line has one or two endmark characters, whose column locations define the width of each FIGcharacter. In most FIGfonts, the endmark character is either "@" or "#". The FIGdriver will eliminate the last block of consecutive equal characters from each line of sub-characters when the font is read in. By convention, the last line of a FIGcharacter has two endmarks, while all the rest have one. This makes it easy to see where FIGcharacters begin and end. No line should have more than two endmarks. Below is an example of the first few FIGcharacters, taken from small.flf. NOTE: The line drawn below consisting of "|" represents the left margin of your editor. It is NOT part of the FIGfont. Also note that hardblanks are represented as "$" in this FIGfont, as would be described in the header line. |$@ |$@ blank/space |$@ |$@ |$@@ | _ @ || |@ exclamation point ||_|@ |(_)@ | @@ | _ _ @ |( | )@ double quote | V V @ | $ @ | @@ | _ _ @ | _| | |_ @ number sign ||_ . _|@ ||_ _|@ | |_|_| @@ | @ | ||_@ dollar sign |(_-<@ |/ _/@ | || @@ Notice that each FIGcharacter occupies the same number of lines (6 lines, in this case), which must also be expressed in the header line as the Height parameter. Also notice that for every FIGcharacter, there must be a consistent width (length) for each line once the endmarks are removed. To do otherwise would be an error. Be aware of the vertical alignment of each FIGcharacter within its height, so that all FIGcharacters will be properly lined up when printed. If one of the last sub-characters in a particular FIGcharacter is "@", you should use another character for the endmark in that FIGcharacter so that the intended "@" is not interpreted as an endmark. "#" is a common alternative. Load a few existing FIGfonts into your favorite text editor for other examples. REQUIRED FIGCHARACTERS Some FIGcharacters are required, and must be represented in a specific order. Specifically: all of the printable character codes from ASCII shown in the table below, in order, plus character codes 196, 214, 220, 228, 246, 252, and 223, in that order. In Latin-1, these extra 7 characters represent the following German characters: umlauted "A", "O", "U", "a", "o" and "u"; and also "ess-zed". Printable portion of the ASCII character set: 32 (blank/space) 64 @ 96 ` 33 ! 65 A 97 a 34 " 66 B 98 b 35 # 67 C 99 c 36 $ 68 D 100 d 37 % 69 E 101 e 38 & 70 F 102 f 39 ' 71 G 103 g 40 ( 72 H 104 h 41 ) 73 I 105 i 42 * 74 J 106 j 43 + 75 K 107 k 44 , 76 L 108 l 45 - 77 M 109 m 46 . 78 N 110 n 47 / 79 O 111 o 48 0 80 P 112 p 49 1 81 Q 113 q 50 2 82 R 114 r 51 3 83 S 115 s 52 4 84 T 116 t 53 5 85 U 117 u 54 6 86 V 118 v 55 7 87 W 119 w 56 8 88 X 120 x 57 9 89 Y 121 y 58 : 90 Z 122 z 59 ; 91 [ 123 { 60 < 92 \ 124 | 61 = 93 ] 125 } 62 > 94 ^ 126 ~ 63 ? 95 _ Additional required Deutsch FIGcharacters, in order: 196 (umlauted "A" -- two dots over letter "A") 214 (umlauted "O" -- two dots over letter "O") 220 (umlauted "U" -- two dots over letter "U") 228 (umlauted "a" -- two dots over letter "a") 246 (umlauted "o" -- two dots over letter "o") 252 (umlauted "u" -- two dots over letter "u") 223 ("ess-zed" -- see FIGcharacter illustration below) ___ / _ \ | |/ / Ess-zed >>---> | |\ \ | ||_/ |_| If you do not wish to define FIGcharacters for all of those required above, you MAY create "empty" FIGcharacters in their place by placing endmarks flush with the left margin. The Deutsch FIGcharacters are commonly created as empty. If your FIGfont includes only capital letters, please copy them to the appropriate lowercase locations, rather than leaving lowercase letters empty. A FIGfont which does not include at least all ASCII letters, a space, and a few basic punctuation marks will probably frustrate some users. (For example "@" is more frequently desired as a FIGcharacter than you may think, since Email addresses may be written as FIGures.) CODE TAGGED FIGCHARACTERS After the required FIGcharacters, you may create FIGcharacters with any character code in the range of -2147483648 to +2147483647. (Over four billion possibilities, which is "virtual infinity" for this purpose.) One exception: character code -1 is NOT allowed for technical reasons. It is advisable to assign character codes such that the appearance of your FIGcharacters matches the expectations of ASCII/Latin-1/Unicode, with a few exceptions: 1) If a FIGcharacter with code 0 is present, it is treated specially. It is a FIGfont's "missing character". Whenever the FIGdriver is told to print a character which doesn't exist in the current FIGfont, it will print FIGcharacter 0. If there is no FIGcharacter 0, nothing will be printed. 2) If a FIGfont contains a non-Latin alphabet in character codes in the ASCII range 32-126 (which is discouraged), we have found it helpful to include a human-readable translation table as one of the FIGcharacters instead of a "glyph". Typically, the "~" would contain this table. The translation table FIGcharacter would contain a list of all the special characters in the FIGfont, along with the ASCII characters to which they correspond. Keep this table no more than 79 columns wide. (Thanks to Gedaliah Friedenberg for this idea.) 3) In more extensive Unicode fonts, you can assign a negative character code (other than -1) to one or more translation tables, similar to #2 above. (All Unicode character codes are positive.) And, you will most likely suggest within the comments that a user access one of several control files (See "CONTROL FILES" below) to gain access to Latin-2, Latin-3, or other 8-bit standardized character sets. The control files may redirect the "~" character to one of the negative character codes so that the translation table would display the table when "~" is given for input. Doing this allows you to still have a "~" FIGcharacter for those who do not use a control file. Those FIGcharacters which are not required must have an explicit character code in a separate line preceding them, called a "code tag". A code tag contains the value of the character code, followed by whitespace (a few spaces), and perhaps an optional comment. The comment is usually the name of the FIGcharacter. The Unicode Consortium has assigned formal names to all officially accepted characters, and these may be used. An entire code tag, including the comment, should not occupy more than 95 columns. (Over 100 characters here may make older versions of FIGlet crash.) Here is an example, showing two code tagged FIGcharacters after the last two required Deutsch FIGcharacters. Again, the line drawn below consisting of "|" represents the left margin of your editor, and is NOT part of the FIGfont. | _ _ @ |(_) (_)@ || | | |@ || |_| |@ | \__,_|@ | @@ | ___ @ | / _ \@ || |/ /@ || |\ \@ || ||_/@ ||_| @@ |161 INVERTED EXCLAMATION MARK | _ @ |(_)@ || |@ || |@ ||_|@ | @@ |162 CENT SIGN | _ @ | | | @ | / __)@ || (__ @ | \ )@ | |_| @@ A character code may be expressed in decimal (as shown above, numbers we're all familiar with), or in Octal (seldom used) or in hexadecimal. Character codes expressed in octal must be preceded by "0" (zero), and if negative, "-" (minus) must precede the "0". There are eight octal digits: 01234567. You may recall octal numbers from school as "base 8 numbers". Character codes expressed in hexadecimal must be preceded by "0x" or "0X". (That's also a zero.) If negative, the "-" must precede the "0x". There are 16 hexadecimal digits: 01234567890ABCDEF. (The "letter-digits" may also be lowercase.) Hexadecimal is "base 16". It is common to express character codes less than 256 (in the range of an 8-bit character set) as decimal, while FIGfonts which extend into the Unicode range would have character codes expressed in hexadecimal. This is because the Unicode Standard expresses character codes in hexadecimal, which is helpful for programmers. The code tagged FIGcharacters may be listed in any order, but simple sequential order is recommended. If two or more FIGcharacters have the same character code, the last one in the FIGfont is the one used. It is common for the Deutsch FIGcharacters to be given twice in a FIGfont, just to maintain a consistent order for the Latin-1 range (128 to 255). It is not advisable to assign character codes in the range of 1 to 31, since this range includes control characters in ASCII. Character code 127 is a delete in ASCII, and is also not advised. Character codes 128 to 159 are additional control characters in Latin-1, and they too should not be used. All of the above are legal, technically, but are not part of what is legal for input, so they could only be accessed by use of a control file. (See "CONTROL FILES" below.) If you are still tempted to use them, consider negative character codes instead, which are meaningless in all standardized character sets. Again, the character code -1 is illegal for technical reasons. NOTES - AVOIDING ERRORS AND GENERAL ADVICE ===== ======== ====== === ======= ====== It is very important that every character in a font has the same height, and, once the endmarks are removed, that all the lines constituting a single FIGcharacter have the same length. Be careful also that no lines in the font file have trailing blanks (spaces), as the FIGdriver will take these to be the endmarks. (FIGWin 1.0 will not consider blanks to be endmarks.) Errors in a FIGfont can be detected by using the "chkfont" program, part of the standard FIGlet package, and also available, as of this writing, by anonymous FTP from ftp://ftp.nicoh.com/pub/figlet/util . For FIGWin users, the FIGWin program will report errors when a FIGfont is read in; it is less forgiving than FIGlet, which can produce nonsense if the FIGfont is incorrectly formatted. Remember that sub-characters outside of the ASCII range will not necessarily display the same way on your system as on others. The blank (space) FIGcharacter should usually consist of one or two columns of hardblanks and nothing else; slanted fonts are an exception to this rule. If the space FIGcharacter does not contain any hardblanks, it will disappear when horizontal fitting (kerning) or smushing occurs. Again, if you design a FIGfont, please let us know! __ amy...@mail.com .-. .-. |__| : :.-. .' `. __|____ .--. ,-.,-.,-..-..-.: `'.' .--. `. .'.--. /______/|__ ' .; ; : ,. ,. :: :; :: . `.' .; ; : :' '_.' |_MAIL_|/_/ `.__,_;:_;:_;:_;`._. ;:_;:_;`.__,_;:_;`.__.' || .-. : Gray skies are just clouds passing over. `._.' ~ Duke Ellington ~
Original message headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f996b,192617a734e294b3 X-Google-Attributes: gidf996b,public From: amy...@nospammail.com (Amykate) Subject: Re: RFC gothic font Date: 2000/10/19 Message-ID: <39e...@news.mdc.net> X-Deja-AN: 683454775 References: <39c...@news.concentric.net> <8q93f2$32h$1...@nnrp1.deja.com> <39c...@news.concentric.net> <89c...@4ax.com> <39e...@news.concentric.net> <1bt...@4ax.com> X-Trace: 19 Oct 2000 12:45:47 -0400, xcom-79-127.mdc.net Newsgroups: alt.ascii-art
Related ASCII art in the Gallery
Explore these categories from our collection of 11,000+ artworks:
Make your own ASCII art
Turn images, text or 3D into ASCII, or draw your own – right in your browser.
About this message.
This message was posted publicly to the newsgroup
alt.ascii-art
in 2000 and is mirrored here unchanged as part of the Historic Archives – only email addresses are masked.
The artwork and text belong to their original authors: if you copy a piece, keep the artist's initials or signature intact and credit them where you can.
Are you the author? Contact us to get your posts attributed, connected to your artist profile, or removed.
Report this message
Help us keep the archive clean and accurate. Reports are reviewed by a person – nothing is changed automatically.