非考试资料中的填空类文字

非考试资料中的填空类文字

我想在非考试文档中制作填空类型的文本。这是我想要的结果:

Let A be a subset of R, A called measurable set if m*(...) = ........, for all .... in R

我知道可以使用 examdesign 类来完成此任务。但我不想只为这个任务使用另一个类。

这是我尝试创建上述示例。

\documentclass{article}
\usepackage{amsmath}
\begin{document}
Let $A$ be a subset of $\mathbf{R}$, $A$ called measurable set
if $m^*(\ldots) = \ldots \ldots \ldots, 
\text{ for all } \ldots \ldots \text{ in } \mathbf{R}$.
\end{document}

但我想要的解决方案是使用类似的东西\blank{some text}来代替点。

额外:点必须比替换的文本长。

因此,我可以写:

if $m^*(\blank{B}) = \blank{m^*(A \cap B) + m^*(A \cap B^c)}
\text{ for all } \blank{B} \text{ in } \mathbf{R}$.

我如何实现这个目标?

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}

\def\blank#1{\setbox0\hbox{$#1$}\hbox to \wd0{\dotfill}}

\begin{document}

if $m^*(\blank{B}) = \blank{m^*(A \cap B) + m^*(A \cap B^c)}
\text{ for all } \blank{B} \text{ in } \mathbf{R}$.

\end{document}

答案2

该命令\mdotfill绘制一些虚线,其宽度等于其参数的宽度加上1em(正如问题所要求的那样);使用可选参数,您可以将额外的长度增加所需的量:

\documentclass{article}
\usepackage{amsmath}

\DeclareMathOperator{\mes}{m}

\newlength\mylen
\newcommand\mdotfill[2][1em]{%
  \settowidth\mylen{$#2$}
  \addtolength\mylen{#1}
  \leavevmode\hbox to \mylen{\xleaders\hbox{.}\hfill}}

\begin{document}

$\mes^*(A \cap B) + \mes^*(A \cap B^c)$

\mdotfill{\mes^*(A \cap B) + \mes^*(A \cap B^c)}

\mdotfill[2em]{\mes^*(A \cap B) + \mes^*(A \cap B^c)}

\end{document}

在此处输入图片描述

答案3

我偏爱可读性;)

\documentclass{article}
\usepackage{amsmath}

\newlength{\blankwidth}
\newcommand{\blank}[1]{%
  \ifmmode\settowidth{\blankwidth}{\ensuremath{{#1}{#1}{#1}}}%
  \else\settowidth{\blankwidth}{{#1}{#1}{#1}}%
  \fi
  \makebox[\blankwidth]{\dotfill}}

\begin{document}
if $m^*(\blank{B}) = \blank{m^*(A \cap B)} + m^*(A \cap B^c)
\text{ for all } \blank{B} \text{ in } \mathbf{R}$.
\end{document}

在此处输入图片描述

答案4

这应该足够了:\def\blank{\makebox[2cm]{\dotfill}}。用法:$A$ \blank $B$。我认为需要比原来更多的空间,所以建议不同。另一个版本:\def\blank#1{\makebox[#1]{\dotfill}}

相关内容