🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.text
Article #2258

Re: International character set requirements needed

#2258
From: Keld J|rn Simonsen
Date: Tue, 25 Dec 1990 21:26
898 lines
25748 bytes
I was the coauthor of an article on 7-bit names for troff of
non-ASCII characters, together with some support for national
ISO 646 variants. Here is the article. Enjoy!

: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
: --------------------------- cut here --------------------------
PATH=/bin:/usr/bin:/usr/ucb
echo Extracting 'Makefile'
sed 's/^X//' > 'Makefile' << '+ END-OF-FILE ''Makefile'
Xextchar.dit:	extchar specchar
X		refer -e -p typesetting extchar | tbl | troff $(DEVICE) -ms >extchar.dit
X
Xspecchar:	spec nicetr
X		sh nicetr spec >specchar
X
Xprint:		extchar.dit
X		dip $(DEVICE) extchar.dit
X
Xallchar:	spec nicetr spec.p400
X		sh nicetr spec spec.p400 >allchar
X
Xdistr:
X		shar Makefile extchar spec nicetr tmac.la pchdefs typesetting >distr
+ END-OF-FILE Makefile
chmod 'u=r,g=r,o=r' 'Makefile'
set `wc -c 'Makefile'`
count=$1
case $count in
351)	:;;
*)	echo 'Bad character count in ''Makefile' >&2
		echo 'Count should be 351' >&2
esac
echo Extracting 'extchar'
sed 's/^X//' > 'extchar' << '+ END-OF-FILE ''extchar'
X.ds LF DRAFT
X.so pchdefs
X.so tmac.la
X.la US
X.TL
XAn extension to the troff character set
X.AU
XE.G. Keizer
XK.J. Simonsen
XJ. Akkerhuis
X.AI
XVrije Universiteit, Amsterdam, The Netherlands
XUniversity of Copenhagen, Copenhagen, Denmark
XC.M.U., USA
X.AB
XThe typesettting program
X.I troff
Xwas originally written for formatting English text for the CAT 48 Typesetter.
XIts offspring is used for formatting a variety of languages with a large
Xdiversity of output devices.
XThe authors agreed on an addition
Xto the troff character set covering old and new national and
Xinternational latin based character sets.
X.AE
X.NH
XThe problems
X.PP
XWhen adapting the
X.UX
Xtypesetting program
X.I troff\|
X.[
XOssanna
X.]
Xto a new output device, one wants to have access
Xto the extra characters offered by the device,
Xwithout sacrificing any characters already in use.
XDevice independent \f2troff\fP, also called
X.I titroff
Xor 
X.I ditroff\|
X.[
XTypesetter independent troff Kernighan
X.]
Xuses a flexible font definition mechanism that allows addition and deletion
Xof characters.
X.LP
XMany people, including the authors, have used this mechanism
X.[
XKahrs and Moore
X.]
Xto add characters.
XThis has led to a diversity of names, with the expected conflicts
Xof using the same name for different characters and different names for the same
Xcharacter in different implementations.
XThus
X.I troff
Xinput files are becoming less and less portable,
Xeven for the same output device on different installations.
XWe regret this development and, during a conference in Copenhagen,
Xwe decided to make an attempt at some standardization.
XB.W. Kernighan, author of ditroff, agreed to our proposal of acting as a
Xclearing house for our new names and he still has to give his blessing
Xto this article.
X.PP
XWe realize that it is impossible to name every printable character in the
Xworld.
XThe total amount of different characters is simply too huge.
XNaming all the hundred different turtles in a turtle font is both
Xfrustrating and futile.
XWe restricted ourselves to the following categories:
X.IP \(bu
Xcharacters belonging to the printed language of several Western-European
Xcountries: \(AE \(ss
X.IP \(bu
Xvariations of letters, especially with accents: \(:i \(^u \(:o
X.IP \(bu
Xoften used mathematical symbols: \(AN \(OR \(c*
X.NH 2
XNatural language support
X.PP
XThe
X.I troff
Xcharacter set is based on the US-ASCII standard.
XThis standard is well suited to English text,
Xbut causes problems when used in most European countries.
XUS-ASCII is a version of the ISO 646-1983 standard.
XThe ISO standard states the characters used in 7 bit ASCII
Xand contains 94 printable graphic symbols.
XISO-646 allows national versions for 12 of its character positions.
XThe European Computer Manufacturers' Association ECMA is registering
Xall different national versions of ISO 646-1983 and assigns
Xa different character to each.
XThis allows the creation of documents with multiple character sets.
XThe assigned character serves to identify each character set in such documents.
XThe table below shows several versions conforming to ISO 646.
X.TS
Xcenter,allbox;
Xc s s s s s s s s s s s s s s
Xl l l s s s s s s s s s s s s
Xl l l c c c c c c c c c c c c.
XNational ISO 646 character sets
XCountry	Standard	.la parameter
XISO	ISO 646 IRV	ISO	\(sh	\(Cs	\(at	\(lB	\(rs	\(rB	\(ha	\(oq	\(lC	\(ba	\(rC	\(rn
XUSA	X3.4-1968	US	\(sh	\(Do	\(at	\(lB	\(rs	\(rB	\(ha	\(oq	\(lC	\(ba	\(rC	\(ti
XGreat Britain	BS 4730	GB	\(Po	\(Do	\(at	\(lB	\(rs	\(rB	\(ha	\(oq	\(lC	\(ba	\(rC	\(rn
XJapan	JIS C 6229	JP	\(sh	\(Do	\(at	\(lB	\(Ye	\(rB	\(ha	\(oq	\(lC	\(ba	\(rC	\(rn
XChina	GB 1988-80	CN	\(sh	\(Ye	\(at	\(lB	\(rs	\(rB	\(ha	\(oq	\(lC	\(ba	\(rC	\(rn
XDenmark	DS 2089	DK	\(sh	\(Do	\(at	\(AE	\(/O	\(oA	\(ha	\(oq	\(ae	\(/o	\(oa	\(ti
XNorway	NS 4551-1	NO	\(sh	\(Do	\(at	\(AE	\(/O	\(oA	\(ha	\(oq	\(ae	\(/o	\(oa	\(rn
X.la NO2
X	NS 4551-2	NO2	#	$	@	[	\(/O	]	^	`	{	|	}	~
X.la FI
XFinland		FI	#	$	@	[	\e	]	^	`	{	|	}	~
XSweden	SEN 850200 B	SE	\(sh	\(Cs	\(at	\(:A	\(:O	\(oA	\(:U	\(oq	\(:a	\(:o	\(oa	\(rn
X	SEN 850200 C	SE2	\(sh	\(Cs	\*('E	\(:A	\(:O	\(oA	\(:U	\('e	\(:a	\(:o	\(oa	\(:u
XGermany	DIN 66 003	DE	\(sh	\(Do	\(sc	\(:A	\(:O	\(:U	\(ha	\(oq	\(:a	\(:o	\(:u	\(ss
XHungary	MSZ 7795/3	HU	\(sh	\(Cs	\*('A	\*('E	\(:O	\(:U	\(ha	\('a	\('e	\(:o	\(:u	\(a"
X.\" Jugoslavia	JUS I.B1.002	JS	\(sh	\(Do	\*(vZ	\*(vS	\*(-D	\*('C	\*(vC	\*(vz	\*(vs	\*(-d	\*(vc	\*('c
X.la FR
XFrance	NF Z 62-010	FR	\(Po	\(Do	\(`a	\(de	\(,c	\(sc	\(ha	\(my	\('e	\(`u	\(`e	\(ad
XItaly		IT	\(Po	\(Do	\(sc	\(de	\(,c	\('e	\(ha	\(`u	\(`a	\(`o	\(`e	\(`i
X.la ES
XSpain		ES	#	$	@	[	\e	]	^	`	{	|	}	~
X.la ES2
X		ES2	#	$	@	[	\e	]	^	`	{	|	}	~
XPortugal		PT	\(sh	\(Do	\(sc	\*(~A	\(,C	\*(~O	\(ha	\(oq	\(~a	\(,c	\(~o	\(de
X		PT2	\(sh	\(Do	\(aa	\*(~A	\(,C	\*(~O	\(ha	\(oq	\(~a	\(,c	\(~o	\(ti
X.TE
X.la US
X.vs
X.ps
X.PP
XTerminals in these countries are often
Xadapted to these national variations.
XCreating
X.I troff
Xinput for Danish texts on Danish terminals is a frustrating experience.
XOne has to type
X.B \e(AE
Xfor
X.B \(AE
Xin spite of the presence of a special key for \(AE.
XYou can by-pass this by using the
X.I troff
Xcommand \f3.tr\fP,
Xwhich allows the mapping of any character to any other.
XWe have employed the \f3.tr\fP command in a macro \f3.la\fP
Xwhich is designed to make it possible to shift between
Xall the ISO 646 input charater sets in the above table.
XThe macro takes a code for the country as parameter; the first
Xtwo letters being the ISO 3166 two-letter country code.
XThe \f3.la\fP macro can be used like this:
X
X.ft CW
X.nf
X    .la US
X    First we write something in "God's own" character set.
X    .la DK
X    S} skriver vi noget s|dt p} dansk: sodavandsis.
X    .la DE
X    Und f}r Deutschen k|nnen wir auch etwas schreiben!
X    .la US
X.fi
X
X.ft
Xgiving:
X.br
X.ft
XFirst we write something in "God's own" character set.
X.la DK
XS} skriver vi noget s|dt p} dansk: sodavandsis.
X.la DE
XUnd f}r Deutschen k|nnen wir auch etwas schreiben!
X.la US
X.ft
X
XThe \f3.la\fP
Xmacro can only be used when all the characters of the character sets in use
Xhave a unique code on the printing device. Also you cannot change input
Xcharacter set within a diversion in 
X.I troff,
Xyou need to use the special character names if you want to use foreign
Xcharacters within a sentence. An example of having a French name
Xin a Danish text:
X
X.ft CW
X.nf
XJeg s} Jer\e(^ome Fran\e(,cois komme til K|benhavn.
X.ft
Xgiving:
X.ft
X.la DK
XJeg s} Jer\(^ome Fran\(,cois komme til K|benhavn.
X.ft
X.fi
X.la US
X.PP
XTo be able to use all other national characters within a national
Xcharacter set,
Xwe decided to introduce names for all the different national
Xcharacters,
Xeven for the 'default' US names.
X.PP
XAlso we went through the new ISO standards for Latin alphabets
X(ISO 8859)
Xand assured that all special characters there would have a unique
Xname according to this proposal.
X.PP
XA last warning is about the 
X.I troff 
Xescape character \e and the national characters taking its place.
XHere you must write the national character followed by an 'e'
Xto get the desired result.
X
XThe \f3.la\fP macro has the follwing contents:
X.DS
X.ft CW
X.ps 6
X.nr Sw \w' '
X.ta 8u*\n(Swu 16u*\n(Swu 24u*\n(Swu 32u*\n(Swu 40u*\n(Swu 48u*\n(Swu 56u*\n(Swu 
X.eo
X.nf
X.cc &
X&so tmac.la
X&cc .
X.fi
X.ec
X.ps
X.DE
X.ft 1
X.NH 2
XProblems we did not pursue
X.PP
XWritten English is based on the latin alphabet,
Xit hardly uses accents and other variations of letters.
XOther languages make use of accents above (\(`e), below (\(,c) and
Xthrough (\(/o) the letters.
XWe do not address the problems of languages with more than one
Xaccent per letter and
X. \"(\o'v\(aa'\h'-\w'v'u'\v'0.1m',.\v'-0.1m'\h'0.2m'),
Xaccents connecting letters.
XIn our opinion these problems have to be solved by separate preprocessors.
XThis allows a much more friendly user interface.
XThese preprocessors could also solve the problem of hyphenation
Xand ligatures for these languages.
X.NH 2
XThe troff naming scheme
X.PP
X.I Troff
Xhas three ways of naming characters:
X.IP \(bu
Xone character ASCII names like
X.B A
Xfor A,
X.B B
Xfor B
Xand
X.B @
Xfor @.
X.IP \(bu
Xescaped one character names prefixed by a
X.B \e
Xlike
X.B \e\-
Xfor current font minus,
X.B \ee
Xfor backslash
Xand
X.B \e\'
Xfor acute accent.
XThere are only a few of these.
X.IP \(bu
Xtwo character names prefixed by the indicator
X.B \e(
Xlike
X.B \e(sc
Xfor \(sc,
X.B \e(*g
Xfor \(*g
Xand
X.B \e(14
Xfor \(14.
X.LP
XThe sets of one-character names and escaped one character names are fixed.
XOnly the set of two character names can be extended.
X.NH
XChoosing new names
X.PP
XWhile choosing names for new characters we were very much aware
Xof the fact that the restriction of two characters per name
Xdefies all attempts to choose a consistent and logical naming scheme.
XStill we used a few principles in choosing the new names.
XWhenever these principles conflicted we refrained from long
Xdiscussions but placed more value on a quick decision.
X.LP
XOur principles:
X.IP \(bu
Xmay not conflict with original troff manual
X.[
XOssanna
X.]
X.IP \(bu
Xtry to avoid the national characters: 
X\(sh \(Do \(at \(lB \(rs \(rB \(ha \(oq \(lC \(ba \(rC \(ti
X.IP \(bu
Xuse characters associated with the graphical description of the symbol.
XThus
X.B \e(oA
Xfor
X.B \(oA
Xinstead of \f3\e(AA\f1.
X.IP \(bu
XWhenever a character is a combination of an accent and a letter
Xuse as name a character representing the accent followed by the letter.
XFor example: \f3\e('e\f1 for \('e.
XThis is the way these combinations were made on old-fashioned
Xtypewriters:
Xfirst hit the dead key with the accent then the key with the letter.
XThe characters we used for the accents (and the like) are:
X.br
X.sp 0.6
X.TS
Xallbox,center;
Xl  c  c  c  c  c  c  c  c  c  c  c  c  c.
XASCII	\(aa	\(ga	:	,	\(ti	o	\(ha	.	"	u	v	-	/
XAccent	\(aa	\(ga	\(ad	\(ac	\(ti	\(de	\(ha	.	\(a"	\(ab	\(ah	\(hy	\(sl
XName	aa	ga	ad	ac	ti	de	ha	a.	a"	ab	ah	hy	sl
X.TE
X.IP \(bu
Xfractions are done in the natural way: \f3\e(\f2nm\f1
Xfor \s-3\v'-0.45m'n\v'0.45m'\s0/\s-3m\s0.
X.IP \(bu
XCurrency signs have two letter names.
XThe first letter is Capital, the second small.
X.IP \(bu
XThe names for accents start with an \f3a\fP, for example
X.B \e(ad
Xfor \(ad.
X.NH
XThe weird characters one has
X.LP
XSuppose you have a 
X.I flat,
Xwhich is unlikely on any other device, but
Xstill want to have your input send to your friend/editor which can run
Xit on his troff.
XThe first thing to do is not using the character as it is
Ximplemented on your troff (f.i. \e(ft), but define a
Xstring at the beginning of the text and use that.
XThe next thing to do is to give a description how it should look like.
XSo if we stick with our flat, you end up at the start of the your
Xinput file with:               
X.DS
X.ft CW
X .\e" We use a "flat" (\e(ft) a lot instead of a backslash, because it
X .\e" stands out nicely and, since a backslash can be interpreted in
X .\e" so many ways, I want to make clear that you see an escape when I
X .\e" talk about it....  
X .\e" So I define the string ft
X .ds ft \e(ft            
X .\e" A "flat" is what in music stands for lowering the current
X .\e" tone. If that not is clear, consider a | (pipe character) with
X .\e" an small circle attached to it on the left bottom side.
X .\e" A define in the style of
X .\e"     .ds \eo'|o'     
X .\e" will do if you don't have anything more than a lineprinter around.
X .\e" If you want to be really fancy, you might want to try
X .\e" something like:    
X .\e" .nr x \ew'o'/2u     
X .\e" .nr y .2m          
X .\e" .ds ft \ev'-\enyu'\ez|\eh'\enxu'\ev'\enyu'\eS'-9'o\eS'0'
X .\e" Fancy ain't it?    
X.DE
X.ft 1
XSo the rest of your article will look (at the input side) as:
X.DS
X.ft CW
X An escape (denoted by \e*(ft) in troff will introduce a two
X character name XX by \e*(ft( (so \e*(ft(XX) and a two character
X named QQ string interpolation will be triggered
X by \e*(ft*( (\e*(ft*(QQ).
X.DE
X.NH
XThe future
X.PP
XNew versions of
X.I troff
Xinclude a more forms of naming characters.
XBoth \f3\eC\'\f2arbitray\ long\ name\f3\'\f1 and
X\f3\eN\'\f2absolute\ Number\ of\ character\ in\ current\ font\f3\'\f1
Xare used.
XThe first allows character names of arbitrary length.
XThe latter allows unnnamed characters.
XThis does not solve the problems discussed in this article.
XWorse, it will even be harder to choose names upon which
Xa sizeable number of people will agree.
X.NH
XBibliography
X.LP
X.[
X$LIST$
X.]
X.bp
X.NH
XThe character set
X.LP
X.so specchar
+ END-OF-FILE extchar
chmod 'u=r,g=r,o=r' 'extchar'
set `wc -c 'extchar'`
count=$1
case $count in
12207)	:;;
*)	echo 'Bad character count in ''extchar' >&2
		echo 'Count should be 12207' >&2
esac
echo Extracting 'spec'
sed 's/^X//' > 'spec' << '+ END-OF-FILE ''spec'
XWe divided the new characters in four categories.
XEach character is mentioned only once.
XWhenever we doubted we tried to place a character in the category we thought was
Xmost suitable. Lastly we included the characters from Ossanna's 
Xtroff document for reference.
X.NH 2
XSymbols from ISO 646 standards
X.LP
X.TS
Xsh		sharp
XYe		Yen
XCs		Currency sign
XDo		Dollar
XPo		English pound
Xat		at sign
XlB		left square bracket
Xrs		backslash
XrB		right square bracket
Xha		hat or accent circumflex
XlC		left curly bracket
XrC		right curly bracket
Xba		bar (possibly broken)
Xti		tilde
Xa"		accent double quote
XAE		AE
X/O		O slash
XoA		A circle
Xae		ae
X/o		o slash
Xoa		a circle
X:A		A diaeresis
X:O		O diaeresis
X:U		U diaeresis
X'e		e acute accent
X:a		a diaeresis
X:o		o diaeresis
X:u		u diaeresis
Xss		German ringel S
X`a		a grave accent
X,c		c cedilla
X`e		e grave accent
X`u		u grave accent
X`o		o grave accent
X`i		i grave accent
Xr!		reverse !
X~N		N tilde
Xr?		reverse ?
X~n		n tilde
X~a		a tilde
X^a		a hat
X,C		C cedilla
X^e		e hat
X^i		i hat
X~o		o tilde
X^u		u hat
X'E	\*('E	E acute accent
X'A	\*('A	A acute accent
X'a		a acute accent
X'i		i acute accent
X'c	\*('c	c acute accent
X'C	\*('C	C acute accent
X~O	\*(~O	O tilde
X~A	\*(~A	A tilde
X-d		d bar
X-D		Capital Icelandic Eth (D) / D bar
X.TE
X.ne 10
X.NH 2
XSymbols from ISO 8859 standards
X.LP
X.TS
XSd		small Icelandic eth (d)
X/l		Polish l
X/L		Polish L
XTp		Small Icelandic Thorn
XTP		Capital Icelandic Thorn
Xbb		broken bar
XS1	\h'0.9n'\v'-1n'\s-3\&1\s0\v'1n'	superscript 1
XS2	\h'0.9n'\v'-1n'\s-3\&2\s0\v'1n'	superscript 2
XS3	\h'0.9n'\v'-1n'\s-3\&3\s0\v'1n'	superscript 3
X:e		e diaeresis
X`E		E grave accent
X'o		o acute accent
X^o		o hat
X'u		u acute accent
XOf		feminin ordinator indicator
XOm		masculin ordinator indicator
XFo		double french open quote
XFc		double french close quote
Xac		accent cedilla
Xad		accent diaeresis
Xps		english paragraph sign
X:i		i diaeresis
X12		one half
X14		one quart
X34		three quart
Xmd		centered dot
Xno		not
X.TE
X.ne 10
X.NH 2
XTypographical characters
X.LP
X.TS
Xab		accent breve
Xao		accent corona
Xah		accent ha\o'c\(ah'ek
Xa.		accent dot
Xho		hook
X.i		dotless i
X.j		dotless j
Xfo		french open quote
Xfc		french close quote
XIJ	IJ	ligature IJ
Xij		ligature ij
Xtm		Trade Mark
Xoq		open quote
Xoe		French oe
XOE		French OE
XOK		check mark
X.TE
X.ne 20
X.NH 2
XMathematical characters
X.LP
X.TS
X%0		per mille
X-h		h bar
Xsd		second sign
Xc+		circle plus
Xc*		circle times
X>~		approximately greater
X<~		approximately less
X<<		much less
X>>		much greater
X=~		approximately equal
XOR		logical or
XAN		logical and
Xfa		for all
Xte		there exists
X3d		therefore
Xpp		perpendicular to
X/_		angle
X!<		not less
X!>		not greater
Xnm		not a member
Xcn		contains
Xnc		does not contain
X~~		approximately
XAh		Aleph
Xne		not equivalent
X-+		minus plus
X.TE
X.NH 2
XSymbols from the Troff manual by Ossanna.
X.LP
X.TS
Xem		3/4 Em dash
Xhy		hyphen
Xbu		bullet
Xsq		square
Xru		rule
X14		1/4
X12		1/2
X34		3/4
Xfi		fi
Xfl		fl
XFi		ffi
Xff		ff
XFl		ffl
Xde		degree
Xdg		dagger
Xfm		foot mark
Xct		cent sign
Xrg		registered
Xco		copyright
Xpl		math plus
Xmi		math minus
Xeq		math equals
X**		math star
Xsc		section
Xaa		acute accent
Xga		grave accent
Xul		underline
Xsl		slash (matching backslash)
X*a		alpha
X*b		beta
X*g		gamma
X*d		delta
X*e		epsilon
X*z		zeta
X*y		eta
X*h		theta	
X*i		iota
X*k		kappa
X*l		lambda
X*m		mu
X*n		nu
X*c		xi
X*o		omricron
X*p		pi
X*r		rho
X*s		sigma
Xts		terminal sigma
X*t		tau
X*u		upsilon
X*f		phi
X*x		chi
X*q		psi
X*w		omega
X*A		Alpha
X*B		Beta
X*G		Gamma
X*D		Delta
X*E		Epsilon
X*Z		Zeta
X*Y		Eta
X*H		Theta	
X*I		Iota
X*K		Kappa
X*L		Lambda
X*M		Mu
X*N		Nu
X*C		Xi
X*O		Omricron
X*P		Pi
X*R		Rho
X*S		Sigma
X*T		Tau
X*U		Upsilon
X*F		Phi
X*X		Chi
X*Q		Psi
X*W		Omega
Xsr		square root
Xrn		root en extender
X>=		>=
X<=		<=
X==		identical equal
X~=		approx =
Xap		approximates
X!=		not equal
X->		right arrow
X<-		left arrow
Xua		up arrow
Xda		down arrow
Xmu		multiply
Xdi		divide
X+-		plus-minus
Xcu		cup (union)
Xca		cap (intersection)
Xsb		subset of
Xsp		superset of
Xib		improper subset
Xip		improper superset
Xif		infinity
Xpd		partial deriative
Xgr		gradient
Xnp		not
Xis		integral sign
Xpt		proportional to
Xes		empty set
Xmo		member of
Xbr		box vertical rule
Xdd		double dagger
Xrh		right hand
Xlh		left hand
Xbs		Bell System logo
Xor		or
Xci		circle
Xlt		left top of big curly bracket
Xlb		left bottom
Xrt		right top
Xrb		right bottom
Xlk		left center
Xrk		right center
Xbv		bold verticel
Xlf		left floor
Xrf		right floor
Xlc		left ceiling
Xrc		right ceiling
X.TE
+ END-OF-FILE spec
chmod 'u=r,g=r,o=r' 'spec'
set `wc -c 'spec'`
count=$1
case $count in
4339)	:;;
*)	echo 'Bad character count in ''spec' >&2
		echo 'Count should be 4339' >&2
esac
echo Extracting 'nicetr'
sed 's/^X//' > 'nicetr' << '+ END-OF-FILE ''nicetr'
Xawk 'BEGIN {
X	print ".tr '"'"'\\'"'"'`\\`"
X	print ".vs 12p"
X	print ".ps 10"
X	FS="	"
X}
X/^.TS/ {
X	print ".TS H"
X	print "lw(1c) lw(1c) lw(5c) lw(1c) lw(1c) lw(5c)."
X	print "\\f3Char\\fP\t\\f3Name\\fP\t\t\\f3Char\\fP\t\\f3Name\\fP"
X	print ""
X	print ".TH"
X	tabling=1
X	no_entries=0
X}
X/^.TE/ {
X	tabling=0
X	if ( no_entries%2==1 ) printf "\n"
X}
Xtabling==1 && $1!=".TS" {
X  no_entries +=1
X  if ( $2=="" ) {
X	printf "\\(%s\t\\e(%s\t%s", $1, $1, $3
X  } else {
X	printf "%s\t\\e(%s\t%s", $2, $1, $3
X  }
X  if ( no_entries%2==0 ) printf "\n"
X  else printf "\t"
X}
Xtabling==0
XEND {
Xprint ".tr '"''"'``"
Xprint ".ps 10"
X}
X' $* | tbl
+ END-OF-FILE nicetr
chmod 'u=r,g=r,o=r' 'nicetr'
set `wc -c 'nicetr'`
count=$1
case $count in
613)	:;;
*)	echo 'Bad character count in ''nicetr' >&2
		echo 'Count should be 613' >&2
esac
echo Extracting 'tmac.la'
sed 's/^X//' > 'tmac.la' << '+ END-OF-FILE ''tmac.la'
X.de la		
X.\" languages - keld@dkuug.dk & storm@dkuug.dk
X.\" Covers all ECMA registrered versions of ISO 646
X.\" Countries according to ISO 3166
X.\" Commented is registered ECMA char code and standard number
X.fl
X.ie \\n(.$=0 .ds )L \\*(=L
X.el .ds )L \\$1
X.ds =L \\*(LA
X.ds LA \\*()L
X.rm )L
X.if "\\*(LA"DK"  .tr #\(sh$\(Do@\(at[\(AE\\\\\(/O]\(oA^\(ha\`\(ga{\(ae|\(/o}\(oa~\(ti  \"   DS 2089
X.if "\\*(LA"US"  .tr #\(sh$\(Do@\(at[\(lB\\\\\(rs]\(rB^\(ha\`\(ga{\(lC|\(ba}\(rC~\(ti  \" B X3.4-1968
X.if "\\*(LA"ISO" .tr #\(sh$\(Cs@\(at[\(lB\\\\\(rs]\(rB^\(ha\`\(ga{\(lC|\(ba}\(rC~\(rn  \" @ IRV
X.if "\\*(LA"GB"  .tr #\(Po$\(Do@\(at[\(lB\\\\\(rs]\(rB^\(ha\`\(ga{\(lC|\(ba}\(rC~\(rn  \" A BS 4730
X.if "\\*(LA"DE"  .tr #\(sh$\(Do@\(sc[\(:A\\\\\(:O]\(:U^\(ha\`\(ga{\(:a|\(:o}\(:u~\(ss  \" K DIN 66 003
X.if "\\*(LA"FR"  .tr #\(Po$\(Do@\(`a[\(de\\\\\(,c]\(sc^\(ha\`\(mu{\('e|\(`u}\(`e~\(ad  \" f NF Z 62-010 (1982)
X.if "\\*(LA"CN"  .tr #\(sh$\(Ye@\(at[\(lB\\\\\(rs]\(rB^\(ha\`\(ga{\(lC|\(ba}\(rC~\(rn  \" T GB 1988-80
X.if "\\*(LA"JP"  .tr #\(sh$\(Do@\(at[\(lB\\\\\(Ye]\(rB^\(ha\`\(ga{\(lC|\(ba}\(rC~\(rn  \" n JIS C 6229-1984
X.if "\\*(LA"IT"  .tr #\(Po$\(Do@\(sc[\(de\\\\\(,c]\('e^\(ha\`\(`u{\(`a|\(`o}\(`e~\(`i  \" Y
X.if "\\*(LA"ES"  .tr #\(Po$\(Do@\(sc[\(r!\\\\\(~N]\(r?^\(ha\`\(ga{\(de|\(~n}\(,c~\(ti  \" Z
X.if "\\*(LA"ES2" .tr #\(sh$\(Do@\(bu[\(r!\\\\\(~N]\(,C^\(r?\`\(ga{\(aa|\(~n}\(,c~\(ad  \" h
X.if "\\*(LA"PT"  .tr #\(sh$\(Do@\(sc[\(~A\\\\\(,C]\(~O^\(ha\`\(ga{\(~a|\(,c}\(~o~\(de  \" L
X.if "\\*(LA"PT2" .tr #\(sh$\(Do@\(aa[\(~A\\\\\(,C]\(~O^\(ha\`\(ga{\(~a|\(,c}\(~o~\(ti  \" g
X.if "\\*(LA"HU"  .tr #\(sh$\(Cs@\('A[\('E\\\\\(:O]\(:U^\(ha\`\('a{\('e|\(:o}\(:u~\(a"  \" i MSZ 7795/3
X.if "\\*(LA"NO"  .tr #\(sh$\(Do@\(at[\(AE\\\\\(/O]\(oA^\(ha\`\(ga{\(ae|\(/o}\(oa~\(rn  \" ` NS 4551 - 1
X.if "\\*(LA"NO2" .tr #\(sc$\(Do@\(at[\(AE\\\\\(/O]\(oA^\(ha\`\(ga{\(ae|\(/o}\(oa~\(bv  \" a NS 4551 - 2
X.if "\\*(LA"SE"  .tr #\(sh$\(Cs@\(at[\(:A\\\\\(:O]\(oA^\(ha\`\(ga{\(:a|\(:o}\(oa~\(rn  \" G SEN 850200 B
X.if "\\*(LA"SE2" .tr #\(sh$\(Cs@\('E[\(:A\\\\\(:O]\(oA^\(:U\`\('e{\(:a|\(:o}\(oa~\(:u  \" H SEN 850200 C
X.if "\\*(LA"FI"  .tr #\(sh$\(Do@\(at[\(:A\\\\\(:O]\(oA^\(ha\`\(ga{\(:a|\(:o}\(oa~\(ti
X.if "\\*(LA"JS"  .tr #\(sh$\(Do@\(vZ[\(vS\\\\\(-D]\('C^\(vC\`\(vz{\(vs|\(-d}\(vc~\('c  \" z JUS I.B1.002
X..
+ END-OF-FILE tmac.la
chmod 'u=r,g=r,o=r' 'tmac.la'
set `wc -c 'tmac.la'`
count=$1
case $count in
2287)	:;;
*)	echo 'Bad character count in ''tmac.la' >&2
		echo 'Count should be 2287' >&2
esac
echo Extracting 'pchdefs'
sed 's/^X//' > 'pchdefs' << '+ END-OF-FILE ''pchdefs'
X.\" The following characters are not defined on the Agfa P400 printer
X.ds 'E E\h'-\w"E"u-\w"\(aa"u/2u'\v'-.19m'\(aa\v'.19m'
X.ds 'A A\h'-\w"A"u-\w"\(aa"u/2u'\v'-.19m'\(aa\v'.19m'
X.ds ~A A\h'-\w"A"u-\w"\(ti"u/2u'\v'-.19m'\(ti\v'.19m'
X.ds ~O O\h'-\w"O"u-\w"\(ti"u/2u'\v'-.19m'\(ti\v'.19m'
X.ds 'C C\h'-\w"C"u-\w"\(aa"u/2u'\v'-.19m'\(aa\v'.19m'
X.ds 'c c\h'-\w"c"u-\w"\(aa"u/2u'\v'-.19m'\(aa\v'.19m'
X.\" .ds vS S\h'-\w"S"u-\w"\(ah"u/2u'\v'-.19m'\(ah\v'.19m'
X.\" .ds vs s\h'-\w"s"u-\w"\(ah"u/2u'\v'-.19m'\(ah\v'.19m'
X.\" .ds vc c\h'-\w"c"u-\w"\(ah"u/2u'\v'-.19m'\(ah\v'.19m'
X.\" .ds vC C\h'-\w"C"u-\w"\(ah"u/2u'\v'-.19m'\(ah\v'.19m'
X.\" .ds vZ Z\h'-\w"Z"u-\w"\(ah"u/2u'\v'-.19m'\(ah\v'.19m'
X.\" .ds vz z\h'-\w"z"u-\w"\(ah"u/2u'\v'-.19m'\(ah\v'.19m'
X.\" .ds -D D\h'-\w"D"u-\w"\(hy"u/2u'\v'-.19m'\(hy\v'.19m'
X.\" .ds -d d\h'-\w"d"u-\w"\(hy"u/2u'\v'-.19m'\(hy\v'.19m'
+ END-OF-FILE pchdefs
chmod 'u=r,g=r,o=r' 'pchdefs'
set `wc -c 'pchdefs'`
count=$1
case $count in
858)	:;;
*)	echo 'Bad character count in ''pchdefs' >&2
		echo 'Count should be 858' >&2
esac
echo Extracting 'typesetting'
sed 's/^X//' > 'typesetting' << '+ END-OF-FILE ''typesetting'
X%T Adventures with Typesetter\-Independent TROFF
X%A Mark Kahrs
X%A Lee Moore
X%R TR 159
X%C Rochester, NY
X%D June, 1985
X%I University of Rochester
X
X%A J. F. Ossanna
X%T NROFF/TROFF User's Manual
X%D October 1976
X%R Comp. Sci. Tech. Rep. 54
X%I Bell Laboratories
X%C Murray Hill, NJ
X
X%A B.W. Kernighan
X%T A typesetter-independent TROFF
X%D March 1982
X%R Comp. Sci. Tech. Rep. 97
X%I Bell Laboratories
X%C Murray Hill, NJ
X
X%A J. Akkerhuis
X%T Unknown
X%J Proceedings of the European Unix\(tm System User Group Autumn Meeting
X%D 7-9 september 1981
+ END-OF-FILE typesetting
chmod 'u=rw,g=r,o=r' 'typesetting'
set `wc -c 'typesetting'`
count=$1
case $count in
533)	:;;
*)	echo 'Bad character count in ''typesetting' >&2
		echo 'Count should be 533' >&2
esac
exit 0
Technical Details
Message-ID: <keld.662160379@dkuugin>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!clyde.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!dkuug!dkuugin!keld
References: <1990Dec17.210354.1626@cbnewsl.att.com> <7625@castle.ed.ac.uk> <1990Dec20.012516.23623@ico.isc.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!clyde.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!dkuug!dkuugin!keld
From: keld@login.dkuug.dk (Keld J|rn Simonsen)
Newsgroups: comp.text
Subject: Re: International character set requirements needed
Message-ID: <keld.662160379@dkuugin>
Date: 25 Dec 90 21:26:19 GMT
References: <1990Dec17.210354.1626@cbnewsl.att.com> <7625@castle.ed.ac.uk> <1990Dec20.012516.23623@ico.isc.com>
Sender: news@slyrf.dkuug.dk
Lines: 898