[Tex/LaTex] Show whitespace characters in monospace environments

typewriterverbatim

I need to render an ASCII file for printing in a way that removes ambiguity if (very unlikely) one decides to type it in and validate the signatures.

Essentially, I need a monospace typesetter that would typeset a 'blank space' symbol for space, a CR/LF symbol (and proceed to the next line for readability) whenever a CR/LF is encountered, etc., making it obvious if there are any trailing whitespaces before the CR/LF, if there is a character present, etc.

Is there a font that already accomplishes that goal? *nix utility? TeX module/package/derived system?

Is this even the proper SE site for this kind of questions? Would you think I'd have better luck at SuperUser? StackOverflow?

Best Answer

Do you mean something like this? In this case, I made @ active to denote the end of the verbatim each line, so that it could both detect prior spaces, as well as typeset a <cr> to signify the end of line. (See ADDENDUM for update)

\documentclass{article}
\usepackage{verbatimbox}
\def\rlwd{.5pt}
\begin{document}
\catcode`@=\active
\def@{<cr>}
\def\tmp{\setbox2=\hbox{0}%
  \def\ {\makebox[\wd2]{\rule{\rlwd}{2pt}\rule{3pt}{\rlwd}\rule{\rlwd}{2pt}}}%
}
\begin{verbnobox}[\tmp]
This is a test         @
more test      @
The end@
\end{verbnobox}
\catcode`@=12
\end{document}

enter image description here

If one did not like the confusion of having the <cr> in the same font as the verbatim, one could alter it thus:

\documentclass{article}
\usepackage{verbatimbox,xcolor}
\def\rlwd{.5pt}
\begin{document}
\catcode`@=\active
\def@{\textcolor{red}{{\tiny\rmfamily\bfseries$<$cr$>$}}}
\def\tmp{\setbox2=\hbox{0}%
  \def\ {\makebox[\wd2]{\rule{\rlwd}{2pt}\rule{3pt}{\rlwd}\rule{\rlwd}{2pt}}}%
}
\begin{verbnobox}[\tmp]
This is a test         @
more test      @
The end@
\end{verbnobox}
\catcode`@=12
\end{document}

enter image description here

ADDENDUM

Since this answer was originally provided I have learned that verbatim environment and even the \verb macro have star variants (e.g., verbatim*) which provide the visible space glyph. Thus, no extra packages are actually needed.

\documentclass{article}
\begin{document}
\catcode`@=\active
\def@{<cr>}
\begin{verbatim*}
This is a test         @
more test      @
The end@
\end{verbatim*}
\catcode`@=12
\end{document}

enter image description here