为什么我不能在此代码中插入空行?

为什么我不能在此代码中插入空行?

在下面的代码中,一切都正常,直到我插入一个空白行而不是其中一个\\'。插入空白行后,我会收到一些错误。我该如何摆脱这些错误?

\documentclass{article}
\newsavebox\mybox
\newcommand{\Class}[1]
{ 
\sbox{\mybox}{\begin{tabular}{l}#1\end{tabular}}
\fbox{\parbox{\wd\mybox}{\texttt{#1}}}
}
\begin{document}
\Class
{double Width\\
 double Height\\
 double Perimeter\\ 
 double Area\\
}

\usebox\mybox
\end{document}

编辑:
我的缩进输出是:
在此处输入图片描述

答案1

该命令\texttt不允许在其参数中出现段落分隔符。您可以使用\ttfamily它来代替,但表格内的空白行没有任何用处,因此最好使用错误消息来警告输入错误。

也许这会造成一个空白行\\

\documentclass{article}
\newsavebox\mybox
\usepackage{array}
\newcommand{\Class}[1]
{%
\sbox{\mybox}{\begin{tabular}{>{\expandafter\def\csname par\endcsname{\\}}l}#1\end{tabular}}%
\fbox{\parbox{\wd\mybox}{\par{\def\par{\\}\ttfamily{#1}}}}%
}
\begin{document}
\Class
{double Width\\
 double Height

 double Perimeter\\ 
 double Area\\
}

\usebox\mybox
\end{document}

答案2

您可以简单地\fboxtabular和用作\\空行;要获得打字机类型,请使用\ttfamily\fbox保持字体更改本地。

\documentclass{article}

\newcommand{\Class}[1]{%
  \fbox{\ttfamily\begin{tabular}{l}#1\end{tabular}}%
}

\begin{document}
\Class
{double Width\\
 double Height\\
 \\
 double Perimeter\\
 double Area\\
}

\end{document}

当心定义中的虚假空格和注释行尾。

在此处输入图片描述

相关内容