表格对齐、随机、重复较小的视力表图标

表格对齐、随机、重复较小的视力表图标

我女儿需要按照LEA 视力图表测试

我已经手动为她创建了一个新图表,但随机化四个图标并手动对齐它们确实需要很长时间:

我现在拥有的图表

我正在考虑使用 LaTeX 来自动化这个过程。我把这四个图标都作为单独的 PDF(当然,也可以从中派生出任何其他矢量格式)。有人愿意帮我做这个吗,因为我认为这更像是一个“编程 LaTeX”任务,而不是“用 LaTeX 写作”的任务;)我很乐意与我的一位儿科医生好友分享结果,因为我认为这也可能对其他人有所帮助(他们分发了某人在 80 年代收到的传真的旧副本...... - 不是很干净,也没有多大帮助)。

如果有人能帮助我,我将不胜感激。每条线之间的距离和尺寸的减小可以猜测,但应该是可以改变的。

答案1

实现此目的的一种方法是使用pgfmathdeclarerandomlist{<list name>}{{order 1}{order 2}...{order 24}}指定图片的所有可能组合,然后\pgfmathrandomitem随机选择其中一个并将其用作图片的顺序。

图像被放置在一个带有 的表中\TableRow{<scale>},其中<scale>指定要应用于该行图像的比例。

在此处输入图片描述

笔记:

  • 要增加行间距,您可以在每行末尾添加一个尺寸。例如:\\[0.3cm]

进一步增强:

  • 可能的组合数组应该自动生成。

代码:

为了使其正常工作,我将图像保存为1.png、、,2.png并保存在该文件所在的目录中。3.png4.png.tex

\documentclass{article}
\usepackage{graphicx}
\usepackage{xstring}
\usepackage{pgf}

% All possible combination of pictures
% Listed here in increasing numerical order for convenience
\pgfmathdeclarerandomlist{MyRandomList}{%
    {1234} {2134} {3124} {4123}
    {1243} {2143} {3142} {4132}
    {1324} {2314} {3214} {4213}
    {1342} {2341} {3241} {4232}
    {1423} {2413} {3412} {4312}
    {1432} {2431} {3421} {4321}
}

\newcommand{\MaxWidth}{2.0}%  width in cm
\newcommand{\MaxHeight}{2.0}% height in cm

\newcommand*{\MyIncludeGraphics}[3]{% #1= scale
    \pgfmathsetmacro{\Width}{#1*\MaxWidth}%
    \pgfmathsetmacro{\Height}{#1*\MaxHeight}%
    \StrChar{#2}{#3}[\FigureToInclude]% Extract digit from the 4 digit random number
    \includegraphics[width=\Width cm, height=\Height cm]{\FigureToInclude}%
}%

\newcommand*{\TableRow}[1]{%
    \pgfmathrandomitem{\RamdomMemberOfList}{MyRandomList}
    \xdef\OrderOfPictures{\RamdomMemberOfList}
    \MyIncludeGraphics{#1}{\OrderOfPictures}{1} &
    \MyIncludeGraphics{#1}{\OrderOfPictures}{2} &
    \MyIncludeGraphics{#1}{\OrderOfPictures}{3} &
    \MyIncludeGraphics{#1}{\OrderOfPictures}{4}
}%

\begin{document}
\begin{tabular}{c c c c}
    \TableRow{1.0}\\
    \TableRow{0.8}\\
    \TableRow{0.6}\\
    \TableRow{0.4}\\
    \TableRow{0.3}\\
    \TableRow{0.2}\\
    \TableRow{0.1}\\
\end{tabular}
\end{document}

相关内容