在编译期间获取用户输入

在编译期间获取用户输入

深受启发Paulo Cereda 的回答除了创建文档之外,TeX 还可用于其他用途。如果您还没有看过上述程序:这是一个 Reversi TeX 游戏,在编译期间会询问用户下一步该怎么做并提供反馈。最后,整个游戏将以 dvi 的形式生成。

马上就出现了这个实用方法:询问用户布局、颜色、语言。等等未知领域

我尝试分析 Reversi 游戏,但其编写并不便于阅读。我四处搜索,但用户输入 TeX 程序并不是一件日常的事情。

我如何获取编写文档的用户的输入?

例如,我可以询问用户的姓名,然后打印“Hello, [user's name]”。

更新 1:我现在偶然发现了这个\read宏,它似乎正在路上,但它并不是我真正想要的。

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}

\begin{document}

Hello, \read

\end{document}

更新 2:大卫·卡莱尔向我指出makebst一个生成 bibTeX 样式的程序。我正在研究源代码。

答案1

\typein[var]{message}LaTeX 提供了可以执行您要查找的操作的命令:

\documentclass{article}
\begin{document}
\typein[\name]{What's your name? } % take user input
Hello \name!
\end{document}

还有\typeout{message}在控制台上输出文本的兄弟命令。

答案2

makebst发现这个代码似乎可以在 TeX 中工作。

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}

\newread\ttyin

\def\defpar{\par}
\def\remblk#1 @@{#1}
\def\ask#1#2{\mes{#2}\read\ttyin to #1\ifx#1\defpar\def#1{}\else
  \edef#1{\expandafter\remblk#1@@}\fi}

\begin{document}

\ask{\name}{What is your name?}

Hello, \name

\end{document}

相关内容