将图相对于垂直段的中间居中

将图相对于垂直段的中间居中

最新帖子

感谢 Black Mild 的代码,我几乎得到了我需要的一切。

以下是剩下要做的事情。 如何将图垂直居中于线段 [T21 T22] 的中间,其中 T21 和 T22 是两个节点? 我希望地块位于指示的框架内(无需绘制框架)。更确切地说,我希望地块的高度合适,宽度应与初始地块的比率保持一致。

在此处输入图片描述

这是更新后的代码。

\documentclass{article}

\usepackage{tkz-tab}

\newcommand\signline[3]{
    \draw[blue]
        (#1.east) +(0:.5) pic[right]{%
            code = {
                \draw[->] (0,0)--+(0:2);
                \draw[blue] (0,.5)node[right=2mm]{$+$}
                            --
                            (2,-.5) node[left=2mm]{$-$};
                \path (1,0) node[above,blue]{#3};
        }
    }
}


\begin{document}

\begin{tikzpicture}
    \tkzTabInit[
        espcl = 1.5,
%       help % This shows TikZ names of nodes given by tkz-tab.
    ]{
        $x$                         /1,
        Signe de\\ $-x+3$           /1.5,
        Signe de\\ $f(x)$           /1.5,
        Signe de\\ $x^2 + 3x - 4$   /1.5,
        Signe du\\ produit          /1.5
    }{%
         $-\infty$,    $-4$,    $1$,    $3$,   $+\infty$
    }

    \tkzTabLine { , + , t  , + , t , + , z , - }
    \tkzTabLine { , - , z  , + , z , + , z , - }
    \tkzTabLine { , + , z  , - , z , + , t , + }

    \tkzTabLine { , - , z  , - , z , + , z , + }
    
    \signline{T21}{T22}{$3$}
    ;
\end{tikzpicture}

\end{document}

初始帖子

在下面的代码中我想像下图一样装饰我的表格。

在此处输入图片描述

以下是我对第一个情节(带有线条的情节)的疑问。

  1. 如何使用 3 个节点定义特定的笛卡尔坐标系?在我的代码中,我将始终使用名为 T21、T22 的节点,...\tkzTabInit有一个选项可以查看构建的节点名称。
  2. 如何在另一个笛卡尔坐标系中使用 TikZ 图?

就我而言,我想构建几个标准图(用于线、抛物线)。然后我想将其中一个放在特定的笛卡尔坐标系中。

\documentclass{article}

\usepackage{tkz-tab}

\begin{document}

\begin{tikzpicture}
    \tkzTabInit[
        espcl=1.5,
        %help  % ---> This shows TikZ names given by tkz-tab to nodes.
    ]{
        $x$                         /1,
        Signe de\\ $-x+3$           /1.5,
        Signe de\\ $f(x)$           /1.5,
        Signe de\\ $x^2 + 3x - 4$   /1.5,
        Signe du\\ produit          /1.5
    }{%
         $-\infty$,    $-4$,    $1$,    $3$,   $+\infty$
    }

    \tkzTabLine { , + , t  , + , t , + , z , - }
    \tkzTabLine { , - , z  , + , z , + , z , - }
    \tkzTabLine { , + , z  , - , z , + , t , + }

    \tkzTabLine { , - , z  , - , z , + , z , + }
    
    \draw[blue]
        (T21) node[right=2mm]{UP};
    
    \draw[blue]
        (T22) node[right=2mm]{DOWN};
\end{tikzpicture}

\end{document}

答案1

我认为matrix这更适合这种情况(在桌子上画一些东西)。我没有画虚线,因为没有必要!

在此处输入图片描述

\documentclass{article}
\usepackage{tikz,amsmath,amssymb,amsthm,lipsum}
\usetikzlibrary{matrix}
\begin{document}
\lipsum[1]
\begin{center}
\begin{tikzpicture}
\matrix (m) [matrix of nodes,draw,inner sep=0,
nodes in empty cells,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={minimum height=10mm,minimum width=8mm,anchor=center},
row 1/.style={nodes={minimum height=6mm}},
column 1/.style={nodes={minimum width=2cm,text width=2.1cm,align=center}},
]{
$x$&$-\infty$&&$-4$&&$1$&&$3$&&$+\infty$\\
{Sign de\\$-x+3$}&&$+$&&$+$&&$+$&$0$&$-$&\\
{Sign de\\$f(x)$}&&$-$&$0$&$+$&$0$&$-$&&$-$&\\
{Sign de\\$x^2-3x+4$}&&$+$&$0$&$-$&$0$&$+$&&$+$&\\
{Sign de\\produit}&&$-$&$0$&$-$&$0$&$-$&$0$&$+$&\\
};
\foreach \i in {1,2,3,4}
\draw 
(m-\i-1.south west)--(m-\i-10.south east);
\draw 
(m-1-1.north east)--(m-5-1.south east);
\path 
(m-4-10.east) +(0:.5) node[right,draw,blue]{Another plot}
(m-3-10.east) +(0:.5) node[right,blue]{Cf. q1}
(m-2-10.east) +(0:.5) pic[right]{code={
\draw[->] (0,0)--+(0:2);
\draw[blue] (0,-.5)node[right=2mm]{$-$}--
(2,.5) node[left=2mm]{$+$};
\path (1,0) node[above,blue]{$3$};
}}
;
\end{tikzpicture}
\end{center}
\lipsum[2]  
\end{document}  

答案2

感谢 Black Mild 的解决方案只需在网上搜索一下,我就能完成这项工作。下面是一段代码,可以完成我需要的工作,如下面的屏幕截图所示(API 不是用户友好的,但从我的角度来看,最难的部分已经完成了)。

在此处输入图片描述

\documentclass{article}

% Sources
%   + https://tex.stackexchange.com/a/549546/6880
%   + https://groups.google.com/forum/#!topic/fr.comp.text.tex/X6aIq-SZDFA

\usepackage{tkz-tab}
\usetikzlibrary{calc}

\newcommand\signline[3]{
    \coordinate (M) at ($(#1)!.5!(#2)$); 
    \path
        (M.east) +(.75,0) pic[right]{%
            code = {
                \draw[->] (0,0)--+(0:2);
                \draw[blue] (0,.5)node[right=2mm]{$+$}
                            --
                            (2,-.5) node[left=2mm]{$-$};
                % Root
                \path (1,0) node[above,blue]{#3};
        }
    };
}


\newcommand\signparabola[4]{
    \coordinate (M) at ($(#1)!.5!(#2)$); 
    \path
        (M.east) +(.75,0) pic[right]{%
            code = {
                \draw[->] (0,0)--+(0:2.5);
                \draw[blue] (0.25,-.6) parabola bend (1.25,.6) (2.25,-.6);
                \path (1.25,0) node[above,blue]{$+$};
                \path (.275,-.3) node[left,blue]{$-$};
                \path (2.25,-.3) node[right,blue]{$-$};
                % Roots
                \path (.25,0) node[above,blue]{#3};
                \path (2.125,0) node[above,blue]{#4};
        }
    };
}


\newcommand\comment[3]{
    \coordinate (M) at ($(#1)!.5!(#2)$); 
    \path
        (M.east) +(.75,0) node[right,blue]{#3}
    ;
}


\begin{document}

\begin{tikzpicture}
    \tkzTabInit[
        espcl = 1.5,
%       help % This shows TikZ names of nodes given by tkz-tab.
    ]{
        $x$                         /1,
        Signe de\\ $-x+3$           /1.5,
        Signe de\\ $f(x)$           /1.5,
        Signe de\\ $x^2 + 3x - 4$   /1.5,
        Signe du\\ produit          /1.5
    }{%
         $-\infty$,    $-4$,    $1$,    $3$,   $+\infty$
    }

    \tkzTabLine { , + , t  , + , t , + , z , - }
    \tkzTabLine { , - , z  , + , z , + , z , - }
    \tkzTabLine { , - , z  , + , z , - , t , - }

    \tkzTabLine { , + , z  , + , z , - , z , - }
    
    \signline{T21}{T22}{$3$}
    \comment{T22}{T23}{Voir Q.1-a)}
    \signparabola{T23}{T24}{$-4$}{$1$}
\end{tikzpicture}

\end{document}

相关内容