使用 TikZ 将 LaTeX 表头和特定列中的内容居中

使用 TikZ 将 LaTeX 表头和特定列中的内容居中

我正在使用 TikZ 制作 LaTeX 表格,面临两个挑战。首先,我希望表格标题中的内容居中。其次,我需要第三列中的内容也居中,类似于第二张图片中的外观。有人可以提供代码片段或指导来实现这两个格式要求吗?

图片 1

图片2

这是我的尝试

\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{amsmath, amssymb} % For mathematical symbols and fonts
\usepackage[showframe]{geometry}
\usepackage{tikz}
\usepackage{rotating} % For rotating tables

\begin{document}
    \begin{sidewaystable}
        \centering
        \begin{tabular}{|p{4cm}|p{2.5cm}|p{5.2cm}|p{5.2cm}|}
            \hline
            La fonction & Domaine de définition & Tableau des variations & La courbe\\
            \hline
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            La fonction trinome du second degré (parabole) $x\to ax^{2}+bx+c$ $(a\neq 0)$ & $D_{f}=\mathbb{R}$ & 
            Si $a>0$ 
            \begin{center}
                \begin{tikzpicture}[scale=0.5]
                    % Styles 
                    \tikzstyle{cadre}=[thin]
                    \tikzstyle{fleche}=[->,>=latex,thin]
                    \tikzstyle{nondefini}=[lightgray]
                    % Dimensions Modifiables
                    \def\Lrg{1.5}
                    \def\HtX{1}
                    \def\HtY{0.5}
                    % Dimensions Calculées
                    \def\lignex{-0.5*\HtX}
                    \def\lignef{-1.5*\HtX}
                    \def\separateur{-0.5*\Lrg}
                    % Largeur du tableau
                    \def\gauche{-1.5*\Lrg}
                    \def\droite{4.5*\Lrg}
                    % Hauteur du tableau
                    \def\haut{0.5*\HtX}
                    \def\bas{-1.5*\HtX-2*\HtY}
                    % Ligne de l'abscisse : x
                    \node at (-1*\Lrg,0) {$x$};
                    \node at (0*\Lrg,0) {$-\infty$};
                    \node at (2*\Lrg,0) {$-\frac{b}{2a}$};
                    \node at (4*\Lrg,0) {$+\infty$};
                    % Ligne de la fonction : f(x)
                    \node  at (-1*\Lrg,{-1*\HtX+(-1)*\HtY}) {$f(x)$};
                    \node (f1) at (0*\Lrg,{-1*\HtX+(0)*\HtY}) {$$};
                    \node (f2) at (2*\Lrg,{-1*\HtX+(-2)*\HtY}) {$f\left(-\frac{b}{2a}\right)$};
                    \node (f3) at (4*\Lrg,{-1*\HtX+(0)*\HtY}) {$$};
                    % Flèches
                    \draw[fleche] (f1) -- (f2);
                    \draw[fleche] (f2) -- (f3);
                    % Encadrement
                    \draw[cadre] (\separateur,\haut) -- (\separateur,\bas);
                    \draw[cadre] (\gauche,\haut) rectangle  (\droite,\bas);
                    \draw[cadre] (\gauche,\lignex) -- (\droite,\lignex);
                \end{tikzpicture}
            \end{center}
            %:-+-+-+-+- Fin
            Si $a<0$
            \begin{center}
                \begin{tikzpicture}[scale=0.5]
                    % Styles 
                    \tikzstyle{cadre}=[thin]
                    \tikzstyle{fleche}=[->,>=latex,thin]
                    \tikzstyle{nondefini}=[lightgray]
                    % Dimensions Modifiables
                    \def\Lrg{1.5}
                    \def\HtX{1}
                    \def\HtY{0.5}
                    % Dimensions Calculées
                    \def\lignex{-0.5*\HtX}
                    \def\lignef{-1.5*\HtX}
                    \def\separateur{-0.5*\Lrg}
                    % Largeur du tableau
                    \def\gauche{-1.5*\Lrg}
                    \def\droite{4.5*\Lrg}
                    % Hauteur du tableau
                    \def\haut{0.5*\HtX}
                    \def\bas{-1.5*\HtX-2*\HtY}
                    % Ligne de l'abscisse : x
                    \node at (-1*\Lrg,0) {$x$};
                    \node at (0*\Lrg,0) {$-\infty$};
                    \node at (2*\Lrg,0) {$-\frac{b}{2a}$};
                    \node at (4*\Lrg,0) {$+\infty$};
                    % Ligne de la fonction : f(x)
                    \node  at (-1*\Lrg,{-1*\HtX+(-1)*\HtY}) {$f(x)$};
                    \node (f1) at (0*\Lrg,{-1*\HtX+(-2)*\HtY}) {$$};
                    \node (f2) at (2*\Lrg,{-1*\HtX+(0)*\HtY}) {$f\left(-\frac{b}{2a}\right)$};
                    \node (f3) at (4*\Lrg,{-1*\HtX+(-2)*\HtY}) {$$};
                    % Flèches
                    \draw[fleche] (f1) -- (f2);
                    \draw[fleche] (f2) -- (f3);
                    % Encadrement
                    \draw[cadre] (\separateur,\haut) -- (\separateur,\bas);
                    \draw[cadre] (\gauche,\haut) rectangle  (\droite,\bas);
                    \draw[cadre] (\gauche,\lignex) -- (\droite,\lignex);
                \end{tikzpicture}
            \end{center}
            %:-+-+-+-+- Fin
            & Si $a>0$
            \begin{center}
                \begin{tikzpicture}[>=latex,scale=0.22]
                    % Axes
                    \draw[->] (-9,0) -- (9,0) node[right] {$x$};
                    \draw[->] (0,-9) -- (0,9) node[above] {$y$};
                    % Grid
                    \foreach \x in {-9,...,9}
                    \draw[gray,dashed] (\x,-9) -- (\x,9);
                    \foreach \y in {-9,...,9}
                    \draw[gray,dashed] (-9,\y) -- (9,\y);
                \end{tikzpicture}
            \end{center}
            Si $a<0$
            \begin{center}
                \begin{tikzpicture}[>=latex,scale=0.22]
                    % Axes
                    \draw[->] (-9,0) -- (9,0) node[right] {$x$};
                    \draw[->] (0,-9) -- (0,9) node[above] {$y$};
                    % Grid
                    \foreach \x in {-9,...,9}
                    \draw[gray,dashed] (\x,-9) -- (\x,9);
                    \foreach \y in {-9,...,9}
                    \draw[gray,dashed] (-9,\y) -- (9,\y);
                \end{tikzpicture}
            \end{center}
            \\ \hline
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            La fonction Homographique ${x\to \dfrac{ax+b}{cx+d}}$ & ${D_{f}=\mathbb{R}-\left\{-\frac{d}{c}\right\}}$ & On pose ${\Delta=\begin{vmatrix}
                    a & b\\ 
                    c & d 
                \end{vmatrix}=ad-bc}$ & Row 2, Cell 4 \\
            \hline
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            Row 3, Cell 1 & Row 3, Cell 2 & Row 3, Cell 3 & Row 3, Cell 4 \\
            \hline
        \end{tabular}
        \caption{A Corrected Table}
        \label{tab:corrected}
    \end{sidewaystable}
    
\end{document}

答案1

tabularray包装

  • 我们可以将a>0a<0放在两个不同的表格线上,以便它们对齐。使用hline{1,2,4-Z} = {0.4pt,solid},我们不会绘制该线
  • 主要的困难是将变体表与图形垂直居中。我们可以将这个图放在一个框中来测量它的高度\hgraph,我们可以\parbox通过指示这个高度来使变体表居中\parbox[c][\hgraph]{\linewidth}
  • \tikstsyle已经贬值,我换成了tikzset

备注:第一列宽度为 4 厘米,我们有一个Underdull,我将其修改为 3.8 厘米,我还添加了可能的同形连字符homogra\-phi\-que 第二列宽度为 2.5 厘米,我们有一个Overfull,我将其修改为 2.6 厘米最后两列带有 X,它们占据了剩余的最大宽度。我擅自将其更改\to\mapstoHomographiquehomographique

代码

\documentclass[landscape]{article}
\usepackage{amsmath, amssymb} % For mathematical symbols and fonts
\usepackage[showframe]{geometry}
\usepackage{tikz}
%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tabularray}
\newlength{\hgraph}
\newsavebox{\mybox}
\savebox{\mybox}{%
\begin{tikzpicture}[>=latex,scale=0.22]
% Axes
\draw[->] (-9,0) -- (9,0) node[right] {$x$};
\draw[->] (0,-9) -- (0,9) node[above] {$y$};
% Grid
\foreach \x in {-9,...,9}
\draw[gray,dashed] (\x,-9) -- (\x,9);
\foreach \y in {-9,...,9}
\draw[gray,dashed] (-9,\y) -- (9,\y);
\end{tikzpicture}}
\settoheight{\hgraph}{\usebox{\mybox}}
%%%%%%%%%%%%%
\tikzset{
    cadre/.style={thin},
    fleche/.style={->,>=latex,thin},
    nondefini/.style={lightgray}
}
% Dimensions Modifiables
\def\Lrg{1.5}
\def\HtX{1}
\def\HtY{0.5}
% Dimensions Calculées
\def\lignex{-0.5*\HtX}
\def\lignef{-1.5*\HtX}
\def\separateur{-0.5*\Lrg}
% Largeur du tableau
\def\gauche{-1.5*\Lrg}
\def\droite{4.5*\Lrg}
% Hauteur du tableau
\def\haut{0.5*\HtX}
\def\bas{-1.5*\HtX-2*\HtY}

\begin{document}
\noindent
\begin{tblr}{
    % with wd=4cm,for the first  we have underfull
    % with wd=2.5cm,for the second we have underfull
    colspec={Q[wd=3.8cm]Q[wd=2.6cm,c] *{2}{X}},
    row{1}={c,m},
    vlines= {0.4pt,solid},
    hline{1,2,4-Z} = {0.4pt,solid},
        }
La fonction& Domaine de définition & Tableau des variations& La courbe\\
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
La fonction trinome du second degré (parabole) $x\mapsto ax^{2}+bx+c$ $(a\neq 0)$ & $D_{f}=\mathbb{R}$
&Si $a>0$

\parbox[c][\hgraph]{\linewidth}{%
{\centering%
    \begin{tikzpicture}[scale=0.5]
    % Ligne de l'abscisse : x
        \node at (-1*\Lrg,0) {$x$};
        \node at (0*\Lrg,0) {$-\infty$};
        \node at (2*\Lrg,0) {$-\frac{b}{2a}$};
        \node at (4*\Lrg,0) {$+\infty$};
        % Ligne de la fonction : f(x)
        \node  at (-1*\Lrg,{-1*\HtX+(-1)*\HtY}) {$f(x)$};
        \node (f1) at (0*\Lrg,{-1*\HtX+(0)*\HtY}) {$$};
        \node (f2) at (2*\Lrg,{-1*\HtX+(-2)*\HtY}) {$f\left(-\frac{b}{2a}\right)$};
        \node (f3) at (4*\Lrg,{-1*\HtX+(0)*\HtY}) {$$};
        % Flèches
        \draw[fleche] (f1) -- (f2);
        \draw[fleche] (f2) -- (f3);
        % Encadrement
        \draw[cadre] (\separateur,\haut) -- (\separateur,\bas);
        \draw[cadre] (\gauche,\haut) rectangle  (\droite,\bas);
        \draw[cadre] (\gauche,\lignex) -- (\droite,\lignex);
    \end{tikzpicture}\par}
}
    %:-+-+-+-+- Fin
& Si $a>0$

{\centering \usebox{\mybox}\par}                                                                           \\
%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
&& Si $a<0$

\parbox[c][\hgraph]{\linewidth}{\centering
    \begin{tikzpicture}[scale=0.5]
        % Ligne de l'abscisse : x
        \node at (-1*\Lrg,0) {$x$};
        \node at (0*\Lrg,0) {$-\infty$};
        \node at (2*\Lrg,0) {$-\frac{b}{2a}$};
        \node at (4*\Lrg,0) {$+\infty$};
        % Ligne de la fonction : f(x)
        \node  at (-1*\Lrg,{-1*\HtX+(-1)*\HtY}) {$f(x)$};
        \node (f1) at (0*\Lrg,{-1*\HtX+(-2)*\HtY}) {$$};
        \node (f2) at (2*\Lrg,{-1*\HtX+(0)*\HtY}) {$f\left(-\frac{b}{2a}\right)$};
        \node (f3) at (4*\Lrg,{-1*\HtX+(-2)*\HtY}) {$$};
        % Flèches
        \draw[fleche] (f1) -- (f2);
        \draw[fleche] (f2) -- (f3);
        % Encadrement
        \draw[cadre] (\separateur,\haut) -- (\separateur,\bas);
        \draw[cadre] (\gauche,\haut) rectangle  (\droite,\bas);
        \draw[cadre] (\gauche,\lignex) -- (\droite,\lignex);
    \end{tikzpicture}\par}
                                                                                & Si $a<0$

{\centering \usebox{\mybox}\par}
\\
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
La fonction Homogra\-phi\-que ${x\mapsto \dfrac{ax+b}{cx+d}}$ & ${D_{f}=\mathbb{R}-\left\{-\frac{d}{c}\right\}}$ & On pose ${\Delta=\begin{vmatrix}
    a & b\\ 
    c & d 
\end{vmatrix}=ad-bc}$ & Row 2, Cell 4 \\
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Row 3, Cell 1 & Row 3, Cell 2 & Row 3, Cell 3 & Row 3, Cell 4 \\
\end{tblr}
\end{document}

在此处输入图片描述

相关内容