1. 将文本作为图表的一部分

1. 将文本作为图表的一部分

我刚刚完成了一个 tikz 图表。我需要文本

在下图中,您能对$\angle F$、$\angle B$和$\angle E$说些什么?

移到图表的右侧以节省纸张空间。

这就是我所拥有的:

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}
\definecolor{uuuuuu}{rgb}{0.27,0.27,0.27}
\definecolor{qqqqff}{rgb}{0,0,1}
\definecolor{xdxdff}{rgb}{0.49,0.49,1}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\clip(-4.3,-5.44) rectangle (18.7,6.3);
\draw(0,0) circle (4.01cm);
\draw (-4.01,0)-- (0,0);
\draw (0,0)-- (4.01,0);
\draw (-0.28,4)-- (-4.01,0);
\draw (-0.28,4)-- (4.01,0);
\draw (-4.01,0)-- (1.62,3.67);
\draw (1.62,3.67)-- (4.01,0);
\draw (-2.27,3.3)-- (-4.01,0);
\draw (-2.27,3.3)-- (4.01,0);
\begin{scriptsize}
\fill [color=black] (0,0) circle (1.5pt);
\draw[color=black] (0.14,0.28) node {$A$};
\fill [color=black] (-0.28,4) circle (1.5pt);
\draw[color=black] (-0.12,4.28) node {$B$};
\fill [color=black] (-4.01,0) circle (1.5pt);
\draw[color=black] (-3.84,0.28) node {$C$};
\fill [color=black] (4.01,0) circle (1.5pt);
\draw[color=black] (4.16,0.28) node {$D$};
\fill [color=black] (1.62,3.67) circle (1.5pt);
\draw[color=black] (1.78,3.94) node {$E$};
\fill [color=black] (-2.27,3.3) circle (1.5pt);
\draw[color=black] (-2.14,3.58) node {$F$};
\end{scriptsize}
\end{tikzpicture}

\begin{center} 
In the following diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$? 
\end{center} 

\end{document}

答案1

有两种方法:

1. 将文本作为图表的一部分

您只需在 内添加一个节点即可tikzpicture。它将有助于限制文本的宽度,并使用锚点将其定位到所需的位置。例如:

\node[text width=6cm, anchor=west, right] at (5,0)
    {In this diagram, what can you say about $\angle F$, $\angle B$ and $\angle E$?};

在图片中

2. 将文本置于tikzpicture环境之外。

对于这个解决方案,你必须记住,对于 TeX,你的完整图形就像一个巨大的字符,句子的一部分,因此你可以将文本放在该“字符”后面,TeX 会用它创建一个段落

\begin{tikzpicture}
% Your code
\end{tikzpicture}
In this diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$?

但是如果你用你的代码尝试这个,你会得到以下奇怪的结果:

奇怪的

这是因为您在图中包含了此行:

\clip(-4.3,-5.44) rectangle (18.7,6.3);

这导致图形的宽度为 18.7 厘米,高度为 6.3 厘米。此行是不必要的,可以安全地删除,从而产生:

段落

您可以看到,该图被用作一个大字符,是“正常”段落的一部分。但是结果却很糟糕,因为文本扭曲并延伸到图下方。

可以避免将文本放在里面,\parbox这将产生一个包含文本的固定宽度的框。TeX 会将整个框视为另一个“大字符”,并将其放在图形旁边:

\begin{tikzpicture}
% Your code
\end{tikzpicture}
\parbox[b]{4cm}{
   In this diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$?
}

选项[b]用于指定此框的“基线”在哪里。撰写段落时,基线在同一水平线上对齐。tikz 图片的基线位于其底部,因此如果我们[b]为 parbox 提供选项,使其基线也位于底部,则两者将对齐:

底部对齐

如果省略[b]parbox,则生成的 parbox 的基线将位于其中心。这将使 parbox 的中心与图形的底部对齐,这很难看。为了获得与情况 1(嵌入 tikz 图片的文本)相同的输出,我们需要更改图形的基线,并将其置于其中心。幸运的是,tikz有一个简单的选项可以实现这一点:

\begin{tikzpicture}[baseline=0, ...remaining options...]
% Your code
\end{tikzpicture}
\hskip{1cm}\parbox{4cm}{
   In this diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$?
}

生成:

居中对齐

为了完整性,我还会包括顶部对齐的情况,这比其他情况更棘手一些。您可能会认为,要获得顶部对齐,只需将baselinetikz 图形放在其顶部,然后使用[t]parbox 选项即可。然而,这并不像预期的那样工作。

首先是 tikz 图片。我应该为baseline选项写哪个值?它可以接受一个数字,即从底部边框测量,或节点的坐标。在这种情况下,我知道(阅读代码)圆的半径为4单位,所以我可以使用baseline=4cm,但这没有考虑到标签所需的空间在上面,这不是一个通用的解决方案。通用的解决方案是给出选项baseline=(current bounding box.north)

其次,[t]选项parbox不会将基线放在“该框的顶部”,而是“该框顶行的基线”。因此,第一行文本的基线将与图形的顶部边框对齐,如下图所示(我为该图添加了边框以使问题更加明显):

对齐不良

解决方案是将“空”线作为 的第一行parbox。可以使用 来实现\vskip0pt。这将产生一条没有高度或深度的线,但由于它是 parbox 的第一行,因此它将被用作基线,并且它正好位于该框的顶部。这是代码:

\fbox{\begin{tikzpicture}[baseline=(current bounding box.north), ...]
% Your code
\end{tikzpicture}}
\parbox[t]{4cm}{\vskip0pt
   In this diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$?
}

正确对齐

答案2

你可以使用两种minipage环境。如果你需要剪辑图片,你可以使用trim lefttrim right查看 pgfmanual 的说明。

您不需要加载pgf,只需加载tikz即可减少代码。

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}   
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}

\begin{minipage}{0.5\textwidth}  
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,scale=.6,font=\scriptsize]  

    \draw (0,0) circle (4.01cm) node [above]{$A$};
    \draw (-4.01,0) node[left] {$C$}
          -- (0,0)
          -- (4.01,0) node [right]{$D$} 
          -- (-0.28,4)node[above] {$B$} 
          -- (-4.01,0) 
          -- (1.62,3.67)node[above] {$E$}
          -- (4.01,0) 
          -- (-2.27,3.3) node[above] {$F$} -- cycle;
        \fill [color=black] (0,0) circle (1.5pt)
                          (-0.28,4) circle (1.5pt)
                          (-4.01,0) circle (1.5pt)
                          (4.01,0) circle (1.5pt)
                          (1.62,3.67) circle (1.5pt) 
                          (-2.27,3.3) circle (1.5pt);
    \end{tikzpicture}    
\end{minipage}\hfill
\begin{minipage}{0.5\textwidth}
    In the following diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$? 
\end{minipage}

\end{document} 

在此处输入图片描述

现在如果你想把文本和图形放在顶部

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}   
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}


    \begin{tikzpicture}[baseline=(current bounding box.north),line cap=round,line join=round,>=triangle 45,scale=.6,font=\scriptsize]  

    \draw (0,0) circle (4.01cm) node [above]{$A$};
    \draw (-4.01,0) node[left] {$C$}
          -- (0,0)
          -- (4.01,0) node [right]{$D$} 
          -- (-0.28,4)node[above] {$B$} 
          -- (-4.01,0) 
          -- (1.62,3.67)node[above] {$E$}
          -- (4.01,0) 
          -- (-2.27,3.3) node[above] {$F$} -- cycle;
        \fill [color=black] (0,0) circle (1.5pt)
                          (-0.28,4) circle (1.5pt)
                          (-4.01,0) circle (1.5pt)
                          (4.01,0) circle (1.5pt)
                          (1.62,3.67) circle (1.5pt) 
                          (-2.27,3.3) circle (1.5pt);
    \end{tikzpicture}    
\hfill
\begin{minipage}{0.5\textwidth}
    In the following diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$? 
\end{minipage}

\end{document} 

在此处输入图片描述

答案3

包裹tcolorbox还提供了另一种并排分布图形/表格和文本的方法。box\tcbsidebyside接受两个参数,左侧和右侧的内容并排分布,sidebyside adapt选项允许声明哪个部分将定义空间分布。sidebyside align定义两个部分的垂直对齐方式。

使用TikZ从 Alain 的答案中获取的代码,结果可能是:

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}   
\usetikzlibrary{arrows}
\usepackage[most]{tcolorbox}
\pagestyle{empty}
\begin{document}

\tcbsidebyside[sidebyside adapt=left, blanker, sidebyside gap=1cm, 
               sidebyside align=top seam]{%  
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,scale=.6,font=\scriptsize]  
        \draw (0,0) circle (4.01cm) node [above]{$A$};
        \draw (-4.01,0) node[left] {$C$}
          -- (0,0)
          -- (4.01,0) node [right]{$D$} 
          -- (-0.28,4)node[above] {$B$} 
          -- (-4.01,0) 
          -- (1.62,3.67)node[above] {$E$}
          -- (4.01,0) 
          -- (-2.27,3.3) node[above] {$F$} -- cycle;
        \fill [color=black] (0,0) circle (1.5pt)
                          (-0.28,4) circle (1.5pt)
                          (-4.01,0) circle (1.5pt)
                          (4.01,0) circle (1.5pt)
                          (1.62,3.67) circle (1.5pt) 
                          (-2.27,3.3) circle (1.5pt);
    \end{tikzpicture}%
}{In the following diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$?}

\end{document} 

在此处输入图片描述

并且没有blanker选项,所有tcolorbox花哨的功能都可以应用:

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}   
\usetikzlibrary{arrows}
\usepackage[most]{tcolorbox}
\pagestyle{empty}
\begin{document}

\tcbsidebyside[title=A \texttt{\textbackslash{}tcbsidebyside} example,
sidebyside adapt=left, 
sidebyside gap=1cm, 
bicolor, colback=green!10, colbacklower=yellow!10, drop lifted shadow, fonttitle=\bfseries]{%  
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,scale=.6,font=\scriptsize]  

    \draw (0,0) circle (4.01cm) node [above]{$A$};
    \draw (-4.01,0) node[left] {$C$}
          -- (0,0)
          -- (4.01,0) node [right]{$D$} 
          -- (-0.28,4)node[above] {$B$} 
          -- (-4.01,0) 
          -- (1.62,3.67)node[above] {$E$}
          -- (4.01,0) 
          -- (-2.27,3.3) node[above] {$F$} -- cycle;
        \fill [color=black] (0,0) circle (1.5pt)
                          (-0.28,4) circle (1.5pt)
                          (-4.01,0) circle (1.5pt)
                          (4.01,0) circle (1.5pt)
                          (1.62,3.67) circle (1.5pt) 
                          (-2.27,3.3) circle (1.5pt);
    \end{tikzpicture}%
}{In the following diagram, what can you say about $\angle F$, $\angle B$ and$\angle E$?}

\end{document} 

在此处输入图片描述

相关内容