随机选择两个可能的文本之一

随机选择两个可能的文本之一

假设我有两个可能的问题。我只希望其中一个出现在生成的 PDF 中,并且我希望从两个潜在候选中随机选择这一问题。

我认为这就足够了:(最少代码)

\documentclass{article} 
\usepackage{tikz}

\begin{document}

\pgfmathifthenelse{\pgfmathrnd >= 0.5}{%
My first question.%
Potentially has more than one line.%
}{%
My second question%
Potentially has more than one line%
}

\end{document}

对我来说这似乎合乎逻辑:我生成一个介于 0 和 1 之间的随机数,如果它大于 0.5,我有一个版本,如果它小于 0.5,我有一个版本,并且由于每次编译时都会生成随机数,所以每次编译时我都会有两个版本之一。

但是,我得到了很多错误。我想也许我不能打破跨行{...}\ifthenelse所以为了理解,我尝试了

\ifthenelse{\pgfmathrnd >= 0.5}{A}{B}

但还是无济于事。我不太明白是否应该这样做,A"A"后者也不起作用。

我也尝试过使用etoolbox,但没有更好的结果。(据我所知,必须toggle在序言中声明,最好把我的两个可能的问题放在一个单独的文件中,然后我会把它input放在主文件中。)


背景以及我为什么要这么做

我正在做一个纸笔实验(可以把它看作一个测验或调查)。问题有两个可能的答案。我希望答案的顺序是随机的,以防止顺序效应。因此我希望问题是随机的

这是问题的正文。

(1)答案 alpha

(2)答案 gamma

请回答(1)或(2)

或者

这是问题的正文。

(1)答案 gamma

(2)答案 alpha

请回答(1)或(2)

假设我的实验是一个文件total.tex,我的问题在 中questions.tex。如果我有 10 个受试者,我将在 上循环 10 次\include{questions.tex}以生成 10 张决策表。我希望这 10 张决策表随机不同,这就是我的问题。

答案1

如果你想坚持使用 PGF 的随机函数

\documentclass{article}
\usepackage{pgffor}  % you do not need full tikz for this

\begin{document}

\foreach \i in {1,...,10}{
  \pgfmathrandom{2}  % store 1 or 2 in \pgfmathresult
  \ifnum\pgfmathresult>1%
    My first question.%
    Potentially has more than one line.%
  \else
    My second question%
    Potentially has more than one line%
  \fi
  \par
}

\end{document}

请记住,每次编译 PGF 都会生成相同的随机数序列,除非您使用 指定不同的种子\pgfmathsetseed。每个不同的种子将对应不同的随机序列。

答案2

\ifthenelse默认情况下不提供该宏,但需要\usepackage{ifthen}或更好的\usepackage{xifthen}。但是,其测试不能(轻易)允许进行十进制数比较。

您可以使用 PGF 功能来实现:

\documentclass{article}
\usepackage{tikz}

\newcommand{\first}{My first question.
Potentially has more than one line.}
\newcommand{\second}{My second question.
Potentially has more than one line.}

\begin{document}

\pgfmathparse{rnd >= 0.5 ? "\first" : "\second"}\pgfmathresult

\pgfmathparse{rnd >= 0.5 ? "\first" : "\second"}\pgfmathresult

\pgfmathparse{rnd >= 0.5 ? "\first" : "\second"}\pgfmathresult

\end{document}

当然,您可以为此定义一个宏,但这只作为练习。

在此处输入图片描述

相关内容