\documentclass{article}
\usepackage{ctex}
\begin{document}
% {}里字符的占位宽度,可以是多个
phantom a\phantom{xvvv\\ xx}b phantom
\end{document}
如代码所示,运行后发现phantom里的换行占位并没有生效.原本的意图是想用这个把数学题的答案隐藏掉的同时还能留出相应的空位给学生.
很早以前我见过这样的答案,但是我现在忘了在哪看到的了。
\documentclass{ctexart}
\usepackage{xeCJKfntef}
\usepackage{xcolor}
\usepackage{tagging}
\usetag{ans}% 注释掉该行语句不显示答案
\newcommand{\answer}[1]{\iftagged{ans}{\CJKunderline{#1}}{{\CJKunderline[textformat=\color{white}]{#1}}}}
\begin{document}
圆是\answer{到定点的距离等于定长的点的集合}.
圆是\answer{到定点的距离等于定长的点的集合}.
圆是\answer{到定点的距离等于定长的点的集合}.
圆是\answer{到定点的距离等于定长的点的集合}.
\end{document}
这个我也看到过,做填空题可以,做解答题没办法把那个下划线去掉
参考自:向老师的链接
其中关于
long
型命令的介绍也许能解答你的疑惑。@u70550 实际并非是这个原因。而是
\phantom
把它的参数放到一个受限水平模式的盒子里,这个模式下无法换行,也无法使用垂直模式下的命令,\\
会触发强制换行,但是在受限水平模式下无效。可以试试
aa \mbox{bb\\ cc} dd
,强制换行也是无效的,去掉\mbox
则可以。@u10307 嘶...晚上有点忙没测试,真抱歉...那有什么好办法实现
\phantom
换行这一功能吗?@u70550 做到完全和没有换行的
\phantom
一样应该是没办法的,原因是 TeX 不能从水平盒子中自由截取任意长度的内容(并且保持正确的断词)。要想换行只能放在垂直盒子中(\parbox
等,但文字宽度固定)。如果只是想让空白的长度和长内容的基本一致,可以计算长内容的宽度,然后用多个小间距模拟,等等。
也可按
\\
分割内容,然后对它们分别用\phantom
。@u10307 好的,谢谢雾月老师❤!