Ich habe den folgenden Code, der ein 3x3-Raster mit einem Pfeil darin erzeugt. Einige der Rasterzellen enthalten ein #.
\begin{picture}(185,90)
\put(0,0){\framebox(30,30)}
\put(30,0){\framebox(30,30)}
\put(60,0){\framebox(30,30)}
\put(0,30){\framebox(30,30)}
\put(30,30){\framebox(30,30)}
\put(60,30){\framebox(30,30){\Large{\#}}}
\put(0,60){\framebox(30,30){\Large{\#}}}
\put(30,60){\framebox(30,30){\Large{\#}}}
\put(60,60){\framebox(30,30){\Large{\#}}}
\put(15,45){\vector(1,0){30}}
\end{picture}
Ich möchte eine Beschriftung unter das gezeichnete Bild setzen. Wie kann ich das erreichen? Ich glaube, dass man keine Beschriftung in ein\begin{Bild}. Ich habe auch versucht, es in ein\begin{figure}ohne Erfolg.
Antwort1
Setzen Sie das picture
in ein minipage
. Dadurch kann es in eine Umgebung eingebunden werden figure
, die wiederum ein zulässt \caption
.
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[ht]
\centering
\begin{minipage}{1.3in}
\begin{picture}(185,90)
\put(0,0){\framebox(30,30)}
\put(30,0){\framebox(30,30)}
\put(60,0){\framebox(30,30)}
\put(0,30){\framebox(30,30)}
\put(30,30){\framebox(30,30)}
\put(60,30){\framebox(30,30){\Large{\#}}}
\put(0,60){\framebox(30,30){\Large{\#}}}
\put(30,60){\framebox(30,30){\Large{\#}}}
\put(60,60){\framebox(30,30){\Large{\#}}}
\put(15,45){\vector(1,0){30}}
\end{picture}
\end{minipage}
\caption{Here is my caption.}
\end{figure}
\lipsum[2]
\end{document}
Um den Kommentar des OP weiter zu verfolgen, kann man, um mehrere Bilder in einer einzigen Zeile zu erhalten, benachbarte minipage
s in derselben Zeile platzieren, solange sie die nicht überschreiten \linewidth
.
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[ht]
\centering
\begin{minipage}{1.3in}
\begin{picture}(185,90)
\put(0,0){\framebox(30,30)}
\put(30,0){\framebox(30,30)}
\put(60,0){\framebox(30,30)}
\put(0,30){\framebox(30,30)}
\put(30,30){\framebox(30,30)}
\put(60,30){\framebox(30,30){\Large{\#}}}
\put(0,60){\framebox(30,30){\Large{\#}}}
\put(30,60){\framebox(30,30){\Large{\#}}}
\put(60,60){\framebox(30,30){\Large{\#}}}
\put(15,45){\vector(1,0){30}}
\end{picture}
\end{minipage}
\begin{minipage}{1.3in}
\begin{picture}(185,90)
\put(0,0){\framebox(30,30)}
\put(30,0){\framebox(30,30)}
\put(60,0){\framebox(30,30)}
\put(0,30){\framebox(30,30)}
\put(30,30){\framebox(30,30)}
\put(60,30){\framebox(30,30){\Large{\#}}}
\put(0,60){\framebox(30,30){\Large{\#}}}
\put(30,60){\framebox(30,30){\Large{\#}}}
\put(60,60){\framebox(30,30){\Large{\#}}}
\put(15,45){\vector(1,0){30}}
\end{picture}
\end{minipage}
\caption{Here is my caption.}
\end{figure}
\lipsum[2]
\end{document}
Antwort2
Sie geben einen zu großen Begrenzungsrahmen für das Bild an; außerdem vergessen Sie das leere Argument für die leeren Rahmen. Beachten Sie, dass\Large
nichtnimm ein Argument an.
\documentclass{article}
\usepackage{pict2e}
\begin{document}
\begin{figure}
\centering
\begin{picture}(90,90)
\put(0,0){\framebox(30,30){}}
\put(30,0){\framebox(30,30){}}
\put(60,0){\framebox(30,30){}}
\put(0,30){\framebox(30,30){}}
\put(30,30){\framebox(30,30){}}
\put(60,30){\framebox(30,30){\Large\#}}
\put(0,60){\framebox(30,30){\Large\#}}
\put(30,60){\framebox(30,30){\Large\#}}
\put(60,60){\framebox(30,30){\Large\#}}
\put(15,45){\vector(1,0){30}}
\end{picture}
\caption{A picture}
\end{figure}
\end{document}
Es gibt kein Problem mit mehr als einem Bild:
\documentclass{article}
\usepackage{pict2e}
\begin{document}
\begin{figure}
\centering
\begin{picture}(90,90)
\put(0,0){\framebox(30,30){}}
\put(30,0){\framebox(30,30){}}
\put(60,0){\framebox(30,30){}}
\put(0,30){\framebox(30,30){}}
\put(30,30){\framebox(30,30){}}
\put(60,30){\framebox(30,30){\Large\#}}
\put(0,60){\framebox(30,30){\Large\#}}
\put(30,60){\framebox(30,30){\Large\#}}
\put(60,60){\framebox(30,30){\Large\#}}
\put(15,45){\vector(1,0){30}}
\end{picture}\qquad
\begin{picture}(90,90)
\put(0,0){\framebox(30,30){}}
\put(30,0){\framebox(30,30){}}
\put(60,0){\framebox(30,30){}}
\put(0,30){\framebox(30,30){}}
\put(30,30){\framebox(30,30){}}
\put(60,30){\framebox(30,30){\Large\#}}
\put(0,60){\framebox(30,30){\Large\#}}
\put(30,60){\framebox(30,30){\Large\#}}
\put(60,60){\framebox(30,30){\Large\#}}
\put(15,45){\vector(1,0){30}}
\end{picture}
\caption{A picture}
\end{figure}
\end{document}
Eine bessere Möglichkeit zum Zeichnen des Bildes besteht in der Verwendung von Linien anstelle von Kästen: Dadurch wird die „Verdoppelung“ der inneren Linien vermieden.
\documentclass{article}
\usepackage{pict2e}
\begin{document}
\begin{figure}
\centering
\begin{picture}(90,90)
\polygon(0,0)(90,0)(90,90)(0,90)
\put(30,0){\line(0,1){90}}
\put(60,0){\line(0,1){90}}
\put(0,30){\line(1,0){90}}
\put(0,60){\line(1,0){90}}
\put(15,75){\makebox(0,0){\Large\#}}
\put(45,75){\makebox(0,0){\Large\#}}
\put(75,75){\makebox(0,0){\Large\#}}
\put(75,45){\makebox(0,0){\Large\#}}
\put(15,45){\vector(1,0){30}}
\end{picture}
\caption{A picture}
\end{figure}
\end{document}
Beachten Sie, wie die Grenze mit gezeichnet wird \polygon
.
Antwort3
Die Frage ist ziemlich alt, aber ich wollte die Leistungsfähigkeit und Einfachheit von Folgendem zeigen tikz
:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\foreach \x in {0,1,2,3}
\draw (\x,0)--(\x,3) (0,\x)--(3,\x);
\foreach \x/\y in {0.5/2.5,1.5/2.5,2.5/2.5,2.5/1.5}
\node at (\x,\y) {\Large{\#}};
\draw[-latex] (.5,1.5)--(1.5,1.5);
\end{tikzpicture}
\caption{A picture}
\end{figure}
\end{document}