我偶尔需要在大型技术文档中插入占位符方程(或方程组),以便稍后填写。当引用文本中的方程或对齐(“如我们所见Eq.~\ref{eq:EnergyStates}...
”或“如我们所见\eqref{eq:EnergyStates}...
”)以及当我想查看最终布局时,这很有用。
我们有lipsum
针对文本和example-image
图像的。是否有针对示例方程或 eqaligns(指定大小或排版行数)的等效项?
如果没有的话,我谦虚地建议采用如下格式:
\example-align[n]
其中n
是一个整数,表示预期的排版行数。
然后我们可以在代码中包含:
\begin{align} \label{eq:EnergyStates}
\example-align[4]
\end{align}
(当然,文本的确切高度将取决于均衡器本身,但这很像调用段落,lipsum
我们无法提前确定将包含的文本长度。)
我通常不需要每个对齐(或 eqarray 线)的方程编号......只需要整个集合的方程编号。
我还希望排版文档能够显示真实的方程式(积分符号、分数、平方根符号……)来给出最终外观的感觉。毕竟,我们正是通过 lipsum 来实现这一点的。
答案1
为了给您一个起点,请参阅以下 mwe。似乎您需要最重要的功能才能为示例公式添加标签,以便您可以使用\eqref
或引用它\ref
。示例公式的行数似乎并不那么重要(您如何知道稍后插入实际公式需要多少行?)所以我把它留给你去做...
让我们定义以下命令\blindequation
(请注意,您建议的命令名称不可用,因为-
命令名称中不允许包含!),并为标签定义一个参数:
%\blindequation{eq:label}
\newcommand{\blindequation}[1]{%
\begin{equation}
\int_0^\infty e^{-\alpha x^2} \mathrm{d}x =
\frac12\sqrt{\int_{-\infty}^\infty e^{-\alpha x^2}}
\mathrm{d}x\int_{-\infty}^\infty e^{-\alpha y^2}\mathrm{d}y =
\frac12\sqrt{\frac{\pi}{\alpha}} \label{#1}
\end{equation}
}
我们可以使用例如\blindequation{eg:einstein}
,然后我们可以用\ref{eg:einstein}
或引用它\eqref{eq:einstein}
。
因此,请参阅以下完整的 mwe
\documentclass{article}
\usepackage{amsmath}
%\blindequation{eq:label}
\newcommand{\blindequation}[1]{%
\begin{equation}
\int_0^\infty e^{-\alpha x^2} \mathrm{d}x =
\frac12\sqrt{\int_{-\infty}^\infty e^{-\alpha x^2}}
\mathrm{d}x\int_{-\infty}^\infty e^{-\alpha y^2}\mathrm{d}y =
\frac12\sqrt{\frac{\pi}{\alpha}} \label{#1}
\end{equation}
}
\begin{document}
\blindequation{eq:EnergyStates}
See~\eqref{eq:EnergyStates} \dots
As we see in Eq.~\ref{eq:EnergyStates} \dots
%\blindtext
\blindequation{eq:Energy}
See~\eqref{eq:Energy} \dots
As we see in Eq.~\ref{eq:Energy} \dots
\end{document}
及其结果:
这样做的好处是,您可以将稍后要使用的标签用于示例公式,并且可以检查对公式的引用是否正确。缺点是您必须为每个示例公式添加一个标签,而我没有证明代码中有一个标签……
我认为这是一个起点,您可以使用它来开发您(和您的团队?)工作所需的工具......
编辑:
要使用一个命令添加特殊数量的方程式,您可以使用以下定义,以便能够使用以下命令\blindequation[3]{eq:label}
添加标有\label{eg:label}
(第一行)、\label{eg:label-2}
(第二行)和\label{eg:label-3}
(第三行)的 3 行方程式:
%\blindequation[3]{eq:label}
\newcommand{\blindequation}[2][1]{%
\ifcase#1\relax % 0 should not happen ...
\or
\begin{align}
a %= b \label{#2}
\end{align}
\or
\begin{align}
a + x &= 2 \label{#2}\\
x &= 2 - a \label{#2-2}
\end{align}
\else %all other possible numbers are handled here:
\begin{align}
a + b + x &= 3 \label{#2}\\
a + x &= 3 - b \label{#2-2}\\
x &= 3 - b -a \label{#2-3}
\end{align}
\fi%
}
使用,\ifcase#1
您可以决定需要多少条方程线(#1
包含所需的线)。使用,\relax
我们声明数字 0 永远不会发生。Comand\else
确保处理更大的数字。例如,这里用定义的最后一个数字\else
是三行,但因为您可以在命令中\else
使用选项而没有错误消息,但只得到 3 行布局...[11]
如果只想标记 n 条方程式中的一行,可以使用以下代码进行定义:
\begin{align}
a + b + c +d +e +f +g +x &= 8 \nonumber\\
a + b + c +d +e +f +x &= 8 -g \nonumber\\
a + b + c +d +e +x &= 8 -g -f \nonumber\\
a + b + c +d +x &= 8 -g -f -e \nonumber\\
a + b + c +x &= 8 -g -f -e -d \label{#2}\\
a + b +x &= 8 -g -f -e -d -c \nonumber\\
a +x &= 8 -g -f -e -d -c -b \nonumber\\
x &= 8 -g -f -e -d -c -b -a\nonumber
\end{align}
命令\nonumber
不允许对行进行编号,当然你可以把 放入\label{#2}
你通常想要编号的那行...
我不知道您正在使用哪种公式艺术,因此我只是在下面的 mwe 中添加了一个非常简单的方程系统,并让您在其中添加您想要看到的公式......
使用以下 mwe
\documentclass{article}
\usepackage{amsmath}
%\blindequation[3]{eq:label}
\newcommand{\blindequation}[2][1]{%
\ifcase#1\relax % 0 should not happen ...
\or
\begin{align}
\int_0^\infty e^{-\alpha x^2} \mathrm{d}x =
\frac12\sqrt{\int_{-\infty}^\infty e^{-\alpha x^2}}
\mathrm{d}x\int_{-\infty}^\infty e^{-\alpha y^2}\mathrm{d}y =
\frac12\sqrt{\frac{\pi}{\alpha}} \label{#2}
\end{align}
\or
\begin{align}
a + x &= 2 \label{#2}\\
x &= 2 - a \label{#2-2}
\end{align}
\or
\begin{align}
a + b + x &= 3 \label{#2}\\
a + x &= 3 - b \label{#2-2}\\
x &= 3 - b -a \label{#2-3}
\end{align}
\or
\begin{align}
a + b + c +x &= 4 \label{#2}\\
a + b +x &= 4 - c \label{#2-2}\\
a +x &= 4 - c - b \label{#2-3}\\
+x &= 4 - c - b -a\label{#2-4}
\end{align}
\or
\begin{align}
a + b + c +d +x &= 5 \label{#2}\\
a + b + c +x &= 5 -d \label{#2-2}\\
a + b +x &= 5 -d -c \label{#2-3}\\
a +x &= 5 -d -c -b \label{#2-4}\\
x &= 5 -d -c -b -a\label{#2-5}
\end{align}
\or
\begin{align}
a + b + c +d +e +x &= 6 \label{#2}\\
a + b + c +d +x &= 6 -e \label{#2-2}\\
a + b + c +x &= 6 -e -d \label{#2-3}\\
a + b +x &= 6 -e -d -c \label{#2-4}\\
a +x &= 6 -e -d -c -b \label{#2-5}\\
x &= 6 -e -d -c -b -a\label{#2-6}
\end{align}
\or
\begin{align}
a + b + c +d +e +f +x &= 7 \label{#2}\\
a + b + c +d +e +x &= 7 -f \label{#2-2}\\
a + b + c +d +x &= 7 -f -e \label{#2-3}\\
a + b + c +x &= 7 -f -e -d \label{#2-4}\\
a + b +x &= 7 -f -e -d -c \label{#2-5}\\
a +x &= 7 -f -e -d -c -b \label{#2-6}\\
x &= 7 -f -e -d -c -b -a\label{#2-7}
\end{align}
\or
\begin{align}
a + b + c +d +e +f +g +x &= 8 \nonumber\\
a + b + c +d +e +f +x &= 8 -g \nonumber\\
a + b + c +d +e +x &= 8 -g -f \nonumber\\
a + b + c +d +x &= 8 -g -f -e \nonumber\\
a + b + c +x &= 8 -g -f -e -d \label{#2}\\
a + b +x &= 8 -g -f -e -d -c \nonumber\\
a +x &= 8 -g -f -e -d -c -b \nonumber\\
x &= 8 -g -f -e -d -c -b -a\nonumber
\end{align}
\else %9
\begin{align}
a + b + c +d +e +f +g +h +x &= 9 \label{#2}\\
a + b + c +d +e +f +g +x &= 9 -h \label{#2-2}\\
a + b + c +d +e +f +x &= 9 -h -g \label{#2-3}\\
a + b + c +d +e +x &= 9 -h -g -f \label{#2-4}\\
a + b + c +d +x &= 9 -h -g -f -e \label{#2-5}\\
a + b + c +x &= 9 -h -g -f -e -d \label{#2-6}\\
a + b +x &= 9 -h -g -f -e -d -c \label{#2-7}\\
a +x &= 9 -h -g -f -e -d -c -b \label{#2-8}\\
x &= 9 -h -g -f -e -d -c -b -a\label{#2-9}
\end{align}
\fi%
}
\begin{document}
\blindequation[1]{eq:test}
1 See~\eqref{eq:test} \dots
As we see in Eq.~\ref{eq:test} \dots
\blindequation[3]{eq:EnergyStates}
3 See~\eqref{eq:EnergyStates} \dots
As we see in Eq.~\ref{eq:EnergyStates-2} \dots
%\blindtext
should not happen: \blindequation[0]{eq:Energy} number 0
\blindequation[5]{eq:Einstein}
5 See~\eqref{eq:Einstein} \dots
As we see in Eq.~\ref{eq:Einstein-3} \dots
\blindequation{eq:testerle}
1 See~\eqref{eq:testerle} \dots
As we see in Eq.~\ref{eq:testerle} \dots
\blindequation[8]{eq:testerlea}
8 See~\eqref{eq:testerlea} \dots
As we see in Eq.~\ref{eq:testerlea} \dots
\blindequation[15]{eq:testerleb}
15 See~\eqref{eq:testerleb} \dots
As we see in Eq.~\ref{eq:testerleb-9} \dots % \ref{eq:testerleb-10} is not working!
\end{document}
给出结果:
您可以看到,使用零作为打印方程式编号的情况根本没有执行,行的编号已经完成(如您所愿?)并且您可以根据需要引用每一行(简单规则:您有 n 行方程式。例如,第一行用您给定的标签引用,\ref{eq:einstein}
第二行可以用等等引用,\ref{eq:einstein-2}
直到\ref{eq:einstein-n}
)。
现在我们来看第二页:
我已调用命令\blindequation[15]{eq:testerleb}
获取 15 条线,但仅定义了 9 条。因此,您仅打印了 9 条方程线,并且仅激活了 9 个标签:\ref{eq:testerleb}
,\ref{eq:testerleb-2}
直到\ref{eq:testerleb-9}
...