答案1
答案2
您可以利用衬线式数字(通常)具有相同宽度的事实。
\documentclass{article}
\newlength\mylen
\settowidth\mylen{0} % measure width of lining-style numerals
\begin{document}
$\{\overline{00}\kern-\mylen\underline{00}\}$
$\{00\overline{11}\kern-\mylen\underline{11}\}$
\end{document}
或者,你可以利用 和 的宽度\overline
与\underline
它们覆盖的材料一样宽这一事实。例如,
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Cambria Math} % choose a suitable OpenType math font
\begin{document}
$\{\overline{0}\overline{\underline{0}}\underline{0}\}$
$\{00\overline{1}\overline{\underline{1}}\underline{1}\}$
\end{document}
答案3
这是一个相当通用的宏。
这个想法是,首先使用带有上划线的数字本身,然后使用带有下划线的数字幻影来排版两次数字序列。
对于第一步,我们使用一个粘在右侧的零宽度框,其中包含一个底部对齐array
且所有间距参数均设置为零;第二步使用顶部对齐array
。
\documentclass{article}
\usepackage{booktabs}
\ExplSyntaxOn
\NewDocumentCommand{\overunderline}{mmm}
{% #1 is the sequence of digits
% #2 is the sequence of overlines
% #3 is the sequence of underlines
\group_begin:
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{0}
\setlength{\belowrulesep}{\aboverulesep}
\setlength{\cmidrulekern}{0.1em}
\ziggy_overunderline:nnn { #1 } { #2 } { #3 }
\group_end:
}
\seq_new:N \l__ziggy_overunderline_over_seq
\seq_new:N \l__ziggy_overunderline_under_seq
\seq_new:N \l__ziggy_overunderline_digits_seq
\seq_new:N \l__ziggy_overunderline_phantoms_seq
\cs_new_protected:Nn \ziggy_overunderline:nnn
{
\seq_set_split:Nnn \l__ziggy_overunderline_digits_seq { } { #1 }
\seq_set_map:NNn \l__ziggy_overunderline_phantoms_seq \l__ziggy_overunderline_digits_seq
{
\phantom{##1}
}
\clist_map_inline:nn { #2 }
{
\seq_put_right:Nn \l__ziggy_overunderline_over_seq { \cmidrule(lr){##1} }
}
\clist_map_inline:nn { #3 }
{
\seq_put_right:Nn \l__ziggy_overunderline_under_seq { \cmidrule(lr){##1} }
}
\hbox_to_zero:n
{
$\begin{array}[b]{*{\seq_count:N \l__ziggy_overunderline_digits_seq}{c}}
\seq_use:Nn \l__ziggy_overunderline_over_seq {}
\seq_use:Nn \l__ziggy_overunderline_digits_seq { & } \\
\end{array}$\hss
}
\begin{array}[t]{*{\seq_count:N \l__ziggy_overunderline_digits_seq}{c}}
\seq_use:Nn \l__ziggy_overunderline_phantoms_seq { & } \\
\seq_use:Nn \l__ziggy_overunderline_under_seq {}
\end{array}
}
\ExplSyntaxOff
\begin{document}
$\{\overunderline{000}{1-2}{2-3}\}$
$0\overunderline{0000000000}{1-2,3-5}{2-4,6-9}$
\end{document}
第二个例子有一个前导数字,表明垂直放置是正确的。