Minion Pro and Monospace Font
Consolas is, I think, popular with Minion Pro but has licensing restrictions. The similarly-styled free font Inconsolata may be a better choice if you like this style. Inconsolata is licensed under the OFL and sponsored by the TeX Users Group Development Fund
The following two discussions on this site may be helpful:
Using Minion Pro for the main font
What best combination of fonts
Idris Samawi Hamid's 2005 paper for the NTG on Installing Expert Fonts: Minion Pro relates to ConTeXt but useful reading even if you are not using that and recommends Latin Modern for monospace and Euler for maths.
the LaTeX (Graphic) Companion uses Minion and
\renewcommand{\ttdefault}{emtt}
but
\usepackage[scaled=0.9]{luximono}
is another good choice
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
.
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}