我想使用包制作一个包含多个变体和符号表的大表格tkz-tab
。
我试过这个,但要完美对齐大表格的列以及符号和变量表的列非常痛苦且几乎不可能。而且在同一个地方还有很多双线。
\documentclass[a4paper,10pt]{article}
\usepackage{lscape}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{mathcomp}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{tikz,tkz-tab}
\usepackage{parallel}
\usepackage{array}
\setlength{\parindent}{0pt}
\begin{document}
\newcolumntype{E}{>{$}c<{$}}
\newcolumntype{F}{>{\centering\arraybackslash$}p{6.57cm}<{$}}
\newcolumntype{G}{>{\centering\arraybackslash$}p{3.55cm}<{$}}
\newcolumntype{H}{>{\centering\arraybackslash$}p{3.57cm}<{$}}
\renewcommand{\arraystretch}{2}
\begin{tabular}{|E|F|G|H|}
\hline
\text{factorisation} & a\big(x-\frac{-b-\sqrt{\Delta}}{2a}\big)\big(x- \frac{-b+\sqrt{\Delta}}{2a}\big) & a\big(x-\alpha\big)^2 & \text{N'existe pas dans $\mathbb{R}$}\\
\multicolumn{2}{|c}{\!\!\!\!\begin{tikzpicture}
\tkzTabInit[lgt = 2.35, espcl = 1.5]{$x$ /1, $f(x)$ /1, $f$ /1.5}{$-\infty$, $x_1$, $\alpha$, $x_2$, $+\infty$}
\tkzTabLine{, +, z, , -, , z, +, }
\tkzTabVar{+/ $+\infty$, R/, -/ $\beta$, R/, +/ $+\infty$}
\tkzTabIma{1}{3}{2}{$0$}
\tkzTabIma{3}{5}{4}{$0$}
\end{tikzpicture}}
&
\!\!\!\!\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.49]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, +, z, +, }
\tkzTabVar{+/ $+\infty$, -/ 0, +/ $+\infty$}
\end{tikzpicture}
&
\!\!\!\!\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.5]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, , +, , }
\tkzTabVar{+/ $+\infty$, -/ $\beta$, +/ $+\infty$}
\end{tikzpicture}
\\
\multicolumn{2}{|c}{\!\!\!\!\begin{tikzpicture}
\tkzTabInit[lgt = 2.35, espcl = 1.5]{$x$ /1, $f(x)$ /1, $f$ /1.5}{$-\infty$, $x_1$, $\alpha$, $x_2$, $+\infty$}
\tkzTabLine{, -, z, , +, , z, -, }
\tkzTabVar{-/ $-\infty$, R/, +/ $\beta$, R/, -/ $-\infty$}
\tkzTabIma{1}{3}{2}{$0$}
\tkzTabIma{3}{5}{4}{$0$}
\end{tikzpicture}}
&
\!\!\!\!\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.49]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, -, z, -, }
\tkzTabVar{-/ $-\infty$, +/ 0, -/ $-\infty$}
\end{tikzpicture}
&
\!\!\!\!\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.5]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, , -, , }
\tkzTabVar{-/ $-\infty$, +/ $\beta$, -/ $-\infty$}
\end{tikzpicture}\\
\hline
\end{tabular}
\end{document}
我也尝试制作不同的小表格和表格。但需要调整不同表格的所有列的大小。
\documentclass[a4paper,10pt]{article}
\usepackage{lscape}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{mathcomp}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{tikz,tkz-tab}
\usepackage{parallel}
\usepackage{array}
\setlength{\parindent}{0pt}
\begin{document}
\newcolumntype{E}{>{$}c<{$}}
\newcolumntype{F}{>{\centering\arraybackslash$}p{6.57cm}<{$}}
\newcolumntype{G}{>{\centering\arraybackslash$}p{3.55cm}<{$}}
\newcolumntype{H}{>{\centering\arraybackslash$}p{3.57cm}<{$}}
\renewcommand{\arraystretch}{2}
\begin{tabular}{|E|F|}
\hline
& \Delta >0 \\
\hline
|$S$| & 2\\
\hline
\text{factorisation} & a\big(x-\frac{-b-\sqrt{\Delta}}{2a}\big) \big(x-\frac{-b+\sqrt{\Delta}}{2a}\big)\\
\hline
\end{tabular}
\!
\begin{tabular}{|G|}
\hline
\Delta =0\\
\hline
1\\
\hline
a\big(x-\alpha\big)^2\\
\hline
\end{tabular}
\!
\begin{tabular}{|H|}
\hline
\Delta <0\\
\hline
0\\
\hline
\text{N'existe pas dans $\mathbb{R}$}\\
\hline
\end{tabular}
\newline
\begin{tikzpicture}
\tkzTabInit[lgt = 2.35, espcl = 1.5]{$x$ /1, $f(x)$ /1, $f$ /1.5}{$-\infty$, $x_1$, $\alpha$, $x_2$, $+\infty$}
\tkzTabLine{, +, z, , -, , z, +, }
\tkzTabVar{+/ $+\infty$, R/, -/ $\beta$, R/, +/ $+\infty$}
\tkzTabIma{1}{3}{2}{$0$}
\tkzTabIma{3}{5}{4}{$0$}
\end{tikzpicture}
\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.5]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, +, z, +, }
\tkzTabVar{+/ $+\infty$, -/ 0, +/ $+\infty$}
\end{tikzpicture}
\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.5]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, , +, , }
\tkzTabVar{+/ $+\infty$, -/ $\beta$, +/ $+\infty$}
\end{tikzpicture}
\newline
\begin{tikzpicture}
\tkzTabInit[lgt = 2.35, espcl = 1.5]{$x$ /1, $f(x)$ /1, $f$ /1.5}{$-\infty$, $x_1$, $\alpha$, $x_2$, $+\infty$}
\tkzTabLine{, -, z, , +, , z, -, }
\tkzTabVar{-/ $-\infty$, R/, +/ $\beta$, R/, -/ $-\infty$}
\tkzTabIma{1}{3}{2}{$0$}
\tkzTabIma{3}{5}{4}{$0$}
\end{tikzpicture}
\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.5]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, -, z, -, }
\tkzTabVar{-/ $-\infty$, +/ 0, -/ $-\infty$}
\end{tikzpicture}
\begin{tikzpicture}
\tkzTabInit[lgt = 0, espcl = 1.5]{/1, /1, /1.5}{$-\infty$, $\alpha$, $+\infty$}
\tkzTabLine{, , -, , }
\tkzTabVar{-/ $-\infty$, +/ $\beta$, -/ $-\infty$}
\end{tikzpicture}
\end{document}
那么,有没有办法得到一个漂亮的大表格,其中 sign 和 var 表的所有列都可以很好地对齐且并排?
答案1
下面是一个草图,表达了我关于从 9x4 表格开始并谨慎使用线条的意思。
\documentclass{article}
\usepackage{amssymb}
\usepackage{tikz}
\usepackage{booktabs}
\begin{document}
\newcommand\mynode[3]{\node(#1) at (#2) {\raisebox{0ex}[0.7ex][0ex]{$#3$}};}
\newcommand\xgt
{\begin{tikzpicture}[baseline=-0.5ex]
\mynode{a}{-2,0}{-\infty}
\mynode{b}{-1,0}{x_1}
\mynode{c}{ 0,0}{\alpha}
\mynode{d}{ 1,0}{x_2}
\mynode{e}{ 2,0}{+\infty}
\end{tikzpicture}%
}
\newcommand\xeq
{\begin{tikzpicture}[baseline=-0.5ex]
\mynode{a}{-1,0}{-\infty}
\mynode{b}{ 0,0}{\alpha}
\mynode{c}{ 1,0}{+\infty}
\end{tikzpicture}%
}
\let\xlt\xeq
\newcommand\fxgt[2]%
{\begin{tikzpicture}[baseline=-0.5ex]
\mynode{a}{-1.5,0}{#1}
\mynode{b}{-1 ,0}{0}
\mynode{c}{ 0 ,0}{#2}
\mynode{d}{ 1 ,0}{0}
\mynode{e}{ 1.5,0}{#1}
\end{tikzpicture}%
}
\newcommand\fxeq[1]%
{\begin{tikzpicture}[baseline=-0.5ex]
\mynode{a}{-0.5,0}{#1}
\mynode{b}{ 0 ,0}{0}
\mynode{c}{ 0.5,0}{#1}
\end{tikzpicture}%
}
\newcommand\fgta%
{\begin{tikzpicture}[baseline=3ex]
\mynode{a}{-2,1 }{+\infty}
\mynode{b}{-1,0.5}{0}
\mynode{c}{ 0,0 }{\beta}
\mynode{d}{ 1,0.5}{0}
\mynode{e}{ 2,1 }{+\infty}
\draw[->] (a) -- (b) -- (c);
\draw[->] (c) -- (d) -- (e);
\end{tikzpicture}
}
\newcommand\fgtb%
{\begin{tikzpicture}[baseline=-3ex]
\mynode{a}{-2,-1 }{-\infty}
\mynode{b}{-1,-0.5}{0}
\mynode{c}{ 0, 0 }{\beta}
\mynode{d}{ 1,-0.5}{0}
\mynode{e}{ 2,-1 }{-\infty}
\draw[->] (a) -- (b) -- (c);
\draw[->] (c) -- (d) -- (e);
\end{tikzpicture}
}
\newcommand\feqlta[1]%
{\begin{tikzpicture}[baseline=3ex]
\mynode{a}{-1,1}{+\infty}
\mynode{b}{ 0,0}{#1}
\mynode{c}{ 1,1}{+\infty}
\draw[->] (a) -- (b);
\draw[->] (b) -- (c);
\end{tikzpicture}
}
\newcommand\feqltb[1]%
{\begin{tikzpicture}[baseline=-3ex]
\mynode{a}{-1,-1}{-\infty}
\mynode{b}{ 0, 0}{#1}
\mynode{c}{ 1,-1}{-\infty}
\draw[->] (a) -- (b);
\draw[->] (b) -- (c);
\end{tikzpicture}
}
\newcommand\feqa{\feqlta{0}}
\newcommand\flta{\feqlta{\beta}}
\newcommand\feqb{\feqltb{0}}
\newcommand\fltb{\feqltb{\beta}}
\begin{center}
\def\arraystretch{1.5}%
\begin{tabular}{cc@{\quad}c@{\quad}c}
\toprule
& $\Delta>0$ & $\Delta=0$ & $\Delta<0$ \\
$|S|$ & $2$ & $1$ & $0$ \\
factorisation
& $a\big(x-\frac{-b-\sqrt{\Delta}}{2a}\big)\big(x-\frac{-b+\sqrt{\Delta}}{2a}\big)$
& $a\big(x-\alpha\big)^2$
& N'existe pas dans $\mathbb{R}$ \\
\midrule
$x$ & \xgt & \xeq & \xlt \\
$f(x)$& \fxgt{+}{-}& \fxeq{+} & $+$ \\[1ex]
$f$ & \fgta & \feqa & \flta \\
\midrule
$x$ & \xgt & \xeq & \xlt \\
$f(x)$& \fxgt{-}{+}& \fxeq{-} & $-$ \\[1ex]
$f$ & \fgtb & \feqb & \fltb \\
\bottomrule
\end{tabular}%
\end{center}
\end{document}
简要解释一下它的\mynode
作用:它是 的包装器\node
,以避免重复格式化节点的内容。\mynode
有三个必需参数:第一个是节点的名称(由命令使用\draw
),第二个是图形内节点的坐标,最后一个是节点的内容。 节点的内容由 排版\raisebox{0ex}[0.7ex][0ex]{$#3$}
。\raisebox
注意节点内容在基线上方具有固定高度(0.7ex
)并且在基线下方具有固定深度(第二个0ex
;第一个只是说内容不应该被凸起)。 这是一个技巧\infty
,让x_1
和\alpha
在同一行上;只需删除命令\raisebox
,看看会发生什么。(tikz 将节点的内容集中在给定的坐标处。由于x_1
延伸到基线以下,因此与 相比它将向上移动\alpha
。)