向公式添加标签

向公式添加标签

我有一张这样的图表,解释一个公式:

\documentclass{article}
\usepackage{stackrel}
\begin{document}
    $\stackrel[e+f+g+h^i]{a^b}{c d}$
\end{document}

为了举个例子,我删除了数字。

  • 我怎样才能放大此图,以便每个部分看起来正好大 300%?
  • 如果我使用 OpenType 字体,这种缩放会产生错误吗?
  • 如何在公式中添加标签来描述每个部分的含义?

答案1

scalebox应该可以帮你解决问题。你需要这个graphicx包。例如:

\documentclass{article}
\usepackage{graphicx}
\usepackage{stackrel}
\begin{document}

\scalebox{3}{
    $\stackrel[e+f+g+h^i]{a^b}{c d}$
}

\end{document}

对于标签,你可以使用类似下面的内容

\begin{equation}
H_{\mathrm{atom-light}}=
\underbrace{\frac{\hbar\omega_{\mathrm{a}}}{2}\sigma_3                      \rule[-12pt]{0pt}{5pt}}_{\mbox{atom}}
+\underbrace{\hbar\omega\left(a^\dagger a+\frac{1}{2}\right)                \rule[-12pt]{0pt}{5pt}}_{\mbox{field}}
-\underbrace{i\hbar g\left(a-a^\dagger\right)\left(\sigma^++\sigma^-\right) \rule[-12pt]{0pt}{5pt}}_{\mbox{interaction}}\,,
\end{equation}

突出underbraces显示一个部分,这些rule命令允许您通过向下推下括号来排列它们。标签放在mboxs 中,

结果是这样的

在此处输入图片描述

正如 Werner 所指出的,用包中的\mbox文本替换会更好一些,因为它可以正确调整文本大小。\textamsmath

您可能还想考虑使用amsmath包 and将方程式拆分为多行align。这将为您提供更多空间。

\begin{align}
H_{\mathrm{atom-light}}=\ &\frac{\hbar\omega_{\mathrm{a}}}{2}\sigma_3  &&\mbox{atom}\\
&+\hbar\omega\left(a^\dagger a+\frac{1}{2}\right)                      &&\mbox{field}\\
&-i\hbar g\left(a-a^\dagger\right)\left(\sigma^++\sigma^-\right)\,.    &&\mbox{interaction}
\end{align}

在此处输入图片描述

最后,受到 Werner 的启发,我将其与 TikZ 结合在一起:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{equation}
H_{\mathrm{atom-light}} = 
\tikz[baseline]{
    \node[draw=red,rounded corners,anchor=base] (m1)
    {$\displaystyle\frac{\hbar\omega_{\mathrm{a}}}{2}\sigma_3$};
    \node[above of=m1] (l1) {atom};
    \draw[-,red] (l1) -- (m1);
}
+
\tikz[baseline]{
    \node[draw=red,rounded corners,anchor=base] (m2)
    {$\displaystyle\hbar\omega\left(a^\dagger a+\frac{1}{2}\right)$};
    \node[above of=m2] (l2) {field};
    \draw[-,red] (l2) -- (m2);
}
-
\tikz[baseline]{
    \node[draw=red,rounded corners,anchor=base] (m3)
    {$\displaystyle i\hbar g\left(a-a^\dagger\right)\left(\sigma^++\sigma^-\right)$};
    \node[above of=m2] (l3) {interaction};
    \draw[-,red] (l3) -- (m3);
}
\end{equation}

\end{document}

在此处输入图片描述

它基于一个方程,这个方程又基于一个方程...我第一次借用了这里。不过,对于你的情况,最好在 TikZ 图片中从头开始构建它。请记住,你仍然可以将其放入以下scalebox位置:

\begin{tikzpicture}[node distance=20pt]
%
\tikzstyle{boxes}=[draw=red, rounded corners]
%
\node[boxes] (middle) {\Large$c d$};
\node[boxes,above of=middle] (top) {$\displaystyle a^b$};
\node[boxes,below of=middle] (bottom) {$\displaystyle e+f+g+h^i$};
%
\node[right of=top, node distance = 35pt] (toplabel) {the top};
\draw[red] (toplabel) -- (top);
\node[left of=middle, node distance = 45pt] (midlabel) {the middle};
\draw[red] (midlabel) -- (middle);
\node[below of=bottom, node distance = 25pt] (botlabel) {the bottom};
\draw[red] (botlabel) -- (bottom);
%
\end{tikzpicture}

在此处输入图片描述

答案2

LaTeX 中的缩放比例可以通过\scalebox{<factor>}{<stuff>}以下方式轻松实现:graphicx包裹. 不管是什么,它都能工作<stuff>

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{stackrel}% http://ctan.org/pkg/stackrel
\begin{document}
$\stackrel[e+f+g+h^i]{a^b}{c d}$ \quad \scalebox{3}{$\stackrel[e+f+g+h^i]{a^b}{c d}$}
\end{document}

要向构造的组件添加标签,您可以使用pst-node来自pstricks。这是一个小的模型,虽然我将构造放在了里面array,但为了更清晰地呈现:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{pst-node}% http://ctan.org/pkg/pst-node
\newcommand{\node}[2]{\rnode{#1}{#2}}
\begin{document}
\psset{nodesep=1pt}
\[
  \scalebox{3}{$\begin{array}{c}
    \node{a}{a}^{\node{b}{\mbox{\scriptsize$b$}}} \\
    \node{c}{c} \node{d}{d} \\
    \node{e}{e}+\node{f}{f}+\node{g}{g}+\node{h}{h}^{\node{i}{\mbox{\scriptsize$i$}}}
  \end{array}$}
  \uput{20pt}[135]{0}(a){\rnode{a-desc}{\text{This is $a$}}} \ncline{->}{a-desc}{a}
  \uput{3cm}[40]{0}(b){\rnode{b-desc}{\text{This is $b$}}} \ncline{->}{b-desc}{b}
  \uput{140pt}[l]{0}(c){\rnode{c-desc}{\text{This is $c$}}} \ncline{->}{c-desc}{c}
  \uput{5em}[r]{0}(d){\rnode{d-desc}{\text{This is $d$}}} \ncline{->}{d-desc}{d}
  \uput{20pt}[190]{0}(e){\rnode{e-desc}{\text{This is $e$}}} \ncline{->}{e-desc}{e}
  \uput{20pt}[235]{0}(f){\rnode{f-desc}{\text{This is $f$}}} \ncline{->}{f-desc}{f}
  \uput{20pt}[300]{0}(g){\rnode{g-desc}{\text{This is $g$}}} \ncline{->}{g-desc}{g}
  \uput{20pt}[320]{0}(h){\rnode{h-desc}{\text{This is $h$}}} \ncline{->}{h-desc}{h}
  \uput{20pt}[345]{0}(i){\rnode{i-desc}{\text{This is $i$}}} \ncline{->}{i-desc}{i}
\]
\end{document}

宏的\node{<label>}{<stuff>}定义是为了易于使用。\rnode所用的 s中包含的内容\node可以是任何内容,即使\parbox是长句子/段落。此外,由于此方法使用了 的丰富图形组件库,因此也可以pstricks格式化(例如) 。\ncline

“元素描述符”(?-desc)的放置是使用

\uput{<labelsep>}[<refangle>]{<rotation>}(x,y){<stuff>}

这将 放置<stuff>,按度数旋转,与相距<rotation>一定距离<labelsep>和一定角度(因为我们使用的是,可以用一个节点表示)。也可以是符号角度参考,如eft、ight、p、own 或这些的组合(、、...)。我对<refangle>x,ypst-nodex,y<refangle>lrudurdltikz/pgf是有限的,但使用该设计媒介也是可能的;期待使用此工具得到一些答案。

由于这使用了,因此您需要使用或-> ->序列pstricks进行编译。xelatexlatexdvipsps2pdf

相关内容