深受启发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}