我之前写过一本计算机专业书,其中展示了用户在控制台上输入的内容以及计算机的结果输出。我喜欢这样做的方式是将所有内容都放在 courier 中,将用户的输入放在大胆的. 类似这样:
<tt>
$ <b>echo foo</b>
foo
$
</tt>
我将其输入为 HTML,因为我不知道如何在 Markdown(StackExchange 使用的)中执行此操作,也不知道如何在 LaTeX 中轻松执行此操作。我当然可以使用 来做到这一点\texttt{\$ \textbf{echo foo}}
,但我宁愿不必引用所有内容。
我不想使用 lstlisting 推荐的在列表内使用粗体/斜体文本?,因为我不想让 LaTeX 决定什么是粗体。
还有其他建议吗?
答案1
如果您只需要fancyvrb
完整的软件包listings
,则可以使用以下选项轻松完成commandchars
:
\documentclass{article}
\usepackage{fancyvrb}
\newcommand\userinput[1]{\textbf{#1}}
\usepackage{tgcursor}
\begin{document}
\begin{Verbatim}[commandchars=\\\{\}]
$ \userinput{echo foo}
foo
$
\end{Verbatim}
\begin{Verbatim}[commandchars=\#\[\]]
$ #userinput[echo \]
> #userinput[foo]
foo
$
\end{Verbatim}
\end{document}
转义字符三元组可以由环境中未使用的任何内容组成Verbatim
。
答案2
alltt
另一个选项是使用该包,但它不如 egreg 灵活。
\documentclass{article}
\usepackage{alltt}
\begin{document}
\begin{alltt}
$ {\bf echo foo}
foo
$
\end{alltt}
\end{document}