我想要一个非常小的过度支撑

我想要一个非常小的过度支撑

与问题(和接受的答案)相关我想要一个非常小的下支架,其中使用以下代码来定义新\smallunderbrace命令:

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\def\smallunderbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
   $\hfil\displaystyle{#1}\hfil$\crcr
   \noalign{\kern3\p@\nointerlineskip}% 
   \tiny\upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
\makeatother
\newcommand{\clap}[1]{\makebox[0pt]{#1}}

\begin{document}
\begin{gather}
  (du) \\
  (\smallunderbrace{du}_{\text{\clap{label}}}) \\
  (\smallunderbrace{\text{test}}_{\text{\clap{label}}})
\end{gather}
\end{document}

答案(由保罗·盖斯勒) 指出该\smallunderbrace命令与基础 LaTeX 中的命令相同,\underbrace只是\tiny在最后一行插入了命令。

有人可以解释一下我该如何调整它来定义一个非常小的过度支撑吗?

答案1

\tiny通过类似地在 =)的定义中添加 a \overbrace

\documentclass{article}

\usepackage{amsmath}

\makeatletter
\def\smalloverbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}%
  \tiny\downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}%
  $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
\makeatother

\newcommand{\clap}[1]{\makebox[0pt]{#1}}

\begin{document}

\begin{gather}
  (du) \\
  (\smalloverbrace{du}^{\text{\clap{label}}}) \\
  (\smalloverbrace{\text{test}}^{\text{\clap{label}}})
\end{gather}

\end{document}

在此处输入图片描述


PS 至少有五种方法可以找出宏的定义方式。(有点像教人如何钓鱼。)

1. 使用 (la)texdef

我不知道您是否是终端用户,但如果是,这是一个很好的选择。(我认为它也可以在 Windows 上的命令提示符下使用。有人可以证实这一点吗?)

在终端窗口中,输入latexdef <macro name>(不带斜线),因此在本例中就是这个。这将向您展示宏是如何定义的。如果您想知道加载某些包或类时的定义,您可以分别使用标志和latexdef overbrace来告诉 latexdef 。-p [<options]<package>-c [<options>]<class>

以下是一个例子:

latexdef -c book -p amsmath -p [draft]hyperref chapter

amsmath,并且hyperref实际上并没有改变的定义\chapter,但我无法立即想到一个很好的例子。)

有关更多信息latexdef,请键入latexdef -h或参阅文档这里。您可能需要使用texdef -t latex而不是latexdef

2. 使用\show

在文档的某处添加以下代码:

\show\overbrace

现在运行 LaTeX 时,它会停下来向您显示 的定义\overbrace。如果您在非停止模式下运行,您还可以检查输出或 .log 文件。

3. 通过使用\meaning

在文档的某处添加以下内容:

\texttt{\meaning\overbrace}

这会将 的定义\overbrace放在您的文档中。如果没有 ,它会看起来很糟糕,\texttt因为反斜杠排版不正确(除非您使用fontenc)。

4. 通过查看文档

如果您知道宏定义的包或类,则可以查看文档。要快速查看与 TeX 相关的文档,您可以使用 texdoc:texdoc <query>在终端中输入或使用texdoc.net。示例:(texdoc texdef不起作用texdoc latexdef)、、texdoc hyperreftexdoc symbols-a4texdoc texdoc

文档通常(但并非总是)包含源代码。要找出宏定义的位置,您可以将标志添加-flatexdef(来自方法 1)。有关 LaTeX 源代码的文档,请搜索source2e

5. 通过查找相关包/类的 .sty/.cls 文件

如果您知道宏定义在哪个包或类中,则可以直接查看源代码。如果嵌套了许多定义,这种方法会更快,而且也很有用,因为长定义的原始代码通常分布在多行中并缩进(有时包括注释)。

要找出宏定义的位置,您可以将标志添加-flatexdef(来自方法 1)。如果latexdef说宏是由 LaTeX 定义的,那么它可能可以在 latex.ltx、fontmath.ltx 或同一目录中的其他文件之一中找到。所有这些文件的位置可能取决于您的 TeX 发行版和/或操作系统。要找出特定文件的位置,您可以键入kpsewhich <filename.sty/cls>kpsewhich <latex.ltx/fontmath.ltx>(再次在终端中)。(我再次认为这也应该适用于 Windows,但我不确定。)

相关内容