dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
少々LaTeXでわからないことがあるので質問させてください。

\input{問題ファイル名}
の問題ファイル名のところに
toi1-kiso.tex
toi2-kiso.tex
toi3-hi.tex
toi4-hi.tex
toi5-kiso.tex
の5つのファイルのなかから"kiso"と名前のつくファイルをランダムで呼びだしたいのですがどうしたらうまくいきますでしょうか?

お力添えいただけたら幸いです。
よろしくお願いします。

A 回答 (2件)

>LaTeXで条件分岐とか乱数生成ってあるのかしら?そもそもLaTeXってプログラミング言語?かなり違うような……。



条件分岐はあります(\if/\ifx/ifcase/\ifnum/\ifcat/\ifdimなど,工夫すれば連想配列もできる(下のサンプルコードにその実例あり)).
乱数生成は相当困難ですが,なんとか擬似乱数は出せます
(random.sty/fp-random.sty).
#そもそもコンピュータで扱えるのは根本的には擬似乱数だけどね。。。
それからTeXそのものはプログラミング言語です
(理論的には任意のアルゴリズムが実装可能なことが証明されています(オートマトンの理論で)・・もちろん効率は無視)

要は
0、1、2を「適当に」ばらして割り当てればいい
のであって「乱数」っぽければいいのでしょう.
そうであれば,\timeでその日の午前0時からの秒数を求めて
3で割ったあまりを考えれば
それらしい「乱数」っぽい値は取得できます.

\@tempcnta\time
\@tempcntb\@tempcnta
\divide\@tempcnta by3\relax
\multiply\@tempcnta by3\relax
\advance\@tempcntb-\@tempcnta

これで\@tempcntbには時間に応じて
0から2までの値が入ります.
あとはこの0から2までの値に対してファイル名を
割り当てればよいのです.

\@namedef{file0}{toi1-kiso.tex}
\@namedef{file1}{toi2-kiso.tex}
\@namedef{file2}{toi5-kiso.tex}

実際に使うときは
\input{\@nameuse{file\the\@tempcntb}}
で動くはず.
奥村さんのとこのWebのTeXでinput以外の動作確認はしています.
    • good
    • 0

LaTeXで条件分岐とか乱数生成ってあるのかしら?そもそもLaTeXってプログラミング言語?かなり違うような……。



いずれにせよ、ここで質問するよりこちらで訊いた方が確実だと思いますよ。

TeX Wiki:
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/

参考までに。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!