你好,你好吗?我有一份老师发给我的详尽文件,我需要列出图片中的方程式。由于内容广泛,我希望它可以自动化,可以用 \label{} 或类似的东西轻松实现。(他们做什么这里对我来说不起作用)我不知道从哪里开始,但我知道我希望它在我更改部分时起作用
这是我的代码
\documentclass[12pt,a4papper]{article}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{titlesec}
\titleformat{\section}[frame]
{\small}{\filcenter\small
\filleft UNIDAD \thesection \ }
{3pt}{\Large\bfseries\filcenter}
\usepackage[left=2.5cm,top=2cm,right=2.5cm,bottom=1.5cm]{geometry}
\usepackage{amsthm} %para usar \theoremstyle
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{thmtools}
\declaretheoremstyle[
spaceabove=7pt, spacebelow=7pt,
headfont=\normalfont\bfseries,
notefont=\mdseries\bfseries\itshape, notebraces={(}{)},
bodyfont=\normalfont\itshape,
postheadspace=.5em, %
numberlike=section,
name=Teorema,
thmbox=M,
%shaded={bgcolor={rgb}{1,1,1}},
headformat=\NAME~\NUMBER \NOTE %
%qed=$\blacksquare$
]{Teorema}
\declaretheorem[style=Teorema]{teo}
\begin{document}
\section{Anexo}
\begin{teo}[Igualdad de las derivadas cruzadas o Clairaut] \label{Clairaut}
Sea $f: \Omega \rightarrow \mathbb{R}$ una función de dos variables definida en un conjunto abierto $\Omega \subseteq \mathbb{R}^{2}$, si existen las segundas derivadas cruzadas y son continuas en $\Omega$, esto es, $f \in \mathcal{C}^{2}(\Omega)$ entonces estas son iguales, es decir:
\begin{equation*}\label{formula 1}
\frac{\partial^{2} f}{\partial x \partial y}=\frac{\partial^{2} f}{\partial y \partial x}.
\end{equation*}
\end{teo}
\begin{teo}[Primer teorema fundamental del calculo]\label{ptfc}
Sea $f$ una función integrable en el intervalo $[a, b]$, definimos $F$ en $[a, b]$ como
\begin{equation}
F(x)=\int_{a}^{x} f(t) d t \label{formula 2}
\end{equation}
si $f$ es continua en $c \in(a, b)$, entonces $F$ es diferenciable en $c$ y $F^{\prime}(c)=f(c)
$
\end{teo}
\begin{teo}[Regla de Barrow] \label{barrow}
Si $f$ es continua en $[a, b]$ y $f=g^{\prime}$ para alguna función $g$ entonces
\begin{equation}
\int_{a}^{b} f(t) d t=g(b)-g(a) \label{formula 3}
\end{equation}
\end{teo}
\end{document}
太感谢了。
答案1
嗯,只是为了澄清一下,特别是关于你想要或需要做什么。这是一种方法。
1 ) 您发布的代码似乎来自您拥有的长文档,该文档原来是您以图像形式发布的 Anexo。如果只是这样,请进行一些手动编辑。否则,请继续:
2)Latex
是 ASCII 文本,您可能想要grep environments
像这样,它位于文件的某个位置:
\begin{equation}
F(x)=\int_{a}^{x} f(t) d t \label{formula 2}
\end{equation}
我不知道你是否可以使用一些 Latex 工具来做到这一点。但是,编写一个提取所有这些“块”的脚本并不困难。最好使用 Perl,因为它就是为此而生的(PERL = 实用提取和报告语言)。但从命令行运行的 PHP 也可以完成这项工作。其他语言,如 C 或 C++ 也可以(嗯……)。
从命令行运行grep
或其他regular expressions
操作可能会变得太笨拙,并且很可能会遇到原始 Latex 文档中的不规则问题。
3) 获得这些后code-snippets extracted
,您需要将它们重新组装为 Latex 文档。虽然我对 -package 不是很熟悉ams
,但看起来您只需插入一个或多个&
字符就可以完成大部分工作。也许您必须替换一些关键字等。看起来您只需要进行最小的更改(如果有的话)即可完成方程式任务。同样,对于 Perl 来说,这是一项完美的任务,您也可以使用 PHP 掌握它。
从实用的角度来看,将它们作为一个或多个单独的codeSnippets.tex
文件放在一起可能相当容易且有利,您可以通过将其包含\input{codeSnippets}
在新的主 Latex 文档中来做到这一点。这样做的目的是将所有序言内容放在那里,而将提取的方程式放在其他地方。这当然是一个品味和方便的问题 ;-)
最好的祝愿
PS:详细的解决方案请看Perl
这里:如何提取 Latex 文档中的方程环境(或其他块)?。
PS:如果您不使用Perl
,但想使用Latex macros
,只需模仿 perl 脚本中间的匹配部分(#~~~发现...)。