LaTeX合并两个命令创建可切换自定义空白下划线命令
代码问题排查
你给出的代码存在3个核心语法错误:
\newcommand的参数声明格式错误:第二个参数应为命令接收的参数数量,你错误地将空括号写进了命令名后的大括号中,正确的参数声明应为[1],表示命令接收1个输入参数- LaTeX命令大小写敏感:下划线命令是小写的
\underline,而非你写的大写\Underline \phantom没有传入需要占位的内容,空参数无法生成对应长度的占位区域
基础实现版本
直接实现「输入文本转等长带下划线的空白占位」的功能:
\newcommand{\rmv}[1]{\underline{\phantom{#1}}}
使用示例:填写姓名:\rmv{张三李四} 会生成和「张三李四」长度完全一致的下划线空白区域。
带开关切换的进阶实现
可以定义全局开关,一键切换是显示空白占位还是显示原文,方便制作试卷、作业时快速切换题干版和答案版:
% 定义全局开关:false为显示空白占位,true为显示原文 \newif\ifshowanswer \showanswerfalse % 改为\showanswertrue即可全局显示所有原文内容 \newcommand{\rmv}[1]{ \ifshowanswer #1 % 开关开启时直接输出原文 \else \underline{\phantom{#1\hspace{0.2em}}} % 开关关闭时输出等长下划线,额外加0.2em边距避免内容贴边 \fi }
内容的提问来源于stack exchange,提问作者Zac Gotlib
相关产品推荐
相关产品推荐

