我有以下代码,但我不明白为什么使用 \ 标签时我的方程式数量不在同一行。列有“足够”的空间。
\documentclass{beamer}
\usepackage{mathtools,cleveref}
\usepackage[american]{circuitikz}
\begin{document}
\begin{frame}{Ohm and Kirchhoff Laws}
\begin{block}{}
\only<1>{The Ohm and Kirchhoff laws -- a simple test.}
\only<2>{\par A simple electric circuit.}
\only<3>{\par From Ohm's law we got \cref{eq:ohm-1}~to~\cref{eq:ohm-3}.}
\only<4>{\par The \texttt{LKC} applied to each node implies \cref{eq:lkc-1}~to~\cref{eq:lkc-4}, but they are not a system of equations linearly independent.}
\only<5>{\par And finaly \texttt{LKT} applied to the single mesh gives the equation \cref{eq:lkt}.}
\end{block}
\begin{columns}
\column[b]{.5\textwidth}
\only<2->{%
\begin{block}{}
\begin{circuitikz}[scale=.7, transform shape]
\draw
(0,0) to [V,l=$v_s$,i>=$i_s$,*-*] (0,3)
to [short] (6,3)
to [R,l=$R_l$,v=$v_l$,i>^=$i_l$,*-*] (6,0)
to [R,l=$R_c$,v>=$v_c$,i^<=$i_c$,*-*] (3,0)
to [R,l=$R_1$,v=$v_1$,i^>=$i_1$,*-*] (0,0)
;
\end{circuitikz}
\end{block}%
}
\column[b]{.5\textwidth}
\only<3>{%
\begin{block}{}
\begin{align}
v_1 &= i_1R_1\tag{2.1}\label<3>{eq:ohm-1}\\
v_c &= i_cR_c\tag{2.2}\label<3>{eq:ohm-2}\\
v_l &= i_lR_l\tag{2.3}\label<3>{eq:ohm-3}
\end{align}
\end{block}%
}
\only<4>{%
\begin{block}{}
\begin{align}
i_s-i_1 &= 0\tag{2.1.1}\label<4>{eq:lkc-1}\\
i_1+i_c &= 0\tag{2.1.2}\label<4>{eq:lkc-2}\\
-i_c-i_l &= 0\tag{2.1.3}\label<4>{eq:lkc-3}\\
i_l-i_s &= 0\tag{2.1.4}\label<4>{eq:lkc-4}
\end{align}
\end{block}%
}
\only<5>{%
\begin{block}{}
\begin{equation}
v_l-v_c+v_1-v_s=0\tag{2.4}\label<5>{eq:lkt}
\end{equation}
\end{block}%
}
\end{columns}
\end{frame}
\end{document}
答案1
一些评论
我对您的幻灯片有一些批评:
正如
Harish Kumar
评论中所述,您最初遇到的方程式数字与直线拟合的问题是由于您将s 放入其中。但这些已经在宏的参数中,因此即使它们<transitions>
按照您希望的方式工作,它们也是多余的。因此,您应该将每个都更改为。\label
\only
\label<...>
\label
在环境中使用方程式存在一个问题
\only
:交叉引用无法正常工作(您只能获得??
)。实验表明,只有当方程式编号出现在幻灯片的第一个过渡中时,它们才会正确显示(例如或\only<1>
或\only<1->
类似物)。考虑到您的幻灯片中的几乎所有内容都会随着每次转换而发生变化,您是否考虑过将它们放在多张幻灯片上,以便将所有标签都写入辅助文件中?
或者——既然你无论如何都要手动对方程式进行编号——你可能希望考虑对方程式进行硬编码。这不是最好的做法,但通常也不是。(在你的方程式中与有
\tag
什么关系?)(2.1.1)
(2.1)
你的电路上下跳动,因为
- 每张幻灯片的描述文字长度可变;并且
- 下面的方程的长度也是可变的。
电路上下跳动确实让人分心。你应该做的是一切出现在
\only
命令中的环境内,{overlayarea}
为其提供固定的空间。这将使您的电路保持原位。如果您没有为您的
{block}
环境使用任何标题,为什么不省略它们以简化您的代码呢?
示例代码
以下是我整理幻灯片的方法。我还没有解决公式引用的问题;你应该按照自己喜欢的方式解决这个问题。
\documentclass{beamer}
\usepackage{mathtools,cleveref}
\usepackage[american]{circuitikz}
\begin{document}
\begin{frame}{Ohm and Kirchhoff Laws}
\begin{overlayarea}{\textwidth}{0.25\paperheight}
\only<1>{The Ohm and Kirchhoff laws -- a simple test.}
\only<2>{\par A simple electric circuit.}
\only<3>{\par From Ohm's law we got \cref{eq:ohm-1}~to~\cref{eq:ohm-3}.}
\only<4>{\par The \texttt{LKC} applied to each node implies \cref{eq:lkc-1}~to~\cref{eq:lkc-4}, but they are not a system of equations linearly independent.}
\only<5>{\par And finaly \texttt{LKT} applied to the single mesh gives the equation \cref{eq:lkt}.}
\end{overlayarea}
\begin{columns}
\column[t]{.5\textwidth}
\begin{overlayarea}{\columnwidth}{0.5\paperheight}
\only<2->{%
\begin{circuitikz}[scale=.7, transform shape]
\draw
(0,0) to [V,l=$v_s$,i>=$i_s$,*-*] (0,3)
to [short] (6,3)
to [R,l=$R_l$,v=$v_l$,i>^=$i_l$,*-*] (6,0)
to [R,l=$R_c$,v>=$v_c$,i^<=$i_c$,*-*] (3,0)
to [R,l=$R_1$,v=$v_1$,i^>=$i_1$,*-*] (0,0)
;
\end{circuitikz}
}
\end{overlayarea}
\column[t]{.5\textwidth}
\begin{overlayarea}{0.9\columnwidth}{0.5\paperheight}
\vspace*{-4ex}
\only<3>{%
\begin{align}
v_1 &= i_1R_1\tag{2.1}\label{eq:ohm-1}\\
v_c &= i_cR_c\tag{2.2}\label{eq:ohm-2}\\
v_l &= i_lR_l\tag{2.3}\label{eq:ohm-3}
\end{align}
}
\only<4>{%
\begin{align}
i_s-i_1 &= 0\tag{2.1.1}\label{eq:lkc-1}\\
i_1+i_c &= 0\tag{2.1.2}\label{eq:lkc-2}\\
-i_c-i_l &= 0\tag{2.1.3}\label{eq:lkc-3}\\
i_l-i_s &= 0\tag{2.1.4}\label{eq:lkc-4}
\end{align}
}
\only<5>{%
\begin{equation}
v_l-v_c+v_1-v_s=0\tag{2.4}\label{eq:lkt}
\end{equation}
}
\end{overlayarea}
\end{columns}
\end{frame}
\end{document}