Received: by nummer-3.proteosys id <01C19443.4BFEB7EC@nummer-3.proteosys>; Thu, 3 Jan 2002 11:42:10 +0100 In-Reply-To: N.POPPELIER%ELSEVIER.NL@vm.gmd.de's message of Wed, 30 Oct 91 08:10:47 +0000 <9110300909.AA28097@ufer.ZIB-Berlin.DE> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C19443.4BFEB7EC" Organization: Konrad-Zuse-Zentrum fuer Informationstechnik Berlin X-MimeOLE: Produced By Microsoft Exchange V6.5 Return-Path: x-vm-v5-data: ([nil nil nil nil nil nil nil nil nil][nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil]) Content-class: urn:content-classes:message Subject: the language0 flame war Date: Wed, 30 Oct 1991 11:11:49 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: From: "Rainer Schoepf" To: Cc: Status: R X-Status: X-Keywords: X-UID: 432 This is a multi-part message in MIME format. ------_=_NextPart_001_01C19443.4BFEB7EC Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Nico asks: Question from me: I still don't have the latest version of The TeX = Book here. Could someone explain *in all detail* what TeX 3 does with languages, what's special/not special about \language0? For example: = is it true that TeX begins in \language0 at the beginning of every new paragraph (someone told me this at a meeting of the Dutch Users = Group)? No, this is not true. \language0 is special because it is the default if don't change it. Of course, you can change it already before you \dump. There are two new primitive operations: the internal integer \language and \setlanguage<8-bit-integer>. Additionally, TeX has an internal (inaccessible) integer variable c_language, the "current language". Further, there are \lefthyphenmin and \righthyphenmin. What happens exactly depends on the mode you are in. 1. Unrestricted horizontal mode: Whenever TeX sets a character, it compares the values of \language and c_language. If these are different, it inserts a special "setlanguage" whatsit node into the current horizontal list and changes c_language. The "setlanguage" whatsit node records the values of \language, \righthyphenmin, and \lefthyphenmin. 2. Restricted horizontal mode: You have to insert the "setlanguage" whatsits by yourself, using the \setlanguage primitive. This also changes c_language. One effect of this is that the use of \setlanguage in unrestricted horizontal mode doesn't work since the following character inserts another "setlanguage" whatsit that undoes the changes. Please note that \lefthyphenmin and \righthyphenmin do not change when you change \language (an unfortuante decision, in my opinion). Hope this answers the question, Rainer ------_=_NextPart_001_01C19443.4BFEB7EC Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable the language0 flame war

Nico asks:

   Question from me: I still don't have the = latest version of The TeX Book
   here. Could someone explain *in all = detail* what TeX 3 does with
   languages, what's special/not special = about \language0? For example: is
   it true that TeX begins in \language0 at = the beginning of every new
   paragraph (someone told me this at a = meeting of the Dutch Users Group)?

No, this is not true. \language0 is special because it = is the default
if don't change it. Of course, you can change it = already before you
\dump.

There are two new primitive operations: the internal = integer \language
and \setlanguage<8-bit-integer>. Additionally, = TeX has an internal
(inaccessible) integer variable c_language, the = "current language".
Further, there are \lefthyphenmin and = \righthyphenmin.

What happens exactly depends on the mode you are = in.

1. Unrestricted horizontal mode:
Whenever TeX sets a character, it compares the values = of \language
and c_language. If these are different, it inserts a = special
"setlanguage" whatsit node into the current = horizontal list and
changes c_language.  The "setlanguage" = whatsit node records the values
of \language, \righthyphenmin, and = \lefthyphenmin.

2. Restricted horizontal mode:
You have to insert the "setlanguage" = whatsits by yourself, using the
\setlanguage primitive. This also changes = c_language.

One effect of this is that the use of \setlanguage in = unrestricted
horizontal mode doesn't work since the following = character inserts
another "setlanguage" whatsit that undoes = the changes.

Please note that \lefthyphenmin and \righthyphenmin do = not change when
you change \language (an unfortuante decision, in my = opinion).

Hope this answers the question,
  Rainer

------_=_NextPart_001_01C19443.4BFEB7EC--