57

How do I show a code snippet directly in my text? I don't want to have an extra box for it like lstlisting or verbatim provide it. My example may should look like this:

The class List.class is...

Should I make a new command for grey background and code like font? Or is there a simpler way? If not, how to write a new command for that?

  • Welcome to TeX.sx! Your question was migrated here from [so]. Please register on this site, too, and make sure that both accounts are associated with each other (by using the same OpenID), otherwise you won't be able to comment on or accept answers or edit your question. – Werner Jul 31 '12 at 02:31
  • For future Googlers: a good way to solve this is with the tcolorbox package: https://www.ctan.org/pkg/tcolorbox and add a custom tcbox to your preamble with the style of choice: \newtcbox{\inlinecode}{on line, boxrule=0pt, boxsep=0pt, top=2pt, left=2pt, bottom=2pt, right=2pt, colback=gray!15, colframe=white, fontupper={\ttfamily \footnotesize}} – Jonathan E. Landrum Jul 24 '20 at 15:20

2 Answers2

78

Since LaTeX is meant primarily intended for printed text I would strongly recommend you to not use e.g. grey background, but just use a typewriter font, e.g.

The class \texttt{List.class} is \ldots

You can and should wrap this in a new command to be free to change the visual appearance later, e.g.

\newcommand{\code}[1]{\texttt{#1}}

so you can use a form which is free of formating distractions and conveys intention more clearly

The class \code{List.class} is \ldots

If, however, you are intent upon marking the text with a gray background, you can extend the above format with a color definition and colorbox from the colors or xcolors package, e.g.

\definecolor{codegray}{gray}{0.9}
\newcommand{\code}[1]{\colorbox{codegray}{\texttt{#1}}}

For more on the colors, see this tutorial for some other usage examples.

Pyrocater
  • 103
  • The approach with \colorbox leads to linebreaking problems. If you are using lualatex you could use as well a different approach (see https://tex.stackexchange.com/a/547643/48642) with \newcommand{\code}[1]{ \highLight[{[HTML]{D3D3D3}}]{\texttt{#1}}} – LeO May 11 '21 at 09:47
17

The listings package has a command \lstinline{snippet} that is used exactly for that. You can configure its appearance (including syntax highlighting) using the package options.