TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My understanding of the use of a \CharacterTable in .dtx files is that it provides a visual check that the file was transmitted properly and there were no issues with character encodings.

Is it still necessary? I notice quite a few class and package authors include it after the \endinput line in order to minimize the visual clutter at the beginning of the file. Is this considered good practice?

share|improve this question
up vote 14 down vote accepted

Today files are typically distributed over HTTP and FTP, not e-mail or similar services that have to encode and decode binary (or even text) data. So, character translation failure is much less likely, and \CharacterTable could safely be omitted in modern packages. However, it does occasionally catch random errors.

You shouldn't put it after \endinput, because it is intended to be processed by doc (which compares the table to a valid one), not just visually examined by the reader.

Additional note: some people prefer not to put the table in the generated file (because it is almost of no use there), and thus don't prefix the table lines with %%, but with a mere %.

share|improve this answer
Thanks for your answer. I had a good look at the link you provided and although it proved useful in the question that you linked, it actually caught a bad practice (by polyglossia) rather than a corrupted character. In the doc manual it describes a macro CharTableChanges that one needs to set up if there are any catcodes that deviate from normal TeX catcodes. In the memoir class the \CharacterTable is after the input and that prompted my question. I was puzzled because I have such a big respect for Peter Wilson in anything TeX related. – Yiannis Lazarides Jan 28 '12 at 18:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.