使用 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 cm 最後兩列以 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}

在此輸入影像描述

相關內容