[Tex/LaTex] How to use condensed typewriter with latin modern and doc

dtxfontslatin-moderntypewriter

I'm documenting a class with (ltx)doc. The macro names are quite long so I get a lot of overfull hboxes.

AFAIK latin modern has an additional typewriter font which is condensed. How do I switch the doc package to use that? I'd prefer a solution for pdflatex.

Best Answer

Write this in the preamble of your document

\DeclareFontFamily{T1}{lmttc}{\hyphenchar \font-1 }
\DeclareFontShape{T1}{lmttc}{m}{n}
     {<-> ec-lmtlc10}{}
\DeclareFontShape{T1}{lmttc}{m}{it}
     {<->sub*lmttc/m/sl}{}
\DeclareFontShape{T1}{lmttc}{m}{sl}
     {<-> ec-lmtlco10}{}
\renewcommand{\ttdefault}{lmttc}

If you need OT1-encoding, change all T1 into OT1 and ec- into rm-.

With XeLaTeX or LuaLaTeX one can say

\setmonofont[HyphenChar=None]{Latin Modern Mono Light Cond}

and get the same result (loading fontspec, of course).