我想复制以下文本
但我通过 Detexify 或通过全面的 LaTeX 符号列表。我还尝试过将竖线和上划线结合起来,比如
\left\lvert\overline{ \alpha }\rvert\right
\overline{\left\lvert \alpha \rvert\right}
导致不理想的结果。
答案1
有一些问题需要考虑:
行宽
TeX 中的标准线宽是
0.4pt
,它在 TeX 中被硬编码为26214sp
。\overline
使用不同的线宽。它取自 TeX 中数学字体系列 3 的字体参数 8。标准数学字体(Computer Modern)适用
0.39998pt
于所有字体大小。但它可以扩展到其他字体,例如mathptmx
带有10pt
类选项的包:0.3999pt
在\textfont
(\textstyle
/\displaystyle
)0.29591pt
在\scriptfont
(\scriptstyle
)0.23993pt
在\scriptscriptfont
(\scriptscriptstyle
)
\overline
TeX
\overline{...}
以下列方式构造一个θ
带有线宽的(伪代码):\vbox{ \kern θ \hrule height θ \kern 3*θ \hbox{$...$} }
尤其是在标线上方留有空白。这很有用,例如,如果上划线的符号放在分数的分母中。
TeX 对 的数学表达式使用了狭窄的数学样式
\overline
。这意味着,上标会稍微向下移动,以获得更好的视觉效果。
因此,这\overline
看起来是“房屋”符号的不错选择。但是,垂直线应使用与 相同的线宽\overline
。
间距
\overline
TeX在公式和 中的线之间插入 3 * θ(θ = 的线宽)\overline
。如果不失去 cramped 样式,则无法轻松更改此设置。(据我所知,只有 LuaTeX 可以明确设置 cramped 样式。)在 的行上方添加了额外的空格
\overline
,请参见上文。通常符号都有侧边距,即符号左右两侧的空格。TeX 中通常无法提供确切的数值。该示例使用 2 * θ 作为垂直线和公式之间的水平空间。此外,在垂直线外还放置了 1.5 * θ 的水平空间。新符号的某种侧边距可避免与内置的数学表达式相接触。
由于 OP 想要更长的台词(见评论),该示例添加了 2 * θ 作为额外的深度。 (3 * θ 似乎太大,因为没有下划线需要与公式保持一定距离。)
完整的示例还考虑了不同的数学风格,因此宏\house
尊重当前的数学大小。
\documentclass{article}
\usepackage{mathptmx}
\makeatletter
\newcommand*{\house}[1]{%
\mathord{%
\mathpalette\@house{#1}%
}%
}
\newcommand*{\@house}[2]{%
% #1: math style
% #2: expression that gets the "house"
% get the line width of `\overline' in the current math font size
\dimen@=\fontdimen8 %
\ifx#1\scriptscriptstyle\scriptscriptfont
\else\ifx#1\scriptstyle\scriptfont
\else\textfont\fi\fi
3 %
\sbox0{%
$#1%
\vrule width\dimen@\relax
\overline{%
\kern2\dimen@
\begingroup % to keep changes of \dimen@ in #2 local
#2%
\endgroup
\kern2\dimen@
}%
\vrule width\dimen@\relax
\mathsurround=1.5\dimen@ % outside margin
$%
}%
% TeX adds an empty space above `\overline', it needs to be
% removed to get the correct height for the `\vrule's
\ht0=\dimexpr\ht0-\dimen@\relax
\dp0=\dimexpr\dp0+2\dimen@\relax
\vbox{%
\kern\dimen@ % reinsert previously removed space
\copy0 %
}%
}
\begin{document}
\[
\textstyle % same size as \displaystyle
\house{\alpha + \beta}
\stackrel{\mbox{\tiny T}}{=}
\house{\alpha} + \house{\beta}^n
\]
\[
\scriptstyle
\house{\alpha + \beta}
\stackrel{\mbox{\tiny S}}{=}
\house{\alpha} + \house{\beta}^n
\]
\[
\scriptscriptstyle
\house{\alpha + \beta}
\stackrel{\mbox{\tiny SS}}{=}
\house{\alpha} + \house{\beta}^n
\]
\[
\def\x{\frac{\house{\alpha + \beta}}{\house{\alpha} + \house{\beta}}}
\x, \frac{\x}{\x}
\]
\[
\underbrace{\overline{\alpha^2}, \house{\alpha^2}}_{\mbox{\tiny cramped}} \ne
\overline{\mbox{$\alpha^2$}}, \house{\mbox{$\alpha^2$}}
\]
\end{document}
答案2
这是一个简单的 TeX 解决方案。缺点是,这\everymath
是在“房子”内执行的。如果您希望每栋房子都有相同的高度和深度,请在其中添加支柱或幻影。
\nopagenumbers% for cropping
\def\house#1{{%
\setbox0=\hbox{$#1$}
\vrule height \dimexpr\ht0+1.4pt width .4pt depth \dp0\relax
\vrule height \dimexpr\ht0+1.4pt width \dimexpr\wd0+2pt depth \dimexpr-\ht0-1pt\relax
\llap{$#1$\kern1pt}
\vrule height \dimexpr\ht0+1.4pt width .4pt depth \dp0\relax
}}
$\house{\alpha + \beta} \leq \house{\alpha} + \house{\beta}$
\medskip
$\house{\strut\alpha + \beta} \leq \house{\strut\alpha} + \house{\strut\beta}$
\bye
附加问题:是否有普通的 TeX dimen,其默认线宽为.4pt
?我只知道\p@=1pt
和\z@=0pt
。
答案3
水平杆稍微突出:
\documentclass[a4paper,12pt]{article}
\usepackage{array}
\newcommand\house[1]{%
\begingroup\setlength\arraycolsep{0pt}
\begin{array}[t]{@{\mkern1mu}c@{}|c|@{}c@{\mkern1mu}}
\firsthline
&\;#1\;{}&
\end{array}
\endgroup
}
\begin{document}
$\house{\alpha + \beta} \leq \house{\alpha} + \house{\beta}$
\end{document}
可以通过增加给定的量来控制突出量\mkern
;这是通过\mkern2mu
正如芭芭拉·比顿 (Barbara Beeton) 在评论中指出的那样,该栏不应突出;为此,只需删除\mkern
指令:
\newcommand\house[1]{%
\begingroup\setlength\arraycolsep{0pt}
\begin{array}[t]{@{}c@{}|c|@{}c@{}}
\firsthline
&\;#1\;{}&
\end{array}
\endgroup
}
答案4
也没见过。不过,这里有一种方法:把所有东西都放到一个数组中,以便hhline
垂直线和水平线有清晰的连接。我定义了一个普通版本和一个粗体版本(我不知道如何声明它),以便两个版本只有一个命令):
\documentclass[a4paper,12pt]{article}
\usepackage{mathtools}
\usepackage{hhline, bm}
\newcommand\house[1]{\mkern2mu\begin{array}{|@{\:}c@{\:}|}\hhline{|-|}#1\end{array}\mkern1mu}
\newcommand\boldhouse[1]{\setlength{\arrayrulewidth}{0.6pt}\mathversion{bold}%
\mkern2mu\begin{array}{|@{\:}c@{\: }|}\hhline{|-|}#1\end{array}\mkern1mu}%
\begin{document}
$ \house{α + β} \leq \house{α} + \house{β}$\\
$\mathversion{bold} \boldhouse{α + β} \leq \boldhouse{α} + \boldhouse{β} $
\end{document}
在我看来,结果比 OP 的图像更好(所有符号的高度相同):
应该保留一个粗体版本来定义。