使用外部文件作为数据库方程

使用外部文件作为数据库方程

我创建了一个包含许多数学公式的外部参考文件。与此非常相似: 外部页面的脚注方程式.tex结构如下:

\documentclass[10pt]{article}

\usepackage{amssymb,amsmath}
%\usepackage{catchfilebetweentags}
\usepackage{stackengine}  %% barbII
\usepackage{cancel}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[overload]{empheq}
\newcommand{\for}{\text{for }}

\begin{document}
\begin{enumerate}
 \item \underline{\textit{Principio di conservazione della massa }}: 
%<*eq001>
\begin{center}
    \begin{equation}\label{eq001}
    \textbf{m} = \Intlim{V_{m}}\rho(x,t)\de{V} 
    \end{equation}
\end{center}
%</eq001>

%<*eq002>
\begin{center}
    \begin{equation}\label{eq002}
    \Dtot{m}{t} =\Dtot{}{t} \Intlim{V_{m}}\rho(x,t)\de{V}  = 0 
    \end{equation}
\end{center}
%</eq002>

\item \underline{\textit{Principio di bilancio della quantità di moto}} (Eulero, 1752):

%<*eq003>
\begin{center}
    \begin{equation}\label{eq003}
    \textbf{q}  = \Intlim{V_{m}}\rho\textbf{u}\de{V}  
    \end{equation}
\end{center}
%</eq003>
\end{enumerate}
\end{document}

在此处输入图片描述

在序言中主文本我插入了这个:

\usepackage{catchfilebetweentags}
\newcommand{\loadeq}[1]{%
    \ExecuteMetaData[equations.tex]{eq#1}%
}

我把各种公式称为第一章.tex使用 loadeq {方程式编号} 命令:

bla bla bla bla bla bla bla 

\loadeq{003}

在此处输入图片描述

问题出现于:

  • 我想对齐两个方程;\loadeq{003} = \loadeq{003}
  • 我想对齐等式和文本;ciao = \loadeq{003}
  • 我想将特定的符号与等式对齐。$\vec{\Pi}=$ \loadeq{003} 在此处输入图片描述

了解如何连接不同的\loadeq{arg}

在此处输入图片描述

答案1

你应该构造你的方程式。不需要catchfilebetweentags

下面,如果调用\useeq*{<number>},则保存的等式的两边都会排版;如果\useeq{<number>}调用 ,则只排版右侧。如有需要,可以使用 轻松扩充,\useeq[<side>]{<number>}其中<side>l或 ,r打印左侧或右侧。

\begin{filecontents}{antonio-equations}
\EQ{001}{
  \mathbf{p} = \Intlim{V_{m}}\rho(x,t)\de{V}
}
\EQ{002}{
  \Dtot{m}{t} = \Dtot{}{t} \Intlim{V_{m}}\rho(x,t)\de{V}
}
\EQ{003}{
  \mathbf{q} = \Intlim{V_{m}}\rho\mathbf{u}\de{V}
}
\end{filecontents}

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\EQ}{mm}
 {
  \prop_new:c { g_antonio_eq_#1_prop }
  \seq_set_split:Nnn \l__antonio_eq_temp_seq { = } { #2 }
  \prop_gput:cnx { g_antonio_eq_#1_prop }
   { l } { \seq_item:Nn \l__antonio_eq_temp_seq { 1 } }
  \prop_gput:cnx { g_antonio_eq_#1_prop }
   { r } { \seq_item:Nn \l__antonio_eq_temp_seq { 2 } }
 }
\NewDocumentCommand{\useeq}{sm}
 {
  \IfBooleanT { #1 }
   {
    \prop_item:cn { g_antonio_eq_#2_prop } { l } =
   }
  \prop_item:cn { g_antonio_eq_#2_prop } { r }
 }
\seq_new:N \l__antonio_eq_temp_seq
\ExplSyntaxOff

\newcommand{\de}[1]{\mathop{}\!d#1}
\newcommand{\Dtot}[2]{\frac{\de{#1}}{\de{#2}}}
\newcommand{\Intlim}[1]{\int\limits_{#1}}

\input{antonio-equations} % load the equations

\begin{document}

\begin{enumerate}
\item \textit{Principio di conservazione della massa}: 
\begin{gather}
\useeq*{001} \label{eq001}
\\
\useeq*{002}=0 \label{eq002}
\end{gather}

\item \textit{Principio di bilancio della quantità di moto} (Eulero, 1752):
\begin{equation}
\useeq*{003} \label{eq003}
\end{equation}

\item Combiniamo
\begin{align}
  \vec{\Pi} &= \useeq{001}
  \\
  x &= \useeq{003}
\end{align}

\end{enumerate}

\end{document}

请不要在斜体文本中加下划线:双重强调太多,并且下划线是印刷工不赞成的手段。

在此处输入图片描述

还要注意,你永远不应该被 包围equationcenter并且绝不应按字面意思理解。还应equation避免使用连续环境:amsmath提供丰富的显示环境。

相关内容