@Section @Title { Characters } @Tag { characters } @Begin @PP The usual way to get characters into a document is simply to type them as characters. @Index characters we have been doing all along. However, for some characters this is not possible, either because they have some special meaning, as @Code "{" and @Code "}" do, or because the keyboard has no button for them. This section explains how to get every possible character: every printable character in the ISO-LATIN-1 character set, every character in the Adobe Systems Symbol font, plus the characters {@Char quotesinglbase}, {@Char quotedblbase}, {@Char ellipsis}, {@Char OE}, {@Char oe}, {@Char quotedblleft}, {@Char quotedblright}, {@Char fi}, {@Char fl}, {@Char endash}, {@Char emdash}, {@Char bullet}, {@Char dagger}, {@Char daggerdbl}, {@Char florin}, {@Char fraction}, and @Euro. If it exists at all, you will find it here. ISO-LATIN-2 and Russian characters are available separately. In principle, there is no limit to the characters available, but to go beyond those given in this section requires expertise in defining encoding vectors and fonts @Cite { $kingston1995lout.expert}. @PP First up we have the characters that you get simply by typing them. The characters themselves are shown at the left, and what you type to get them at the right: @ID @OneRow @Tab vmargin { 0.5vx } @Fmta { @Col @CC A ! @Col @Code A ! @Col ! @Col @CC B ! @Col @Code B ! @Col ! @Col @CC C ! @Col @Code C ! @Col ! @Col @CC D ! @Col @Code D ! @Col ! @Col @CC E ! @Col @Code E ! @Col ! @Col @CC F ! @Col @Code F } { @Rowa A { ! } B { $ } C { % } D { ' } E { ( } F { ) } @Rowa A { * } B { + } C { , } D { - } E { 0 } F { 1 } @Rowa A { 2 } B { 3 } C { 4 } D { 5 } E { 6 } F { 7 } @Rowa A { 8 } B { 9 } C { : } D { ; } E { < } F { = } @Rowa A { > } B { ? } C { A } D { B } E { C } F { D } @Rowa A { E } B { F } C { G } D { H } E { I } F { J } @Rowa A { K } B { L } C { M } D { N } E { O } F { P } @Rowa A { Q } B { R } C { S } D { T } E { U } F { V } @Rowa A { W } B { X } C { Y } D { Z } E { [ } F { ] } @Rowa A { _ } B { ` } C { a } D { b } E { c } F { d } @Rowa A { e } B { f } C { g } D { h } E { i } F { j } @Rowa A { k } B { l } C { m } D { n } E { o } F { p } @Rowa A { q } B { r } C { s } D { t } E { u } F { v } @Rowa A { w } B { x } C { y } D { z } E { } F { } } Next come characters that have buttons but have a special meaning if they are typed directly, and consequently have to be enclosed in double quotes to turn off this meaning: quote.chars @Index { quote characters } @ID @OneRow @Tab @Fmta { @Col @CC A ! @Col @Code B ! @Col ! @Col @CC C ! @Col @Code D ! @Col ! @Col @CC E ! @Col @Code F ! @Col ! @Col @CC G ! @Col @Code H ! @Col I } { @Rowa A { "\"" } B { "\"\\\"\"" } C { "#" } D { "\"#\"" } E { "&" } F { "\"&\"" } G { "/" } H { "\"/\"" } @Rowa A { "@" } B { "\"@\"" } C { "\\" } D { "\"\\\\\"" } E { "^" } F { "\"^\"" } G { "{" } H { "\"{\"" } @Rowa A { "|" } B { "\"|\"" } C { "}" } D { "\"}\"" } E { "~" } F { "\"~\"" } G { } H { "\" \"" } I { (space character) } } If you think you want {@Code "\""}, you probably really want `` and '', for which see below. You can place whole sequences of characters, special or not, inside one pair of double quotes: @ID @OneRow @Tab @Fmta { @Col A ! @Col ! @Col @Code B } { @Rowa A { "jeff/includes/su_crest.eps" } B { "\"jeff/includes/su_crest.eps\"" } @Rowa A { "\"@PP\"" } B { "\"\\\"@PP\\\"\"" } } Next we have some miscellaneous characters which have been deemed sufficiently important to deserve their own symbols: @ID @OneRow @Tab vmargin { 0.5vx } @Fmta { @Col A ! @Col @Code B ! @Col ! @Col C ! @Col @Code D ! @Col ! @Col E ! @Col @Code F } { @Rowa A { `` } B { "``" } C { ,, } D { ",," } E { -- } F { "--" } @Rowa A { '' } B { "''" } C { ... } D { "..." } E { --- } F { "---" } @Rowa A { @Bullet bullet @Index @Code "@Bullet" } B { "@Bullet" } C { @Star star @Index @Code "@Star" } D { "@Star" } E { @ParSym parsym @Index @Code "@ParSym" } F { "@ParSym" } @Rowa A { @SectSym sectsym @Index @Code "@SectSym" } B { "@SectSym" } C { @Dagger dagger @Index @Code "@Dagger" } D { "@Dagger" } E { @DaggerDbl daggerdbl @Index @Code "@DaggerDbl" } F { "@DaggerDbl"} @Rowa A { @CDot cdot @Index @Code "@CDot" } B { "@CDot" } C { @Sterling sterling @Index @Code "@Sterling" } D { "@Sterling" } E { @Yen yen @Index @Code "@Yen" } F { "@Yen" } @Rowa A { @Florin florin @Index @Code "@Florin" } B { "@Florin" } C { @Degree degree @Index @Code "@Degree" } D { "@Degree" } E { @Minute minute @Index @Code "@Minute" } F { "@Minute" } @Rowa A { @Second second @Index @Code "@Second" } B { "@Second" } C { @Lozenge lozenge @Index @Code "@Lozenge" } D { "@Lozenge" } E { @Multiply multiply @Index @Code "@Multiply"} F { "@Multiply" } @Rowa A { @Divide divide @Index @Code "@Divide" } B { "@Divide" } C { @CopyRight copyright @Index @Code "@CopyRight" } D { "@CopyRight"} E { @Register register @Index @Code "@Register" } F { "@Register" } @Rowa A { @TradeMark trademark @Index @Code "@TradeMark" } B { "@TradeMark"} C { @Euro euro @Index @Code "@Euro" } D { "@Euro"} } Next we have the complete ISO-LATIN-1 character set, whose members you iso.latin.1 @Index { ISO-LATIN-1 character set } char. @Index { @Code "@Char" symbol } get with the @Code "@Char" symbol followed by the name of the character you want: @ID @OneRow -3p @Font @Tab hmargin { 0.1c } vmargin { 0.4vo } @Fmta { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! @Col @CC @Char B ! @Col @Code { "@Char" B } ! @Col ! @Col @CC @Char C ! @Col @Code { "@Char" C } ! @Col ! @Col @CC @Char D ! @Col @Code { "@Char" D } } @Fmtb { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col } { @Rowa A { space } B { exclam } C { quotedbl } D { numbersign } @Rowa A { dollar } B { percent } C { ampersand } D { quoteright } @Rowa A { parenleft } B { parenright } C { asterisk } D { plus } @Rowa A { comma } B { hyphen } C { period } D { slash } @Rowa A { zero } B { one } C { two } D { three } @Rowa A { four } B { five } C { six } D { seven } @Rowa A { eight } B { nine } C { colon } D { semicolon } @Rowa A { less } B { equal } C { greater } D { question } @Rowa A { at } B { A } C { B } D { C } @Rowa A { D } B { E } C { F } D { G } @Rowa A { H } B { I } C { J } D { K } @Rowa A { L } B { M } C { N } D { O } @Rowa A { P } B { Q } C { R } D { S } @Rowa A { T } B { U } C { V } D { W } @Rowa A { X } B { Y } C { Z } D { bracketleft } @Rowa A { backslash } B { bracketright } C { asciicircum } D { underscore } @Rowa A { quoteleft } B { a } C { b } D { c } @Rowa A { d } B { e } C { f } D { g } @Rowa A { h } B { i } C { j } D { k } @Rowa A { l } B { m } C { n } D { o } @Rowa A { p } B { q } C { r } D { s } @Rowa A { t } B { u } C { v } D { w } @Rowa A { x } B { y } C { z } D { braceleft } @Rowa A { bar } B { braceright } C { asciitilde } D { dotlessi } @Rowa A { grave } B { acute } C { circumflex } D { tilde } @Rowa A { macron } B { breve } C { dotaccent } D { dieresis } @Rowa A { ring } B { cedilla } C { hungarumlaut } D { ogonek } @Rowa A { caron } B { space } C { exclamdown } D { cent } @Rowa A { sterling } B { currency } C { yen } D { brokenbar } @Rowa A { section } B { dieresis } C { copyright } D { ordfeminine } @Rowa A { guillemotleft } B { logicalnot } C { hyphen } D { registered } @Rowa A { macron } B { degree } C { plusminus } D { twosuperior } @Rowa A { threesuperior } B { acute } C { mu } D { paragraph } @Rowa A { periodcentered } B { cedilla } C { onesuperior } D { ordmasculine } @Rowa A { guillemotright } B { onequarter } C { onehalf } D { threequarters } @Rowa A { questiondown } B { Agrave } C { Aacute } D { Acircumflex } @Rowa A { Atilde } B { Adieresis } C { Aring } D { AE } @Rowa A { Ccedilla } B { Egrave } C { Eacute } D { Ecircumflex } @Rowa A { Edieresis } B { Igrave } C { Iacute } D { Icircumflex } @Rowa A { Idieresis } B { Eth } C { Ntilde } D { Ograve } @Rowa A { Oacute } B { Ocircumflex } C { Otilde } D { Odieresis } @Rowa A { multiply } B { Oslash } C { Ugrave } D { Uacute } @Rowa A { Ucircumflex } B { Udieresis } C { Yacute } D { Thorn } @Rowa A { germandbls } B { agrave } C { aacute } D { acircumflex } @Rowa A { atilde } B { adieresis } C { aring } D { ae } @Rowa A { ccedilla } B { egrave } C { eacute } D { ecircumflex } @Rowa A { edieresis } B { igrave } C { iacute } D { icircumflex } @Rowa A { idieresis } B { eth } C { ntilde } D { ograve } @Rowa A { oacute } B { ocircumflex } C { otilde } D { odieresis } @Rowa A { divide } B { oslash } C { ugrave } D { uacute } @Rowa A { ucircumflex } B { udieresis } C { yacute } D { thorn } @Rowb A { ydieresis } } Of course, many of these characters can also be typed directly, or with the aid of double quotes, as we have seen. If your keyboard has accented accented @Index { accented characters } characters on it, you can type them directly too; if not, you need to use the @Code "@Char" symbol, in which case you will probably need braces as well: @ID @Code "gar{@Char ccedilla}on" to distinguish the @Code "@Char" symbol and the character name from adjacent letters. @PP Next we have the Adobe Systems Symbol font, a treasure trove of symbol. @Index { Symbol font } sym. @Index { @Code "@Sym" symbol } exotic characters obtained with the @Code "@Sym" symbol: @ID @OneRow -3p @Font @Tab hmargin { 0.1c } vmargin { 0.4vo } @Fmta { @Col @CC @Sym A ! @Col @Code { "@Sym" A } ! @Col ! @Col @CC @Sym B ! @Col @Code { "@Sym" B } ! @Col ! @Col @CC @Sym C ! @Col @Code { "@Sym" C } ! @Col ! @Col @CC @Sym D ! @Col @Code { "@Sym" D } } { @Rowa A { space } B { exclam } C { universal } D { numbersign } @Rowa A { existential } B { percent } C { ampersand } D { suchthat } @Rowa A { parenleft } B { parenright } C { asteriskmath } D { plus } @Rowa A { comma } B { minus } C { period } D { slash } @Rowa A { zero } B { one } C { two } D { three } @Rowa A { four } B { five } C { six } D { seven } @Rowa A { eight } B { nine } C { colon } D { semicolon } @Rowa A { less } B { equal } C { greater } D { question } @Rowa A { congruent } B { Alpha } C { Beta } D { Chi } @Rowa A { Delta } B { Epsilon } C { Phi } D { Gamma } @Rowa A { Eta } B { Iota } C { theta1 } D { Kappa } @Rowa A { Lambda } B { Mu } C { Nu } D { Omicron } @Rowa A { Pi } B { Theta } C { Rho } D { Sigma } @Rowa A { Tau } B { Upsilon } C { sigma1 } D { Omega } @Rowa A { Xi } B { Psi } C { Zeta } D { bracketleft } @Rowa A { therefore } B { bracketright } C { perpendicular } D { underscore } @Rowa A { radicalex } B { alpha } C { beta } D { chi } @Rowa A { delta } B { epsilon } C { phi } D { gamma } @Rowa A { eta } B { iota } C { phi1 } D { kappa } @Rowa A { lambda } B { mu } C { nu } D { omicron } @Rowa A { pi } B { theta } C { rho } D { sigma } @Rowa A { tau } B { upsilon } C { omega1 } D { omega } @Rowa A { xi } B { psi } C { zeta } D { braceleft } @Rowa A { bar } B { braceright } C { similar } D { Upsilon1 } @Rowa A { minute } B { lessequal } C { fraction } D { infinity } @Rowa A { florin } B { club } C { diamond } D { heart } @Rowa A { spade } B { arrowboth } C { arrowleft } D { arrowup } @Rowa A { arrowright } B { arrowdown } C { degree } D { plusminus } @Rowa A { second } B { greaterequal } C { multiply } D { proportional } @Rowa A { partialdiff } B { bullet } C { divide } D { notequal } @Rowa A { equivalence } B { approxequal } C { ellipsis } D { arrowvertex } @Rowa A { arrowhorizex } B { carriagereturn } C { aleph } D { Ifraktur } @Rowa A { Rfraktur } B { weierstrass } C { circlemultiply } D { circleplus } @Rowa A { emptyset } B { intersection } C { union } D { propersuperset } @Rowa A { reflexsuperset } B { notsubset } C {propersubset} D {reflexsubset} @Rowa A { element } B { notelement } C { angle } D { gradient } @Rowa A { registerserif } B { copyrightserif } C {trademarkserif} D {product} @Rowa A { radical } B { dotmath } C { logicalnot } D { logicaland } @Rowa A { logicalor } B { arrowdblboth } C { arrowdblleft } D { arrowdblup } @Rowa A { arrowdblright } B { arrowdbldown } C { lozenge } D { angleleft } @Rowa A { registersans } B { copyrightsans } C {trademarksans} D {summation} @Rowa A { parenlefttp } B { parenleftex } C { parenleftbt } D {bracketlefttp} vmargin { 0.5vx } @Rowa A { bracketleftex } B { bracketleftbt } C {bracelefttp} D {braceleftmid} vmargin { 0.5vx } @Rowa A { braceleftbt } B { braceex } C { angleright } D { integral } vmargin { 0.5vx } @Rowa A { integraltp } B { integralex } C { integralbt } D { parenrighttp } vmargin { 0.5vx } @Rowa A {parenrightex} B {parenrightbt} C {bracketrighttp} D {bracketrightex} vmargin { 0.5vx } @Rowa A { bracketrightbt } B {bracerighttp} C {bracerightmid} D {bracerightbt} vmargin { 0.5vx } } There is only one Symbol font; it does not come in bold or italic faces like the other fonts. Typing @Code "@B @Sym alpha" is therefore useless, and anyway there is no bold @Sym alpha character in any font distributed with Lout (except see Section {@NumberOf teq}). @PP Finally we have a few more characters that you get with the @Code "@Char" symbol, although they aren't ISO-LATIN-1 characters. @ID @OneRow -3p @Font @Tab hmargin { 0.1c } vmargin { 0.4vo } @Fmta { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! @Col @CC @Char B ! @Col @Code { "@Char" B } ! @Col ! @Col @CC @Char C ! @Col @Code { "@Char" C } ! @Col ! @Col @CC @Char D ! @Col @Code { "@Char" D } } @Fmtb { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col } { @Rowa A { quotesinglbase } B { quotedblbase } C { ellipsis } D { OE } @Rowa A { oe } B { quotedblleft } C { quotedblright } D { fi } @Rowa A { fl } B { endash } C { emdash } D { bullet } @Rowa A { dagger } B { daggerdbl } C { florin } D { fraction } } Most of these characters are also in the list of `characters important enough to deserve their own symbols' given above. @End @Section