Unix 命令突出显示 latex

Unix 命令突出显示 latex

有什么我可以轻松在 Latex 中显示的命令吗?我目前正在使用:

\indent\indent\footnotesize{\# apt-get --purge remove rubygems} \\

但这并没有很好地区分命令和文本。我还能做些什么来更好地展示它。

答案1

通常使用打字机字体来格式化 shell 命令。\texttt但是,从语义上讲,到处使用并不是很令人满意。此外,如果您想更改 shell 命令的排版方式,则必须检查代码并检查每次出现的\texttt,确定它是否用于排版 shell 命令,然后可能更改它。更好的方法是为此特定目的定义一个新命令。它可以轻松查看您正在排版的内容,并允许您在以后轻松改变对排版的想法。要定义新命令,我们可以使用 LaTeX 命令\newcommand{cmd}[num of args]{definition}。这种方法还允许我们将额外的缩进和换行符包装在命令内。它看起来像这样:

\newcommand{\shellcmd}[1]{\\\indent\indent\texttt{\footnotesize\# #1}\\}

然后可以像这样使用它:

\documentclass{article}
\newcommand{\shellcmd}[1]{\\\indent\indent\texttt{\footnotesize\# #1}\\}
\begin{document}
  \noindent Consider the following command:
  \shellcmd{apt-get --purge remove rubygems}
  This removes the \texttt{rubygems} package.
\end{document}

效果如下:

排版 shell 命令

您应该注意命令中的初始换行符。如果您想在行首使用它,您可以定义一个没有初始换行符的带星号的版本。为此后缀pacakge 最适合。然后,您可以定义一个没有初始换行符的带星号的版本,如下所示:

\WithSuffix\def\shellcmd*#1{\indent\indent\texttt{\footnotesize\# #1}\\}

答案2

我建议你使用包裹listings为此,它允许通过逐字宏格式化内联代码片段,\lstinline并通过环境显示较长代码的样式代码lstlisting。以下是两种样式的示例:

在此处输入图片描述

笔记:

代码:

\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}

\lstdefinestyle{BashInputStyle}{
  language=bash,
  basicstyle=\small\sffamily,
  numbers=left,
  numberstyle=\tiny,
  numbersep=3pt,
  frame=tb,
  columns=fullflexible,
  backgroundcolor=\color{yellow!20},
  linewidth=0.9\linewidth,
  xleftmargin=0.1\linewidth
}

\newcommand*{\Package}[1]{\texttt{#1}}%

\begin{document}
\noindent The command:
\lstinline[style=BashInputStyle]´# apt-get --purge remove rubygems´.
removes the \Package{rubygems} package.

\bigskip
\noindent Consider the following command:
\begin{lstlisting}[style=BashInputStyle]
    # apt-get --purge remove rubygems
\end{lstlisting}
This removes the \Package{rubygems} package.
\end{document}

相关内容