Создание шаблона из tikzpic

Создание шаблона из tikzpic

У меня есть tile.tex (отдельный файл), который я вызываю в своем основном документе.

Я хочу сделать две вещи

  1. Создайте узор 3x5, сшивая вместе tile.tex. Это значит, что я вызову tile.tex 15 раз.
  2. Мне нужно контролировать вращение каждой плитки. Поскольку моя плитка квадратная, я буду вращать ее только на четыре угла 0,90,180,270.

что мне нужно сделать в следующем коде

\begin{document}
%-----------------------------
\begin{frame}
\frametitle{\color{blue}{Tile}}
\begin{figure}
\input{tile}
\end{figure}
\end{frame}
%-----------------------------
\end{document}

решение1

Объявите свою плитку в standalone.clsдокументе:

\documentclass[tikz]{standalone}
\begin{document}
\tikz \node[draw=red, thick, minimum size=2cm] {A};
\end{document}

Что дает и скорректированную/обрезанную цифру:

Плитка

И включите этот graphicфайл как изображение везде, где вам нужно. tabularМожно использовать для организации их в сетку с разделением или без разделения между столбцами и строками.

\documentclass{beamer}

\begin{document}
\begin{frame}{My title}

{\renewcommand{\arraystretch}{0}
\begin{tabular}{*{5}{@{}c}}
\includegraphics[origin=c,angle=0]{mytile} &
\includegraphics[origin=c,angle=90]{mytile} &
\includegraphics[origin=c,angle=180]{mytile} &
\includegraphics[origin=c,angle=270]{mytile} &
\includegraphics[origin=c,angle=0]{mytile} \\
\includegraphics[origin=c,angle=0]{mytile} &
\includegraphics[origin=c,angle=90]{mytile} &
\includegraphics[origin=c,angle=180]{mytile} &
\includegraphics[origin=c,angle=270]{mytile} &
\includegraphics[origin=c,angle=0]{mytile} \\
\includegraphics[origin=c,angle=0]{mytile} &
\includegraphics[origin=c,angle=90]{mytile} &
\includegraphics[origin=c,angle=180]{mytile} &
\includegraphics[origin=c,angle=270]{mytile} &
\includegraphics[origin=c,angle=0]{mytile} \\
\end{tabular}}

\end{frame}
\end{document}

горка

В случае, если вы используете TikZдля определения фигуры, можно использовать другие решения для построения массива повернутых изображений. Одним из них может быть определение основного изображения как picи повторение его внутри matrixбез разделения столбцов и строк. Ниже приведены некоторые примеры. Исходная фигура взята изищу эффективную альтернативу моему коду tikzpic.

\documentclass[tikz, border=2mm]{standalone} 
\usetikzlibrary{positioning}

\tikzset{
    myfigure/.pic={
        \fill[black] (0,0) rectangle ++(-1,-1);
        \fill[blue] (-1,0) rectangle ++(-3,-1);
        \fill[green] (-4,0)-- ++(-1,0)--++(1,-1)--cycle;
        \fill[blue] (0,-1) rectangle ++(-1,-3);
        \fill[green] (0,-4)-- ++(-1,0)--++(1,-1)--cycle;
        \fill[red] (-4,-1)-- ++(0,-3)--++(3,0)--cycle;
    }
}

\begin{document}
\begin{tikzpicture}
\matrix[column sep=0pt, row sep=0pt] (A) {
    \pic[rotate around={-90:(-2.5,-2.5)}]{myfigure}; & 
    \pic[rotate around={180:(-2.5,-2.5)}]{myfigure}; \\
    \pic{myfigure}; &   
    \pic[rotate around={90:(-2.5,-2.5)}]{myfigure}; \\}; 

\matrix[column sep=0pt, row sep=0pt, right=of A] (B){
    \pic[rotate around={90:(-2.5,-2.5)}]{myfigure}; &   
    \pic{myfigure}; \\ 
    \pic[rotate around={180:(-2.5,-2.5)}]{myfigure}; &  
    \pic[rotate around={-90:(-2.5,-2.5)}]{myfigure}; \\}; 

\matrix[column sep=0pt, row sep=0pt, below=of A]{
    \pic[rotate around={180:(-2.5,-2.5)}]{myfigure}; &  
    \pic[rotate around={90:(-2.5,-2.5)}]{myfigure}; \\ 
    \pic[rotate around={270:(-2.5,-2.5)}]{myfigure}; &  
    \pic[rotate around={0:(-2.5,-2.5)}]{myfigure}; \\}; 

\begin{scope}[shift={(10.5cm,-10.5cm)}]
    \pic at (0,0) {myfigure};
    \pic[rotate=90] at (0,-1) {myfigure};
    \pic[rotate=180] at (1,-1) {myfigure};
    \pic[rotate=270] at (1,0) {myfigure};
\end{scope}
\end{tikzpicture}
\end{document}

введите описание изображения здесь

Связанный контент