% \iffalse meta-comment % % hanging.dtx % Author: Peter Wilson, Herries Press % Maintainer: Will Robertson (will dot robertson at latex-project dot org) % Copyright 1998--2004 Peter R. Wilson % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either % version 1.3c of this license or (at your option) any % later version: % % This work has the LPPL maintenance status "maintained". % The Current Maintainer of this work is Will Robertson. % % This work consists of the files listed in the README file. % % %<*driver> \documentclass{ltxdoc} \usepackage{url} \EnableCrossrefs \CodelineIndex \setcounter{StandardModuleDepth}{1} \begin{document} \DocInput{hanging.dtx} \end{document} % % % \fi % % \CheckSum{308} % % \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} % \DoNotIndex{\@centercr,\@cite} % \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} % \DoNotIndex{\@input,\@ixpt,\@m} % \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} % \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} % \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} % \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} % \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} % \DoNotIndex{\advance,\Alph,\alph} % \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} % \DoNotIndex{\bullet} % \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} % \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} % \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} % \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} % \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} % \DoNotIndex{\fbox} % \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} % \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} % \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} % \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} % \DoNotIndex{\input} % \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} % \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} % \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} % \DoNotIndex{\NeedsTeXFormat,\newdimen} % \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} % \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} % \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} % \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} % \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} % \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} % \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} % \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} % \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} % \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} % \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} % \DoNotIndex{\viipt,\vipt,\vskip,\vspace} % \DoNotIndex{\wd,\xiipt,\year,\z@} % % \changes{v1.0}{1998/11/29}{First public release} % \changes{v1.1}{1999/05/01}{Made compatible with ltugboat.cls} % \changes{v1.1a}{1999/07/28}{Added text from Stefan Ulrich} % \changes{v1.2}{2001/03/15}{Added hanging punctuation from Stefan Ulrich} % \changes{v1.2a}{2004/04/22}{Updated license and contact info} % \changes{v1.2b}{2009/09/02}{New maintainer (Will Robertson)} % % \def\dtxfile{hanging.dtx} % \def\fileversion{v1.1a} \def\filedate{1999/07/28} % \def\fileversion{v1.2} \def\filedate{2001/03/15} % \def\fileversion{v1.2a} \def\filedate{2004/04/22} % \def\fileversion{v1.2b} \def\filedate{2009/09/02} % \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package % \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option % \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file % \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter % \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle % \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment % ^^A fake a hangpara for demo purposes % \newcommand{\hpdemo}[2]{\hangindent#1\hangafter#2\noindent} % \newcommand{\Han}{H\`{a}n \ensuremath{\mathrm{Th\acute{\hat{e}}}} Th\`{a}nh} % % \title{The \Lpack{hanging} package\thanks{This % file (\texttt{\dtxfile}) has version number \fileversion, last revised % \filedate.}} % % \author{ % Author: Peter Wilson, Herries Press \\ % Maintainer: Will Robertson \\ % \texttt{will dot robertson at latex-project dot org} % } % \date{\filedate} % \maketitle % \begin{abstract} % The \Lpack{hanging} package provides facilities for defining hanging % paragraphs and hanging punctuation. % \end{abstract} % \tableofcontents % % \StopEventually{} % % % % \section{Introduction} % % \hpdemo{3em}{2}Some authors may wish to use hanging paragraphs in % their documents. % Normally only the first line of a paragraph is indented. A hanging paragraph % is a paragraph like this one where lines other than the first have indentation. % Other authors might wish to use hanging punctuation. % In this style of typesetting punctuation marks that come at either the % start or end of a line are typeset outside the normal text block. % % The \Lpack{hanging} package provides facilities for both hanging paragraphs % and hanging punctuation. % % This manual is typeset according to the conventions of the % \LaTeX{} \textsc{docstrip} utility which enables the automatic % extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. % % Section~\ref{sec:usc} describes the usage of the package. % Commented source code for the package is in Section~\ref{sec:code}. % % \section{The \Lpack{hanging} package} \label{sec:usc} % % \subsection{Hanging paragraphs} % % The \Lpack{hanging} package provides a command for producing % a single hanging paragraph and an environment for typesetting % a series of hanging paragraphs. % % \DescribeMacro{\hangpara} % The command |\hangpara{|\meta{indent}|}{|\meta{afternum}|}| % placed at the start of a paragraph will cause it to be typeset % as a hanging paragraph. % % The \meta{indent} argument specifies the % amount of indentation. The value must be a length. A positive % value will indent the left hand side of the paragraph and a negative % value will cause the right hand side of the text to be indented. % % \hpdemo{3em}{-2}The \meta{afternum} argument controls the number of % lines that will % be indented. The value can be a positive or negative integer, say $N$. % If $N > 0$ then lines \emph{after} the $N^{th}$ line (i.e., lines $N+1$ % and onwards) will be indented. If $N < 0$ % then the first $N$ lines will be indented. This paragraph has been % typeset according to the specification |\hangpara{3em}{-2}| whereas % the first paragraph in the Introduction was typeset according % to |\hangpara{3em}{2}|. % % A word of caution: There must be no linebreak between the |\hangpara| % command and the start of the paragraph text. Either put the command % at the start of the paragraph text, or on the previous line with a % following \%. % % \DescribeEnv{hangparas} % The |hangparas| environment can be used for typeseting a sequence of % hanging paragraphs. The environment takes the same two arguments as the % |\hangpara| command. That is,\\ % |\begin{hangparas}{|\meta{indent}|}{|\meta{afternum}|}|. % % Another word of caution: The |hangparas| environment changes the definition % of |\everypar| and may have unexpected interactions with any enclosed % commands or environments that also change |\everypar|. If this does happen, % then use the |\hangpara| command for the problematic paragraph(s) instead % of the |hangparas| environment. % % \subsection{Hanging punctuation} % % \DescribeEnv{hangpunct} % Text within the |hangpunct| environment will be typeset with hanging % punctuation. Personally, I think that this is more of a curiosity than % anything else. Others disagree and think it is an essential part % of fine typography. % % Use of the environment may have unpleasant side effects as the punctuation % characters are made active (i.e., they act as commands rather than as % glyphs). The hanging punctuation characters are left and right single % and double quotes (|`'|), period (or full stop) (|.|), exclamation % mark (|!|), question mark (|?|), colon and semicolon (|:;|), and % the comma (|,|). % % If you really care about hanging punctuation, \Han's % \texttt{pdf(La)TeX} has built in support via |\pdfprotrudechars|. This % is implemented in the \texttt{pdfTeX} program itself~\cite{HTHESIS}, % so is robust. The \texttt{pdf(La)TeX} system is available from CTAN but % the latest version, if not on CTAN, can be obtained from % \url{ftp://ftp.cstug.cz/pub/tex/lo9cal/cstug/thanh/pdftex}. % % The package takes several options which stop punctuation characters from % being hung. The available options include: % \begin{itemize} % \item[\Lopt{notcomma}] don't hang the comma (|,|) % \item[\Lopt{notperiod}] don't hang the period (full stop) (|.|) % \item[\Lopt{notquote}] don't hang any quote marks (|` `` '' '|) % \item[\Lopt{notquery}] don't hang the question mark (|?|) % \item[\Lopt{notexcl}] don't hang the exclamation mark (|!|) % \item[\Lopt{notcolon}] don't hang the colon (|:|) % \item[\Lopt{notscolon}] don't hang the semicolon (|;|) % \end{itemize} % If none of these options are given then all the available punctuation % marks will be hung. % % There is one other option: % \begin{itemize} % \item[\Lopt{fine}] The default settings for the amount of punctuation % hang correspond to those given by Donald Knuth in the % \textit{TeXbook}~\cite{KNUTH84a}, and are independent of the local % font in use (use \texttt{pdfLaTeX} for font-dependent settings). % Stefan Ulrich\footnote{Private email on 2001/03/14 % (\texttt{ulrich@cis.uni-muenchen.de}).} % suggested a less aggresive hang, which is provided by % the \Lopt{fine} option. This option also stops hanging question and % exclamation marks. % \end{itemize} % % \DescribeMacro{\nhpt} % \DescribeMacro{\nhlq} % \DescribeMacro{\nhrq} % If a non-hanging period, or left or right quote character is required % in it's character form within the |hangpunct| environment, then % respectively the % |\nhpt|, |\nhlq| and |\nhrq| commands can be used. For example, if a % length is to be changed you cannot write: \\ % |\setlength{\mylength}{2.76cm}|. Instead you must code this as: \\ % |\setlength{\mylength}{2\nhpt76cm}|. % % % \section{The package code} \label{sec:code} % % % Announce the name and version of the package, which requires % \LaTeXe. % \begin{macrocode} %<*usc> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{hanging}[2009/09/02 v1.2b hanging paragraphs and punctuation] % \end{macrocode} % % \subsection{Hanging paragraphs} % % \begin{macro}{\hangpara} % The command for a single hanging paragraph. % Just package up the \TeX{} |\hang...| commands, together with % |\noindent| to switch off any existing |\parindent| indentation. % \begin{macrocode} \newcommand{\hangpara}[2]{\hangindent#1\hangafter#2\noindent} % \end{macrocode} % \end{macro} % % \begin{environment}{hangparas} % The environment for typesetting multiple hanging paragraphs. It takes % the same arguments as the |\hangpara| command. At the start, set the % paragraph indent to zero, then change |\everypar| to |\hangpara|. % At the end of the environment make sure that the last paragraph was % finished via |\par|, otherwise the user would have to leave a blank line % or use |\par| explicitly. % \begin{macrocode} \newenvironment{hangparas}[2]{\setlength{\parindent}{\z@} \everypar={\hangpara{#1}{#2}}}{\par} % \end{macrocode} % \end{environment} % % \subsection{Hanging punctuation} % % The code for hanging punctuation is based on the Dirty Tricks example % on page 395 of the \TeX book~\cite{KNUTH84a}. % % I made an experimental attempt to include hanging hyphens, % but this broke too many other things all over the place to be of % practical use. I believe Knuth when he says that % hanging hyphens require a font with a zero-width hyphen. I think that % the basic problem is that the `-' character, as input, represents both % a hyphen and a minus sign; diddling with a hyphen means that the minus % sign is similarly diddled. This package is meant to be independent of the % font, and following Knuth, providing a hanging hyphen is font-dependent. % Fortunately, most of the time \TeX{} manages to avoid hyphens at line ends. % % Stefan Ulrich (\texttt{ulrich@cis.uni-muenchen.de}) pointed out that % the EC fonts include a hyphen with a smaller, but non-zero, width. Using % this then the last non-hyphen character at the end of a hyphenated line % will be a little closer to the margin. To use the smaller EC hyphen, % Stefan suggested doing: % \begin{verbatim} % \usepackage[T1]{fontenc} % \hyphenchar\font=127 % \end{verbatim} % % \begin{macro}{\ifh@ngcomma} % \begin{macro}{\ifh@ngfstop} % \begin{macro}{\ifh@ngquote} % \begin{macro}{\ifh@ngquery} % \begin{macro}{\ifh@ngexcl} % \begin{macro}{\ifh@ngcolon} % \begin{macro}{\ifh@ngscolon} % \begin{macro}{\ifh@ngfine} % We need some booleans for the options. % \changes{v1.1}{1999/05/01}{Added options to switch off hanging particular characters} % \changes{v1.2}{2001/03/15}{Added the fine option.} % \begin{macrocode} \newif\ifh@ngcomma \h@ngcommatrue \newif\ifh@ngfstop \h@ngfstoptrue \newif\ifh@ngquote \h@ngquotetrue \newif\ifh@ngquery \h@ngquerytrue \newif\ifh@ngexcl \h@ngexcltrue \newif\ifh@ngcolon \h@ngcolontrue \newif\ifh@ngscolon \h@ngscolontrue \newif\ifh@ngfine \h@ngfinefalse % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % Now do the options. % % \begin{macrocode} \DeclareOption{notcomma}{\h@ngcommafalse} \DeclareOption{notperiod}{\h@ngfstopfalse} \DeclareOption{notquote}{\h@ngquotefalse} \DeclareOption{notquery}{\h@ngqueryfalse} \DeclareOption{notexcl}{\h@ngexclfalse} \DeclareOption{notcolon}{\h@ngcolonfalse} \DeclareOption{notscolon}{\h@ngscolonfalse} \DeclareOption{fine}{\h@ngfinetrue} \ProcessOptions\relax \ifh@ngfine \h@ngqueryfalse \h@ngexclfalse \fi % \end{macrocode} % % \begin{macro}{\h@ngcommawd} % \begin{macro}{\h@ngfstopwd} % \begin{macro}{\h@ngquotewd} % \begin{macro}{\h@ngdquotewd} % \begin{macro}{\h@ngquerywd} % \begin{macro}{\h@ngexclwd} % \begin{macro}{\h@ngcolonwd} % \begin{macro}{\h@ngscolonwd} % We need some lengths for kerning for each punctuation mark that might be % hung. These are set to the width of the character. % \begin{macrocode} \newlength{\h@ngcommawd} \settowidth{\h@ngcommawd}{,} \newlength{\h@ngfstopwd} \settowidth{\h@ngfstopwd}{.} \newlength{\h@ngquotewd} \settowidth{\h@ngquotewd}{`} \newlength{\h@ngdquotewd} \settowidth{\h@ngdquotewd}{``} \newlength{\h@ngquerywd} \settowidth{\h@ngquerywd}{?} \newlength{\h@ngexclwd} \settowidth{\h@ngexclwd}{!} \newlength{\h@ngcolonwd} \settowidth{\h@ngcolonwd}{:} \newlength{\h@ngscolonwd} \settowidth{\h@ngscolonwd}{;} % \end{macrocode} % % These values are changed if the \Lopt{fine} option is given. The following % is by courtesy of Stefan Ulrich. % \begin{macrocode} \ifh@ngfine \setlength{\h@ngcommawd}{0.35\h@ngcommawd} \setlength{\h@ngfstopwd}{0.30\h@ngfstopwd} \setlength{\h@ngquotewd}{0.30\h@ngquotewd} \setlength{\h@ngdquotewd}{0.35\h@ngdquotewd} \setlength{\h@ngcolonwd}{0.20\h@ngcolonwd} \setlength{\h@ngscolonwd}{0.20\h@ngscolonwd} \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\h@ngallowhyphens} % An incantation to be used to allow hyphenation in a `word' beginning % with a quote mark.\footnote{Hubert Gaesslein % (\texttt{hubertjg@virtualphotonics.cm}) % pointed out that the definition of \texttt{h@ngallowhyphens} should end % with \texttt{z@skip} rather than my original \texttt{z@}, in case it was used % in situations I hadn't thought of.} % \changes{v1.1}{1999/05/01}{Changed allowhyphens to h@ngallowhyphens for compatibility with ltugboat.cls} % \changes{v1.1a}{1999/05/01}{Made h@ngallowhyphens more robust} % \begin{macrocode} \newcommand{\h@ngallowhyphens}{\nobreak\hskip\z@skip} % \end{macrocode} % \end{macro} % % \begin{macro}{\nhpt} % \begin{macro}{\nhlq} % \begin{macro}{\nhrq} % As the punctuation is going to be made active, we need commands for % some of the characters when they will be used in constants. % \begin{macrocode} \newcommand{\nhpt}{.} \newcommand{\nhlq}{`} \newcommand{\nhrq}{'} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\h@nglqq} % \begin{macro}{\h@ngrqq} % \begin{macro}{\h@ngrquote} % \begin{macro}{\h@nglquote} % \begin{macro}{\h@ngcomma} % \begin{macro}{\h@ngfstop} % \begin{macro}{\h@ngquery} % \begin{macro}{\h@ngexcl} % \begin{macro}{\h@ngcolon} % \begin{macro}{\h@ngscolon} % Commands for punctuation with kerning. % \begin{macrocode} \newcommand{\h@nglqq}{``} \newcommand{\h@ngrqq}{''} \newcommand{\h@ngrquote}{'\kern-\h@ngquotewd\kern\h@ngquotewd} \newcommand{\h@nglquote}{\ifhmode\kern\h@ngquotewd\vadjust{}\else\leavevmode\fi \kern-\h@ngquotewd`\h@ngallowhyphens} \newcommand{\h@ngcomma}{,\kern-\h@ngcommawd\kern\h@ngcommawd} \newcommand{\h@ngfstop}{.\kern-\h@ngfstopwd\kern\h@ngfstopwd} \newcommand{\h@ngquery}{?\kern-\h@ngquerywd\kern\h@ngquerywd} \newcommand{\h@ngexcl}{!\kern-\h@ngexclwd\kern\h@ngexclwd} \newcommand{\h@ngcolon}{:\kern-\h@ngcolonwd\kern\h@ngcolonwd} \newcommand{\h@ngscolon}{;\kern-\h@ngscolonwd\kern\h@ngscolonwd} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\activatepunct} % At this point we make the punctuation characters % active.\footnote{My thanks to Harald Hanche-Olsen % \texttt{hanche@math.ntnu.no} % for showing me how to do this instead of my initial hack of putting % all the following code into a file to be input by the environment.} % % Activate the punctuation characters, leaving the left quote till last. % \begin{macrocode} \def\activatepunct{% \ifh@ngcomma \catcode`\,=\active \fi \ifh@ngfstop \catcode`\.=\active \fi \ifh@ngquote \catcode`\'=\active \fi \ifh@ngquery \catcode`\?=\active \fi \ifh@ngexcl \catcode`\!=\active \fi \ifh@ngcolon \catcode`\:=\active \fi \ifh@ngscolon \catcode`\;=\active \fi \ifh@ngquote \catcode`\`=\active \fi } % \end{macrocode} % \end{macro} % Define the simple punctuation macros in terms of the respective % |\h@ng...| commands, using |\gdef| as they are instantiated % in a group. % \begin{macrocode} \begingroup \activatepunct \ifh@ngcomma \gdef,{\h@ngcomma} \fi \ifh@ngfstop \gdef.{\h@ngfstop} \fi \ifh@ngquery \gdef?{\h@ngquery} \fi \ifh@ngexcl \gdef!{\h@ngexcl} \fi \ifh@ngcolon \gdef:{\h@ngcolon} \fi \ifh@ngscolon \gdef;{\h@ngscolon} \fi % \end{macrocode} % Life is more complicated for quote marks as they have to check for % ligatures. % \begin{macrocode} \ifh@ngquote \gdef'{\futurelet\next\h@ngrqtest} \gdef`{\futurelet\next\h@nglqtest} % \end{macrocode} % % \begin{macro}{\h@ngrqtest} % \begin{macro}{\h@nglqtest} % \begin{macro}{\h@ngrquotes} % \begin{macro}{\h@nglquotes} % Commands for left and right quotes ligature tests. % \begin{macrocode} \gdef\h@ngrqtest{\ifx\next'\let\next=\h@ngrquotes\else\let\next=\h@ngrquote\fi\next} \gdef\h@nglqtest{\ifx\next`\let\next=\h@nglquotes\else\let\next=\h@nglquote\fi\next} \gdef\h@ngrquotes'{\h@ngrqq\kern-\h@ngdquotewd\kern\h@ngdquotewd} \gdef\h@nglquotes`{\ifhmode\kern\h@ngdquotewd\vadjust{}\else\leavevmode\fi \kern-\h@ngdquotewd\h@nglqq\h@ngallowhyphens} \fi % \end{macrocode} % Finally, end the group started earlier. % \begin{macrocode} \endgroup % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % % \begin{environment}{hangpunct} % The definition of the hanging punctuation environment is now very simple. % It just calls |\activatepunct|. % \begin{macrocode} \newenvironment{hangpunct}{\activatepunct}{} % \end{macrocode} % \end{environment} % % The end of this package. % \begin{macrocode} % % \end{macrocode} % % % \bibliographystyle{alpha} % % \begin{thebibliography}{GMS94} % % \bibitem[GMS94]{GOOSSENS94} % Michel Goossens, Frank Mittelbach, and Alexander Samarin. % \newblock {\em The LaTeX Companion}. % \newblock Addison-Wesley Publishing Company, 1994. % % \bibitem[Knu84]{KNUTH84a} % Donald~E. Knuth. % \newblock {\em The TeXbook}. % \newblock Addison-Wesley Publishing Company, 1984. % % \bibitem[Tha00]{HTHESIS} % \Han. % \newblock \emph{Micro-typographic extensions to the TeX typesetting system}. % \newblock Dissertation. % \newblock Masaryk University Brno, Faculty of Informatics, October 2000. % \newblock (Available as \url{http://www.fi-muni.cz/~thanh/download/thesis.pdf}) % % % \end{thebibliography} % % % \Finale % \PrintIndex % \endinput %% \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 \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~}