表格中的值位于垂直线上方和/或上方

表格中的值位于垂直线上方和/或上方

我希望能够有一张像下图(手绘)这样的表格。我不熟悉 tikz,也不是熟练的 power latex 用户,主要通过示例来使用它们。如果有人可以提供解决方案,或者至少提供一些提示,说明如何解决问题,我将不胜感激。

要求是一张用于微积分的表格。垂直线可以是一条或两倍(排除精确值的情况)。对我来说最困难的部分是,值应该位于垂直线上方的中心,例如示例中的 2 和 3。还有 0 与垂直线的交叉。无穷大或其他值(如果使用特定范围)应该位于左侧和右侧边缘,如示例所示。

例如,对于方程 x^2+x-6=0,我尝试使用表格,但结果不是我想要的。

在此处输入图片描述

答案1

如果您想使用实际tabular环境,您可以使用\tikzmark“伪”垂直规则(实际表列)。

否则,您可以完全使用 Tikz 绘制自定义表格。这取决于您以及您的使用方式。

注意:如果您发现线条偏离位置,则可能需要运行两次(通常每次更改某个值时,运行两次)。

输出

图1

代码

\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage{array}
\usepackage{tikz}

\usetikzlibrary{tikzmark,calc,positioning}

\newcommand{\DrawLine}[3][]{%
  \begin{tikzpicture}[overlay,remember picture]
    \draw[shorten <=-.2ex, shorten >=-.2ex,#1] (#2.north) -- (#3.south);
  \end{tikzpicture}
}

\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

\renewcommand{\tikzmark}[2]{\tikz[overlay,remember picture,baseline] 
\node [anchor=base] (#1) {$#2$};}

\begin{document}\renewcommand{\arraystretch}{1.2}
\begin{tabular}{c|M{5mm}M{4mm}M{2mm}M{4mm}M{2mm}}
 $X$ & $-\infty$ & $-3$ & & 2 & \\ \hline
 $x^2+x-6$ & & \tikzmark{a}{$0$} & & \tikzmark{c}{$0$} & \\
  & $+$ & \tikzmark{b}{} & $-$ & \tikzmark{d}{} & $+$ 
\end{tabular}
    \DrawLine{a}{b}
    \DrawLine{c}{d}
\end{document}

相关内容