79

I would like to be able to make a single word in a text look like a coded word. Is there any command such as \code{...} which allows me to do so?

(basically, I want to produce something like above for the "\code{...}" part)

  • 3
    Do you want it to change the background to grey too? – N.N. Nov 24 '11 at 11:15
  • @N.N : it could have been even better yeah, but it's not extremely important. – SRKX Nov 24 '11 at 12:46
99

Normally a monospaced font is used for this. This is accomplished with \texttt{...}. If you want to use code, you can use \def\code#1{\texttt{#1}}. From that point on you can write \code{...} to get monospaced output.

  • 22
    I'd prefer \newcommand{\code}[1]{\texttt{#1}} as you're dealing with LaTeX. Even better \newcommand{\code}{\texttt}, but this is quite advanced. – egreg Nov 24 '11 at 11:40
  • 3
    @egreg I'm not so sure about the last approach (yes, I know why you're doing it, but from an interface POV I prefer macros where the arguments required are clear). – Joseph Wright Nov 24 '11 at 11:41
  • 2
    @JosephWright That's why I wrote that it's advanced. :) – egreg Nov 24 '11 at 11:50
  • 3
    I would also wrap a \mbox around the \texttt, to avoid the word being hyphenated if it happens to fall near the end of a line. – Karl Ove Hufthammer Nov 24 '11 at 11:51
  • 2
    @wh1t3 Would you really want them hyphenated? That could become very confusing for the reader, especially for languages that use commands that can contain hyphens. For function names with arguments, I would define a separate command that handles this in a proper way, using penalties to get the optimal wrapping (e.g., never break the function name, but make is possible (but bad) to break at the comma between arguments). – Karl Ove Hufthammer Nov 24 '11 at 12:58
15

If you want a single word to look like a coded word and also to have a light-gray background as in StackExchange you can predefine a color \definecolor{light-gray}{gray}{0.95} and then define a new command: \newcommand{\code}[1]{\colorbox{light-gray}{\texttt{#1}}}.

From this point on you can use \code{word} to get mono-spaced words with gray background.

Of course for this to work you will need to load the xcolor package before \definecolor.

A full example would look like this:

% Better inline directory listings
\usepackage{xcolor}
\definecolor{light-gray}{gray}{0.95}
\newcommand{\code}[1]{\colorbox{light-gray}{\texttt{#1}}}
  • 1
    Awesome, that's what I was looking for. Thanks :D – Sidahmed Feb 7 '17 at 11:41
  • 1
    This is what the people want! – sunspots Feb 12 '18 at 7:51
  • Hi. I've tried to do this in a document, but my document won't compile unless I surround the word like \code{$word$}, and then it puts everything in math font. When I don't it says "! Missing $ inserted.". Any ideas? – la femme cosmique Sep 10 '18 at 19:22
  • @lafemmecosmique Did your 'word' contain underscores? – Ilya Popov Sep 27 '18 at 16:02
  • Yes it did. I had to escape character them out like \code{word_1} – la femme cosmique Sep 28 '18 at 8:56
11

\verb|code| or \verb#code# also works. It creates characters in monospace, although its primary utility to enter commands that the compiler wont confuse as tex commands.

  • 1
    Why does \verb use | or # to start and end code rather than the usual { and }? – user3728501 Nov 29 '16 at 14:52
  • 1
    @user3728501 what if I wanted to give an example LaTeX command using verbatim? I'd need different delimiters to indicate when to start/stop the verbatim text (since the { and } would need to be rendered as verbatim text). – Alex Nelson Aug 6 '18 at 13:44
10

I can't believe nobody mentioned the listings package. It provides a command called \lstinline{your_code} which can even highlight keywords for you.

See also this question: Should I use \lstinline for the language keywords embedded in text?

  • 2
    Welcome to TeX.SX! Good catch. – TeXnician Jul 24 '18 at 7:12
  • 2
    Syntax: \lstinline[⟨key=value list⟩]⟨character⟩⟨source code⟩⟨same character⟩ Also, some engines support a wider working range of working <character> delimiters. For exampe, I found ¿ to work with xelatex and not with pdflatex. – l --marc l Feb 18 at 6:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.