如何水平对齐独立的 TikZ 图片?

如何水平对齐独立的 TikZ 图片?

今天我发现了一个很棒的包,叫做“standalone”。我真的很喜欢它,因为我在 Tikz 代码中有很多图片,其中一些图片的代码很长,当我试图集中精力于文本而不是图片时,很难处理,也很烦人。所以我的问题是,我有一些小图片,我想将它们对齐在同一行(有时同一行中有 2、3 或 4 张)。假设我有这些独立的图片:

图片1.tex:

    \documentclass{standalone}
    \usepackage{pgf,tikz}
    \usetikzlibrary{arrows}
    \pagestyle{empty}
    \begin{document}
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
    \draw [domain=0.08:3.92] plot(\x,{(--1.04--0.32*\x)/1.96});
    \draw (3.6,0.98) node[anchor=north west] {$l_a$};
    \end{tikzpicture}
    \end{document}

图片2.tex:

    \documentclass{standalone}
    \usepackage{pgf,tikz}
    \usetikzlibrary{arrows}
    \pagestyle{empty}
    \begin{document}
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
    \draw [domain=0.08:3.92] plot(\x,{(--1.04--0.32*\x)/1.96});
    \draw (3.6,0.98) node[anchor=north west] {$l_b$};
    \end{tikzpicture}
    \end{document}

在我的主 Tex 文件主体中:

%... 
impute(Picture1.tex)
impute(Picture2.tex)
%    

我希望我的照片看起来像这样: 在此处输入图片描述

我还希望我的图片下面有一个一般描述。我第一次尝试使用“figure”环境(\begin{figure}.../end{figure}),但图片放在了不同的位置,而不是放在给定的一行文本之后,我不希望图片出现在其他任何地方,比如页面顶部或其他地方。非常感谢您的帮助,如果我的问题太幼稚,我很抱歉,但我才刚刚开始学习这些东西。

答案1

正如 Chris 在评论中所说,您可以使用minipages。要有标题并且不允许浮动,您可以避免figure环境并使用或包\captionof中的宏。captioncapt-of

\documentclass[a4paper,11pt]{article}
\usepackage{standalone}
\usepackage[singlelinecheck=off,hang]{caption}     %% provides \captionof command. capt-of package does this too.
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}

\usepackage{filecontents}

\begin{filecontents*}{picture1.tex}
    \documentclass{standalone}
    \usepackage{pgf,tikz}
    \usetikzlibrary{arrows}
    \pagestyle{empty}
    \begin{document}
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
    \draw [domain=0.08:3.92] plot(\x,{(--1.04--0.32*\x)/1.96});
    \draw (3.6,0.98) node[anchor=north west] {$l_a$};
    \end{tikzpicture}
    \end{document}
\end{filecontents*}

\begin{filecontents*}{picture2.tex}
    \documentclass{standalone}
    \usepackage{pgf,tikz}
    \usetikzlibrary{arrows}
    \pagestyle{empty}
    \begin{document}
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
    \draw [domain=0.08:3.92] plot(\x,{(--1.04--0.32*\x)/1.96});
    \draw (3.6,0.98) node[anchor=north west] {$l_b$};
    \end{tikzpicture}
    \end{document}
\end{filecontents*}

\begin{document}
\begin{minipage}[t]{.45\textwidth}
\includestandalone{picture1}
\captionof{figure}{Some description of figure comes here}
\end{minipage}%
\hfill
\begin{minipage}[t]{.45\textwidth}
\includestandalone{picture2}
\captionof{figure}{Some description of }
\end{minipage}

\end{document}

在此处输入图片描述

或者你可以使用包subfigure中的subcaption选项。在这种情况下,你将需要float提供位置说明符的包[H]

\documentclass[a4paper,11pt]{article}
\usepackage{standalone}
\usepackage[singlelinecheck=off,hang]{caption}     %% for formatting captions
\usepackage{subcaption}
\usepackage{float}   %% for controlling float position, provides [H] postion specifier.
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}

\usepackage{filecontents}

\begin{filecontents*}{picture1.tex}
    \documentclass{standalone}
    \usepackage{pgf,tikz}
    \usetikzlibrary{arrows}
    \pagestyle{empty}
    \begin{document}
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
    \draw [domain=0.08:3.92] plot(\x,{(--1.04--0.32*\x)/1.96});
    \draw (3.6,0.98) node[anchor=north west] {$l_a$};
    \end{tikzpicture}
    \end{document}
\end{filecontents*}

\begin{filecontents*}{picture2.tex}
    \documentclass{standalone}
    \usepackage{pgf,tikz}
    \usetikzlibrary{arrows}
    \pagestyle{empty}
    \begin{document}
    \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
    \draw [domain=0.08:3.92] plot(\x,{(--1.04--0.32*\x)/1.96});
    \draw (3.6,0.98) node[anchor=north west] {$l_b$};
    \end{tikzpicture}
    \end{document}
\end{filecontents*}

\begin{document}
Some text comes here
\begin{figure}[H]
   \begin{subfigure}[t]{.45\textwidth}
        \includestandalone{picture1}
        \caption{Some description of figure comes here}
    \end{subfigure}%
    \hfill
   \begin{subfigure}[t]{.45\textwidth}
        \includestandalone{picture2}
        \caption{Some description of figure}
    \end{subfigure}
\end{figure}

\end{document}

在此处输入图片描述

使用包也可以实现相同的效果subfig。这留作练习。

相关内容