Index: doc/LaTeXmacros/common.tex
===================================================================
--- doc/LaTeXmacros/common.tex	(revision ef3b3355746ef3ea0b4f7ffebbf064e5243d6750)
+++ doc/LaTeXmacros/common.tex	(revision c45170a282ebfb35f0ce6eec6cec991fe3531bb6)
@@ -11,6 +11,6 @@
 %% Created On       : Sat Apr  9 10:06:17 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Tue Jul 12 20:37:57 2016
-%% Update Count     : 206
+%% Last Modified On : Mon Aug  1 08:57:17 2016
+%% Update Count     : 223
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -19,10 +19,10 @@
 \setlength{\textheight}{9in}
 %\oddsidemargin 0.0in
-\renewcommand{\topfraction}{0.8}	% float must be greater than X of the page before it is forced onto its own page
-\renewcommand{\bottomfraction}{0.8}	% float must be greater than X of the page before it is forced onto its own page
+\renewcommand{\topfraction}{0.8}		% float must be greater than X of the page before it is forced onto its own page
+\renewcommand{\bottomfraction}{0.8}		% float must be greater than X of the page before it is forced onto its own page
 \renewcommand{\floatpagefraction}{0.8}	% float must be greater than X of the page before it is forced onto its own page
-\renewcommand{\textfraction}{0.0}	% the entire page maybe devoted to floats with no text on the page at all
-
-\lefthyphenmin=4
+\renewcommand{\textfraction}{0.0}		% the entire page maybe devoted to floats with no text on the page at all
+
+\lefthyphenmin=4						% hyphen only after 4 characters
 \righthyphenmin=4
 
@@ -38,9 +38,9 @@
 % Names used in the document.
 
-\newcommand{\CFA}{C$\mathbf\forall$\xspace}              % set language symbolic name
-\newcommand{\CFL}{Cforall\xspace}                        % set language text name
+\newcommand{\CFA}{C$\mathbf\forall$\xspace} % set language symbolic name
+\newcommand{\CFL}{Cforall\xspace}		% set language text name
 \newcommand{\CC}{\rm C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name
 \newcommand{\CCeleven}{\rm C\kern-.1em\hbox{+\kern-.25em+}11\xspace} % C++11 symbolic name
-\def\c11{ISO/IEC C} % C11 name (cannot have numbers in latex command name)
+\def\c11{ISO/IEC C}						% C11 name (cannot have numbers in latex command name)
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -52,5 +52,5 @@
 \setlength{\parindentlnth}{\parindent}
 
-\newlength{\gcolumnposn}
+\newlength{\gcolumnposn}				% temporary hack because lstlisting does handle tabs correctly
 \newlength{\columnposn}
 \setlength{\gcolumnposn}{2.5in}
@@ -63,6 +63,6 @@
 %\patchcmd{\lsthk@TextStyle}{\let\lst@DefEsc\@empty}{}{}{\errmessage{failed to patch}}
 
-\usepackage{pslatex}									% reduce size of san serif font
-\usepackage{relsize}                                    % must be after change to small or selects old size
+\usepackage{pslatex}					% reduce size of san serif font
+\usepackage{relsize}					% must be after change to small or selects old size
 
 % reduce size of chapter/section titles
@@ -120,12 +120,13 @@
 
 % inline text and lowercase index: \Index{inline and lowercase index text}
+\newcommand{\Index}{\@ifstar\@sIndex\@Index}
 % inline text and as-in index: \Index[as-is index text]{inline text}
+\newcommand{\@Index}[2][\@empty]{\lowercase{\def\temp{#2}}#2\ifx#1\@empty\index{\temp}\else\index{#1@{\protect#2}}\fi}
 % inline text but index with different as-is text: \Index[index text]{inline text}
-\newcommand{\Index}{\@ifstar\@sIndex\@Index}
-\newcommand{\@Index}[2][\@empty]{\lowercase{\def\temp{#2}}#2\ifx#1\@empty\index{\temp}\else\index{#1@{\protect#2}}\fi}
 \newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi}
 
-% cannot use ©
+% inline text and code index (cannot use ©)
 \newcommand{\Indexc}[1]{\lstinline$#1$\index{#1@\lstinline$#1$}}
+% code index (cannot use ©)
 \newcommand{\indexc}[1]{\index{#1@\lstinline$#1$}}
 
@@ -137,4 +138,21 @@
 \newcommand{\@newterm}[2][\@empty]{\lowercase{\def\temp{#2}}{\newtermFontInline{#2}}\ifx#1\@empty\index{\temp}\else\index{#1@{\protect#2}}\fi}
 \newcommand{\@snewterm}[2][\@empty]{{\newtermFontInline{#2}}\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi}
+
+% Latin abbreviation
+\newcommand{\abbrevFont}{\textit}	% set empty for no italics
+\newcommand*{\eg}{%
+	\@ifnextchar{,}{\abbrevFont{e}.\abbrevFont{g}.}%
+		{\@ifnextchar{:}{\abbrevFont{e}.\abbrevFont{g}.}%
+			{\abbrevFont{e}.\abbrevFont{g}.,\xspace}}%
+}%
+\newcommand*{\ie}{%
+	\@ifnextchar{,}{\abbrevFont{i}.\abbrevFont{e}.}%
+		{\@ifnextchar{:}{\abbrevFont{i}.\abbrevFont{e}.}%
+			{\abbrevFont{i}.\abbrevFont{e}.,\xspace}}%
+}%
+\newcommand*{\etc}{%
+	\@ifnextchar{.}{\abbrevFont{etc}}%
+        {\abbrevFont{etc}.\xspace}%
+}%
 \makeatother
 
@@ -145,4 +163,5 @@
 	\endlist
 }% quote2
+
 \newenvironment{rationale}{%
   \begin{quote2}\noindent$\Box$\enspace
@@ -188,5 +207,5 @@
 \newcommand{\VPageref}[2][page]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}}
 
-% Go programming language
+% Go programming language: https://github.com/julienc91/listings-golang/blob/master/listings-golang.sty
 \lstdefinelanguage{Golang}{
 	morekeywords=[1]{package,import,func,type,struct,return,defer,panic, recover,select,var,const,iota,},%
@@ -204,5 +223,5 @@
 }
 
-% CFA programming language, based on ANSI C
+% CFA programming language, based on ANSI C (with some gcc additions)
 \lstdefinelanguage{CFA}[ANSI]{C}{
 	morekeywords={_Alignas,_Alignof,__alignof,__alignof__,asm,__asm,__asm__,_At,_Atomic,__attribute,__attribute__,auto,
@@ -215,18 +234,18 @@
 language=CFA,
 columns=fullflexible,
-basicstyle=\linespread{0.9}\sf,
-stringstyle=\tt,
-tabsize=4,
-xleftmargin=\parindentlnth,
-extendedchars=true,
-escapechar=§,
-mathescape=true,
-keepspaces=true,
-showstringspaces=false,
-showlines=true,
-aboveskip=4pt,
+basicstyle=\linespread{0.9}\sf,			% reduce line spacing and use sanserif font
+stringstyle=\tt,						% use typewriter font
+tabsize=4,								% 4 space tabbing
+xleftmargin=\parindentlnth,				% indent code to paragraph indentation
+extendedchars=true,						% allow ASCII characters in the range 128-255
+escapechar=§,							% escape to latex in CFA code
+mathescape=true,						% allow $...$ LaTeX math escapes in code
+%keepspaces=true,						% 
+showstringspaces=false,					% do not show spaces with cup
+showlines=true,							% show blank lines at end of code
+aboveskip=4pt,							% spacing above/below code block
 belowskip=3pt,
-moredelim=**[is][\color{red}]{®}{®}, % red highlighting
-moredelim=**[is][\color{blue}]{ß}{ß}, % blue highlighting
+moredelim=**[is][\color{red}]{®}{®},	% red highlighting
+moredelim=**[is][\color{blue}]{ß}{ß},	% blue highlighting
 moredelim=**[is][\color{OliveGreen}]{¢}{¢}, % green highlighting
 moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords
@@ -242,18 +261,7 @@
 \renewcommand\thebibliography[1]{
   \Oldthebibliography{#1}
-  \setlength{\parskip}{0pt}			% reduce vertical spacing between references
+  \setlength{\parskip}{0pt}				% reduce vertical spacing between references
   \setlength{\itemsep}{5pt plus 0.3ex}
 }%
-
-\newcommand*{\eg}{\textit{e.g}.\@\xspace}
-\newcommand*{\ie}{\textit{i.e}.\@\xspace}
-
-\makeatletter
-\newcommand*{\etc}{%
-    \@ifnextchar{.}%
-        {\textit{etc}}%
-        {\textit{etc}.\@\xspace}%
-}
-\makeatother
 
 % Local Variables: %
