# How do you change the font size globally for the \texttt environment?

How do you change the font size globally for the \texttt environment?

I can do it for the verbatim environment with the following pair of commands

\verbatimfont{\small}


How do I accomplish the same thing for the \texttt environment?

• \texttt is not an environment and it doesn't set a size. – Ulrike Fischer Jan 10 '18 at 22:52

Font switches are typically robust. You could update the \ttfamily font switch to append a sizing element to it in the same way you would for your \verbatimfont:

\documentclass{article}

\usepackage{letltxmacro}
% https://tex.stackexchange.com/q/88001/5764
\LetLtxMacro\oldttfamily\ttfamily
\DeclareRobustCommand{\ttfamily}{\oldttfamily\csname ttsize\endcsname}
\newcommand{\setttsize}[1]{\def\ttsize{#1}}%

\begin{document}

\setttsize{\Large}% \ttfamily will be \Large

Something \texttt{texttt}.

\begingroup
\ttfamily Something texttt.
\endgroup

\setttsize{}% \ttfamily will be \normalsize

Something \texttt{texttt}.

\begingroup
\ttfamily Something texttt.
\endgroup

\end{document}


You can use the fancyvrb package that offers many other customizations (you can also check the fvextra package that adds many features).

\documentclass{article}
\usepackage{fancyvrb}

\RecustomVerbatimEnvironment{verbatim}{Verbatim}{fontsize=\footnotesize}

\begin{document}

This is inline \verb|verbatim|, the size doesn't change.
But it can be changed when we are in a \verb|verbatim|
enviroment
\begin{verbatim}
This is inline \verb|verbatim|, the size doesn't change.
But it can be changed when we are in a \verb|Verbatim|
enviroment
\end{verbatim}
Isn't it nice?

\end{document}


In order to change the size of the monospaced font, there is a “nasty” trick. Modify the value in the definition of \ttscale to suit your need.

\documentclass{article}

\newcommand{\ttscale}{s*[0.9]}
\DeclareFontFamily{OT1}{cmtt}{\hyphenchar\font -1 }
\DeclareFontShape{OT1}{cmtt}{m}{n}{
<-9>   \ttscale cmtt8
<9-10> \ttscale cmtt9
<10-12>\ttscale cmtt10
<12->  \ttscale cmtt12
}{}
\DeclareFontShape{OT1}{cmtt}{m}{it}{
<->    \ttscale cmitt10
}{}
\DeclareFontShape{OT1}{cmtt}{m}{sl}{
<->    \ttscale cmsltt10
}{}
\DeclareFontShape{OT1}{cmtt}{m}{sc}{
<->    \ttscale cmtcsc10
}{}
\DeclareFontShape{OT1}{cmtt}{m}{ui}
{<->ssub*cmtt/m/it}{}
\DeclareFontShape{OT1}{cmtt}{bx}{n}
{<->ssub*cmtt/m/n}{}
\DeclareFontShape{OT1}{cmtt}{bx}{it}
{<->ssub*cmtt/m/it}{}
\DeclareFontShape{OT1}{cmtt}{bx}{ui}
{<->ssub*cmtt/m/it}{}

\begin{document}

ABC \texttt{ABC}

\Large ABC \texttt{ABC}

\end{document}


Compare with the original: