LaTeX投影仪幻灯片与人的象征

时间:2019-06-05 02:48:24

标签: latex beamer

我正在使用LaTeX制作演示幻灯片,我想制作一张幻灯片以显示处于一定水平的学生。基本上,我要用人物符号填充乳胶幻灯片,如下图所示:

enter image description here

我想输入蓝人的行数/列数以及蓝人和红人的人数。

请帮助我!我什至不知道从哪里开始。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您已经从问题中未提到的crosspost知道如何用tikz形状填充幻灯片。对于其他可能使用的形状,这里有一些建议:

使用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