<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&amp;
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \&lt;
%%   Equals        \=     Greater than  \&gt;     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%\iffalse
%
% (c) copyright 2006 A Syropoulos &amp; RWD Nickalls
% This program can be redistributed and/or modified under the terms
% of the LaTeX Project Public License Distributed from CTAN
% archives in directory macros/latex/base/lppl.txt; either
% version 1 of the License, or any later version.
%
% Please report errors or suggestions for improvement to
%    
%    Apostolos Syropoulos	and/or Dick Nickalls
%    asyropoulos@yahoo.com	dicknickalls@compuserve.com
%
%\fi
% \CheckSum{286}
% \iffalse This is a Metacomment
%
%&lt;ascii, &gt;\ProvidesFile{ascii.sty}
%
%&lt;ascii, &gt;  [2006/05/30 v2.0 Package `ascii.sty']
%
%    \begin{macrocode}
%&lt;*driver&gt;
\documentclass{ltxdoc}
\usepackage{ascii,fullpage}
\GetFileInfo{ascii.drv}
\begin{document}
   \DocInput{ascii.dtx}
\end{document}
%&lt;/driver&gt;
%    \end{macrocode}
% \fi
%\StopEventually{}
%\MakeShortVerb{\|}
%\title{The `ascii' package}
%\author{A. Syropoulos and R.W.D. Nickalls}
% \date{2006/05/30}
%\maketitle
% \begin{abstract}
% The \textsf{ascii} package provides glyph and font access commands so
% that \LaTeX\ users can use the ASCII font in their documents. The ASCII font
% is encoded according to the {\em IBM PC Code Page 437 C0 Graphics}. This
% package replaces any early \LaTeX2.09 package and "font" by R. Ramasubramanian and
% R.W.D. Nickalls.   
% symbols.  
%\end{abstract}
%
% \section{Introduction}
% In a number of documents it is quite useful to be able to use the graphical
% representation of the first 32 ASCII characters as these have been defined
% in the {\em IBM PC Code Page 437 C0 Graphics}. For this reason, in 1993 R. Ramasubramanian and 
% R.W.D. Nickalls implemented the \textsf{ascii} package and provided a font so to allow
% \LaTeX\ users to typeset the graphical representation of these characters. The present package
% is a rewrite of the original package that relies on a new Type~1 font designed from scratch.
% Naturally, the new package uses the NFSS to provide access to the accompanying font.  
% 
% Table~\ref{tab:1} shows the
% the graphical representation of the various ASCII control characters. Notice
% that these graphical representations are now part of the Unicode standard
% as individual characters, which, however, do not represent the actual control
% characters. In other words, the visual representations of the the control characters are now 
% Unicode characters. In addition, the new font included a visual representation of the
% ``NO BREAK SPACE'' character, since it is practically a font ``implementing'' the 
% ISO8859-7 character set.
% 
% To access the control characters one can use the commands of the following
% table:
% \begin{center}
%  \begin{tabular}{cccc}\hline
%    Command  &amp; ASCII &amp; Command      &amp; ASCII \\ \hline 
% \verb|\SOH| &amp; 0x1   &amp; \verb|\DCa|  &amp; 0x11 \\
% \verb|\STX| &amp; 0x2   &amp; \verb|\DCb|  &amp; 0x12 \\
% \verb|\ETX| &amp; 0x3   &amp; \verb|\DCc|  &amp; 0x13 \\
% \verb|\EOT| &amp; 0x4   &amp; \verb|\DCd|  &amp; 0x14 \\
% \verb|\ENQ| &amp; 0x5   &amp; \verb|\NAK|  &amp; 0x15 \\
% \verb|\ACK| &amp; 0x6   &amp; \verb|\SYN|  &amp; 0x16 \\
% \verb|\BEL| &amp; 0x7   &amp; \verb|\ETB|  &amp; 0x17 \\
% \verb|\BS|  &amp; 0x8   &amp; \verb|\CAN|  &amp; 0x18 \\
% \verb|\HT|  &amp; 0x9   &amp; \verb|\EM|   &amp; 0x19 \\
% \verb|\LF|  &amp; 0xA   &amp; \verb|\SUB|  &amp; 0x1A \\
% \verb|\VT|  &amp; 0xB   &amp; \verb|\ESC|  &amp; 0x1B \\
% \verb|\FF|  &amp; 0xC   &amp; \verb|\FS|   &amp; 0x1C \\
% \verb|\CR|  &amp; 0xD   &amp; \verb|\GS|   &amp; 0x1D \\
% \verb|\SO|  &amp; 0xE   &amp; \verb|\RS|   &amp; 0x1E \\
% \verb|\SI|  &amp; 0xF   &amp; \verb|\US|   &amp; 0x1F \\
% \verb|\DEL| &amp; 0x10  &amp; \verb|\DEL|  &amp; 0x7F \\ 
% \verb|\NUL| &amp; 0x0   &amp; \verb|\NBSP| &amp; 0x20 \\ 
%\hline
%  \end{tabular}
% \end{center}
% Unfortunately, the standard glyph access commands for the various special
% \LaTeX\ symbols do not give the expected results and, so, we had to define
% a number of commands to provide access to these special glyphs. These
% commands are shown below:
%\begin{center}
%\begin{tabular}{lc}\hline
%Command                 &amp; Character \\ \hline
%\verb|\asciihash|       &amp; \asciihash\\
%\verb|\asciipercent|    &amp; \asciipercent\\
%\verb|\asciicircum|     &amp; \asciicircum\\
%\verb|\asciitilde|      &amp; \asciitilde\\
%\verb|\asciilbrace|     &amp; \asciilbrace\\
%\verb|\asciidollar|     &amp; \asciidollar\\
%\verb|\asciiampersand|  &amp; \asciiampersand\\
%\verb|\asciiunderscore| &amp; \asciiunderscore\\
%\verb|\asciibackslash|  &amp; \asciibackslash\\
%\verb|\asciirbrace|     &amp; \asciirbrace\\ 
%\verb|\asciispace|      &amp; \asciispace\\
%\verb|\asciivert|       &amp; \asciivert\\
%\verb|\splitvert|       &amp; \splitvert\\
%\verb|\isosplitvert|    &amp; \isosplitvert\\
%\verb|\asciiquotedbl|   &amp; \asciiquotedbl\\
%\verb|\asciiquotegrave| &amp; \asciiquotegrave\\
%\verb|\asciiquoteacute| &amp; \asciiquoteacute\\\hline
%\end{tabular}
%\end{center}
% The reader should be aware that all these glyph access commands have been implemented 
% using the \textsf{xspace} package and, thus, one does need to take any special 
% precaution when using them. In addition, if someone wishes to typeset Greek text using
% this package, he/she needs to use a Greek keyboard as there are no special glyph access
% commands for the ``Greek'' characters of ISO8859-7.
%
% The command \verb|\textascii| is a font switching command and its argument is
% typeset using the ASCII font.
%\begin{table}
%\begin{center}
%\begin{tabular}{crlc}\hline\hline
%  Code &amp; IBM &amp;  Unicode Name          &amp; Glyph\\ \hline\hline          
%  2400 &amp;  00 &amp;  NUL                   &amp; \textascii{\char"00}\\               
%  263A &amp;  01 &amp;  White smiling face    &amp; \textascii{\char"01}\\   
%  263B &amp;  02 &amp;  Black smiling face    &amp; \textascii{\char"02}\\   
%  2665 &amp;  03 &amp;  Black heart suit      &amp; \textascii{\char"03}\\      
%  2666 &amp;  04 &amp;  Black diamond suit    &amp; \textascii{\char"04}\\   
%  2663 &amp;  05 &amp;  Black club suit       &amp; \textascii{\char"05}\\      
%  2660 &amp;  06 &amp;  Black space suit      &amp; \textascii{\char"06}\\     
%  2022 &amp;  07 &amp;  Bullet                &amp; \textascii{\char"07}\\               
%  25D8 &amp;  08 &amp;  Inverse bullet        &amp; \textascii{\char"08}\\       
%  25EF &amp;  09 &amp;  Large circle          &amp; \textascii{\char"09}\\         
%  25D9 &amp;  0A &amp;  Inverse white circle  &amp; \textascii{\char"0A}\\ 
%  2642 &amp;  0B &amp;  Male sign             &amp; \textascii{\char"0B}\\            
%  2640 &amp;  0C &amp;  Female sign           &amp; \textascii{\char"0C}\\          
%  266A &amp;  0D &amp;  Eighth note           &amp; \textascii{\char"0D}\\          
%  266C &amp;  0E &amp;  Beamed 16th notes     &amp; \textascii{\char"0E}\\    
%  263C &amp;  0F &amp;  White sun with rays   &amp; \textascii{\char"0F}\\   
%  25BA &amp;  10 &amp;  Black right-pointing pointer &amp; \textascii{\char"10}\\
%  25C4 &amp;  11 &amp;  Black left-pointing pointer  &amp; \textascii{\char"11}\\
%  2195 &amp;  12 &amp;  Up down arrow          &amp; \textascii{\char"12}\\
%  203C &amp;  13 &amp;  Double exclamation mark &amp; \textascii{\char"13}\\
%  00B6 &amp;  14 &amp;  Pilcrow sign          &amp; \textascii{\char"14}\\
%  00A7 &amp;  15 &amp;  Section sign          &amp; \textascii{\char"15}\\
%  25AC &amp;  16 &amp;  Black rectangle       &amp; \textascii{\char"16}\\
%  21A8 &amp;  17 &amp;  Up down arrow with base &amp; \textascii{\char"17}\\
%  2191 &amp;  18 &amp;  Upwards arrow         &amp; \textascii{\char"18}\\
%  2193 &amp;  19 &amp;  Downwards arrow       &amp; \textascii{\char"19}\\
%  2192 &amp;  1A &amp;  Rightwards arrow      &amp; \textascii{\char"1A}\\
%  2190 &amp;  1B &amp;  Leftwards arrow       &amp; \textascii{\char"1B}\\
%  2319 &amp;  1C &amp;  Turned not sign       &amp; \textascii{\char"1C}\\
%  2194 &amp;  1D &amp;  Left right arrow      &amp; \textascii{\char"1D}\\
%  25B2 &amp;  1E &amp;  Black up-pointing triangle &amp; \textascii{\char"1E}\\
%  25BC &amp;  1F &amp;  Black down-pointing triangle &amp; \textascii{\char"1F}\\
%  00A0 &amp;  -- &amp;  NO BREAK SPACE        &amp; \textascii{\char"A0}\\\hline 
%\end{tabular}
%\end{center}
% \caption{The graphical representation of the first 32 ASCII characters 
%          provided by the ASCII font.}\label{tab:1}
%\end{table}
%
% \section{The Source Code}
% The first thing we need to do is to define a new font family and the relevant
% font substitutions. 
%    \begin{macrocode}
%&lt;*ascii&gt;
\DeclareFontFamily{U}{ascii}{\hyphenchar \font\m@ne}
\DeclareFontShape{U}{ascii}{m}{n}{
   &lt;-&gt; ASCII}{}
\DeclareFontShape{U}{ascii}{m}{sl}{
   &lt;-&gt; ssub * ascii/m/n}{}
\DeclareFontShape{U}{ascii}{m}{it}{
   &lt;-&gt; ssub * ascii/m/n}{}
\DeclareFontShape{U}{ascii}{m}{sc}{
   &lt;-&gt; ssub * ascii/m/n}{}
\DeclareFontShape{U}{ascii}{bx}{n}{
   &lt;-&gt; ssub * ascii/m/n}{}
\DeclareFontShape{U}{ascii}{bx}{sl}{
   &lt;-&gt; ssub * ascii/m/n}{}
\DeclareFontShape{U}{ascii}{bx}{it}{
   &lt;-&gt; ssub * ascii/m/n}{}
\DeclareFontShape{U}{ascii}{bx}{sc}{
   &lt;-&gt; ssub * ascii/m/n}{}
%    \end{macrocode}
% Now we need to define a font access command:
%    \begin{macrocode}
\def\asciifamily{\fontencoding{U}\fontfamily{ascii}\selectfont}
\long\def\textascii#1{{\asciifamily #1}}
%    \end{macrocode}
% The next step is to define glyph access commands for the first 32 glyphs
% of the font and the various special \TeX\ characters. 
%    \begin{macrocode}
\RequirePackage{xspace}
\def\NUL{{\asciifamily\char"00}\xspace}
\def\SOH{{\asciifamily\char"01}\xspace}
\def\STX{{\asciifamily\char"02}\xspace}
\def\ETX{{\asciifamily\char"03}\xspace}
\def\EOT{{\asciifamily\char"04}\xspace}
\def\ENQ{{\asciifamily\char"05}\xspace}
\def\ACK{{\asciifamily\char"06}\xspace}
\def\BEL{{\asciifamily\char"07}\xspace}
\def\BS{{\asciifamily\char"08}\xspace}
\def\HT{{\asciifamily\char"09}\xspace}
\def\LF{{\asciifamily\char"0A}\xspace}
\def\VT{{\asciifamily\char"0B}\xspace}
\def\FF{{\asciifamily\char"0C}\xspace}
\def\CR{{\asciifamily\char"0D}\xspace}
\def\SO{{\asciifamily\char"0E}\xspace}
\def\SI{{\asciifamily\char"0F}\xspace}
\def\DLE{{\asciifamily\char"10}\xspace}
\def\DCa{{\asciifamily\char"11}\xspace}
\def\DCb{{\asciifamily\char"12}\xspace}
\def\DCc{{\asciifamily\char"13}\xspace}
\def\DCd{{\asciifamily\char"14}\xspace}
\def\NAK{{\asciifamily\char"15}\xspace}
\def\SYN{{\asciifamily\char"16}\xspace}
\def\ETB{{\asciifamily\char"17}\xspace}
\def\CAN{{\asciifamily\char"18}\xspace}
\def\EM{{\asciifamily\char"19}\xspace}
\def\SUB{{\asciifamily\char"1A}\xspace}
\def\ESC{{\asciifamily\char"1B}\xspace}
\def\FS{{\asciifamily\char"1C}\xspace}
\def\GS{{\asciifamily\char"1D}\xspace}
\def\RS{{\asciifamily\char"1E}\xspace}
\def\US{{\asciifamily\char"1F}\xspace}
\def\DEL{{\asciifamily\char'177}\xspace}
\def\NBSP{{\asciifamily\char"A0}\xspace}
\def\asciihash{{\asciifamily\char`\#}\xspace}
\def\asciipercent{{\asciifamily\char`\%}\xspace}
\def\asciicircum{{\asciifamily\char`\^}\xspace}
\def\asciitilde{{\asciifamily\char`\~}\xspace}
\def\asciilbrace{{\asciifamily\char`\{}\xspace}
\def\asciidollar{{\asciifamily\char`\$}\xspace}
\def\asciiampersand{{\asciifamily\char`\&amp;}\xspace}
\def\asciiunderscore{{\asciifamily\char`\_}\xspace}
\def\asciibackslash{{\asciifamily\char`\\}\xspace}
\def\asciirbrace{{\asciifamily\char`\}}\xspace}
\def\asciispace{{\asciifamily\char"20}\xspace}
%    \end{macrocode}
% The following three commands provide access to glyphs that were not included in the
% original font.
%    \begin{macrocode}
\def\asciiquotedbl{{\asciifamily\char"22}\xspace}
\def\asciiquotegrave{{\asciifamily\char"60}\xspace}
\def\asciiquoteacute{{\asciifamily\char"27}\xspace}
%    \end{macrocode}
% In the original \textsf{ascii} package the |\splivert| command was supposed to provide 
% access to the \splitvert character. However, it actually provided access to the
% \asciivert character. To remedy this drawback, we introduced the correct glyph in
% the new font and provided a new command to access this glyph. Needless to say, the
% old command is now an alias to the new command. 
%    \begin{macrocode}
\def\isosplitvert{{\asciifamily\char"A6}\xspace}
\def\asciivert{{\asciifamily\char"7C}\xspace}
\let\splitvert\isosplitvert
%&lt;/ascii&gt;
%    \end{macrocode}
%
% \Finale
</pre></body></html>