LaTeX бимер слайд с символикой людей - PullRequest
0 голосов
/ 05 июня 2019

Я использую LaTeX, чтобы сделать слайд презентации, и я хочу сделать слайд, который показывает студентов, которые находятся на определенном уровне.По сути, я хочу заполнить латексный слайд символами людей, как показано на рисунке ниже:

enter image description here

И я хочу ввести количество строк /колонны синих людей и количество синих и красных людей.

Пожалуйста, помогите мне!Я даже не уверен, с чего начать.

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Вы уже знаете из своего кросспоста , который вы не упомянули в своем вопросе, как заполнить слайд фигурами тикз.Для некоторых других возможных форм, вот несколько предложений:

Используя пакет tikzpeople, можно сделать что-то вроде этого:

\documentclass{beamer}

\usepackage{tikz}
\usepackage{tikzpeople}

\begin{document}
\begin{frame}

\foreach \x in {0,1,...,17}{\tikz{\node[person,shirt=red,scale=2] (B) at (0,0) {};} }%
\foreach \x in {0,1,...,10}{\tikz{\node[person,shirt=blue,scale=2] (B) at (0,0) {};} }

\end{frame}
\end{document}

enter image description here

И даже лучше, чем люди, утки:

\documentclass{beamer}
\usepackage{tikzducks}

\begin{document}
\begin{frame}

\foreach \x in {0,1,...,17}{\tikz{\duck[body=red,scale=0.5];} }%
\foreach \x in {0,1,...,10}{\tikz{\duck[body=blue,scale=0.5];} }

\end{frame}
\end{document}

enter image description here

Или плюшевые мишки:

\documentclass{beamer}
\usepackage{tikzlings}

\begin{document}
\begin{frame}

\foreach \x in {0,1,...,17}{\tikz{\bear[body=red,scale=0.5];} }%
\foreach \x in {0,1,...,10}{\tikz{\bear[body=blue,scale=0.5];} }

\end{frame}
\end{document}

enter image description here

1 голос
/ 05 июня 2019

Tikz предоставляет все, что требуется: цикл и математическая оценка.
Вот предложение. Предполагается, что ваши красные / синие фигуры находятся соответственно в red.pdf и blue.pdf. Я заменил его на красные и синие квадраты в файлах red.pdf и blue.pdf.

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}

\begin{document}
\def\rowwidth{5}
\def\rownumber{3}
\def\threshold{12}
\parindent 0pt
\foreach \i in {0,...,\rownumber}{
  \foreach \j in {0,...,\rowwidth}{
    \pgfmathparse{ifthenelse((6*\i+\j>\threshold),"red","blue")}%
    \includegraphics[width=1cm]{\pgfmathresult}
  }
  \newline
}
\end{document}

enter image description here

Первые строки просто определяют параметры чертежа (\ rowwidth и \ rownumber) и значение при изменении цвета (\ threshold).
\ foreach позволяет делать циклы, а \ i (или \ j) будет принимать последовательные значения 0, 1 и т. д.
\ pgfmathparse - это способ, которым tikz обрабатывает математические выражения. Я использую математическую функцию «fthenelse», которая оценивает свой первый параметр (6 * \ i + \ j> 12) и устанавливает для \ pgfmatresult либо второй, либо третий параметр.
Затем просто используйте этот \ pgfmathresult в качестве аргумента \ includegraphics

Но если ваш рисунок, например, сделан с помощью tikz, вы можете использовать его для указания цвета. Например, я позаимствовал из этой темы tex.se https://tex.stackexchange.com/questions/84275/custom-human-shape-for-tikz следующий рисунок, который соответствует вашим потребностям.

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\usetikzlibrary{positioning,arrows}

\begin{document}
\newcommand{\body}[1]{
\begin{tikzpicture}[#1]
  \node[circle,fill,minimum size=5mm] (head) {};
  \node[rounded corners=2pt,minimum height=1.3cm,minimum width=0.4cm,fill,below = 1pt of head] (body) {};
  \draw[line width=1mm,round cap-round cap] ([shift={(2pt,-1pt)}]body.north east) --++(-90:6mm);
  \draw[line width=1mm,round cap-round cap] ([shift={(-2pt,-1pt)}]body.north west)--++(-90:6mm);
  \draw[thick,white,-round cap] (body.south) --++(90:5.5mm);
\end{tikzpicture}
}

\def\rowwidth{5}
\def\rownumber{3}
\def\threshold{12}
\parindent 0pt
\foreach \i in {0,...,\rownumber}{
  \foreach \j in {0,...,\rowwidth}{
    \pgfmathparse{ifthenelse((6*\i+\j>\threshold),"red","blue")}%
    \edef\mycolor{\pgfmathresult}
    \body{color=\mycolor}
  }
  \newline
}
\end{document}

\edef позволяет сохранить \ pgfmathresult и избежать его заделывания.

enter image description here

...