在下面的代码中,一切都正常,直到我插入一个空白行而不是其中一个\\
'。插入空白行后,我会收到一些错误。我该如何摆脱这些错误?
\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
您可以简单地\fbox
将tabular
和用作\\
空行;要获得打字机类型,请使用\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}
当心定义中的虚假空格和注释行尾。