我在 LaTeX 文档中指定了两个环境来突出显示不同的代码行:
\newenvironment{code}{\color{blue}}{\ttfamily}{\par}
\newenvironment{codegrey}{\color{grey}}{\ttfamily}{\par}
在文档中,我希望后者出现在前者的正下方,没有任何间距。代码如下:
\begin{code}
\begin{verbatim}
\renewcommand{\arraystretch}{1.5}
\end{verbatim}
\end{code}
\begin{codegrey}
\begin{verbatim}
\begin{tabular}{|c|p{3cm}llcp{5cm}|}
\end{verbatim}
\end{codegrey}
我的目标是将它们显示为: 而不是这样: 任何建议都非常感谢!这是我第一次使用 newenvironment 命令,我发现它非常强大。
答案1
这里有一个使用 的较短版本fancyvrb
。您无需使用单独的环境来更改颜色。
\documentclass{article}
\usepackage{xcolor}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}[commandchars=+\[\],fontsize=\footnotesize]
+color[blue]\renewcommand{\arraystretch}{1.5}
+color[gray]\begin{tabular}{|c|p{3cm}llcp{5cm}|}
\end{Verbatim}
\end{document}
您还可以使用 listings
提供密钥的包escapechar
在逐字环境中启用乳胶命令。
答案2
您可以在中间添加一个带有负值的 \vspace,如下所示:
\begin{code}
\begin{verbatim}
\renewcommand{\arraystretch}{1.5}
\end{verbatim}
\end{code}
\vspace{-3mm} %negative \vspace
\begin{codegrey}
\begin{verbatim}
\begin{tabular}{|c|p{3cm}llcp{5cm}|}
\end{verbatim}
\end{codegrey}
编辑:另一种方法是在环境中添加负 vspace--
\newenvironment{code}{\color{blue}}{\ttfamily \vspace{-3mm}}
\newenvironment{codegrey}{\color{grey}}{\ttfamily \vspace{-3mm}}
但请注意,关闭环境后,这将影响下一段的间距
答案3
这是一个使用选项listings
:
\documentclass{article}
\usepackage{xcolor,listings,etextools}
\lstset{basicstyle=\ttfamily,mathescape,columns=fullflexible}
\begin{document}
\begin{lstlisting}
$\AfterGroup{\color{blue}}$\renewcommand{\arraystretch}{1.5}
$\AfterGroup{\color{gray}}$\begin{tabular}{|c|p{3cm}llcp{5cm}|}
\end{lstlisting}
\end{document}
没有etextools
您可以使用
\newcommand{\colorblue}{\color{blue}}
\newcommand{\colorgray}{\color{gray}}
...
\begin{lstlisting}
$\aftergroup\colorblue$\renewcommand{\arraystretch}{1.5}
$\aftergroup\colorgray$\begin{tabular}{|c|p{3cm}llcp{5cm}|}
\end{lstlisting}