今天我发现了一个很棒的包,叫做“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 在评论中所说,您可以使用minipage
s。要有标题并且不允许浮动,您可以避免figure
环境并使用或包\captionof
中的宏。caption
capt-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
。这留作练习。