\hline 初始化第一个单元格

\hline 初始化第一个单元格

\hline 将第一个单元格初始化为空。这样就会绘制垂直线。

\documentclass[12pt]{report}

\usepackage{graphicx} %Used for importing grapics
\usepackage{bookmark} %This will create the digitale bookmarks of the resulting pdf
\usepackage[top=1.25in, bottom=1.5in, left=1in, right=1in]{geometry} % setting the margins of the paper


\newcounter{versionnumber}

\newcommand{\version}[3]{
v.\theversionnumber .0 &
#1 &        % parameter 1
#2 &        % parameter 2
#3 \\       % parameter 3
\hline      %draw line under each version

\stepcounter{versionnumber}
}

\newenvironment{changelist}
{ \begin{tabular}{
    |  m{0.10\textwidth}        % set static column width
    || m{0.28\textwidth}
    |  m{0.12\textwidth}
    |  m{0.40\textwidth} | }
\hline
\textbf{Version}    &
\textbf{Author}     &
\textbf{Date}       &
\textbf{Change log} \\
\hline      % Draw horizontal line under column titels
& & & \\    % Leave some whitespace
}
{ \end{tabular} }


\begin{document}
\setcounter{versionnumber}{1}

\begin{changelist}
\version{A name}{A date}{some explanation}
\end{changelist}

\end{document}

有人能帮我吗?我不知道为什么要绘制第二行第一个单元格的垂直线。当给出一个值时。这个值被放在第一个单元格上,而它旁边的单元格也出现了同样的问题。

答案1

\hline不是初始化第一个单元格。 的定义\hline是(来自latex.ltx):

\def\hline{%
  \noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
   \reserved@a\@xhline
}
\def\@xhline{%
  \ifx\reserved@a\hline
    \vskip\doublerulesep
    \vskip-\arrayrulewidth
  \fi
  \ifnum0=`{\fi}%
}

有很多“巫术”,但重要的是,这条线是在里面画的\noalign

TeX 基元\noalign可以在新的表格行开始之前使用,并且它采用放置在该位置的垂直模式材料而不考虑对齐。

你的手机也是不是空的,它包含\stepcounter{versionnumber},足以在新行中开始一个新单元格。Again\noalign可用于“隐藏”\stepcounter分配,因为计数器分配在 LaTeX 中是全局的:

\hline
\noalign{\stepcounter{versionnumber}%

完整示例(包含array列说明符所需的包m):

\documentclass[12pt]{report}

\usepackage{array} % provides column specifier "m"
\usepackage{graphicx} % Used for importing grapics
\usepackage{bookmark} % This will create the digitale bookmarks of the resulting pdf
\usepackage[top=1.25in, bottom=1.5in, left=1in, right=1in]{geometry} % setting the margins of the paper


\newcounter{versionnumber}

\newcommand{\version}[3]{
v.\theversionnumber .0 &
#1 &        % parameter 1
#2 &        % parameter 2
#3 \\       % parameter 3
\hline      % draw line under each version
\noalign{\stepcounter{versionnumber}}%
}

\newenvironment{changelist}
{ \begin{tabular}{
    |  m{0.10\textwidth}        % set static column width
    || m{0.28\textwidth}
    |  m{0.12\textwidth}
    |  m{0.40\textwidth} | }
\hline
\textbf{Version}    &
\textbf{Author}     &
\textbf{Date}       &
\textbf{Change log} \\
\hline      % Draw horizontal line under column titels
& & & \\    % Leave some whitespace
}
{ \end{tabular} }


\begin{document}
\setcounter{versionnumber}{1}

\begin{changelist}
\version{A name}{A date}{some explanation}
\end{changelist}

\end{document}

结果

相关内容