[Tex/LaTex] Minion Pro and Monospace Font

fontstypewritertypography

This is more a typography question than a TeX one, but can anyone recommend me a good monospaced font that blends well with Minion Pro?

Best Answer

I found this thread, because I had the same issue and I tested a huge bunch of teletype fonts and got stuck with cfr-lm. But loading the whole cfr-lm package would be overkill so I just did:

\renewcommand{\ttdefault}{clmjv}

Which is equivalent to

\usepackage[tt={oldstyle=true,variable=true}]{cfr-lm}

Showcase

In the following example of a bibliography with biblatex the DOI is typeset with cfr-lm.

enter image description here


If you want to typeset source code it might be better to use the tabular version of cfr-lm as you usually want to align stuff in your code. Personally I think that lining figures also look better in code. Therefore I'd use

\renewcommand{\ttdefault}{clmt}

which is equivalent to

\usepackage[tt={oldstyle=false,variable=false}]{cfr-lm}

Showcase

This piece of code is taken from another answer I once gave.

% arara: pdflatex: { shell: yes }
\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage[T1]{fontenc}% cfr-lm is T1 only
\usepackage{minted,MinionPro,caption}
%\renewcommand{\ttdefault}{clmjv}% oldstyle, proportional
\renewcommand{\ttdefault}{clmt}% lining, tabular
\newcommand\code{\texttt}
\newcommand\param{\textit}
\DeclareCaptionFont{bfmath}{\boldmath\bfseries}
\DeclareCaptionFormat{ruled}{\hrulefill\par#1#2#3}
\captionsetup{format=ruled,font=bfmath}
\begin{document}
\begin{figure}
  \centering
  \begin{minted}{c}
const uint8_t *data     = /* buffer head */;
const uint8_t *data_end = /* buffer tail */;
int size = bytestream_get_be16(&data);
if (data + size >= data_end || data + size < data)
    return -1;
data += size;
...
int len = ff_amf_tag_size(data, data_end);
if (len < 0 || data + len >= data_end
            || data + len < data)
    return -1;
data += len;
/* continue to read data */
  \end{minted}
  \caption{Unstable bounds checks in the form $\code{data} + x < \code{data}$ from FFmpeg/Libav, which gcc optimizes into $x < 0$.}
\end{figure}
\end{document}

enter image description here