Allinea formule matematiche
Sto scrivendo le mie formule matematiche e vincoli con Overleaf. Questo è il mio codice e vi mostro anche il risultato che ho ottenuto (vedi foto). Come puoi vedere, le formule non sono ben allineate. Vorrei migliorare il layout allineando tutte le formule e facendole etichettare (con i numeri, come mostrato nell'immagine). Sarebbe estremamente utile se qualcuno potesse aiutarmi con questo!
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[super]{natbib}
\usepackage{comment}
\usepackage{graphicx}
\usepackage{float}
\usepackage{hyperref}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{caption}
\usepackage{adjustbox}
\usepackage{lipsum}
\usepackage{lscape}
\usepackage{multicol}
\usepackage{longtable}
\captionsetup[figure]{font=small,labelfont=bf}
\captionsetup[table]{font=small,labelfont=bf}
\usepackage[justification=centering]{caption}
\usepackage{eurosym}
\usepackage{mhchem}
\usepackage{relsize}
\usepackage[table, dvipsnames]{xcolor}
\renewcommand*\descriptionlabel[1]{\hspace\leftmargin$#1$}
\usepackage[hidelinks]{hyperref}
\usepackage{enumitem}
\usepackage{glossaries}
\makeglossaries
\newcommand{\mathgl}[2]{
\newglossaryentry{#1}{name={#1},description={#2}}
\begin{description}[labelwidth=2cm]
\item[\gls{#1}]#2
\end{description}
}
\makeatletter
\newcommand*{\rom}[1]{\expandafter\@slowromancap\romannumeral #1@}
\makeatother
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist
\begin{document}
\subsection{Stating the objective function}
TextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextText
\begin{align} \min \quad BFC \cdot \bigg(\mathlarger{\mathlarger{\sum}}_{i\in I}Fc_i \cdot u_i\bigg) + BEC \cdot \bigg(\mathlarger{\mathlarger{\sum}}_{i\in I}\mathlarger{\mathlarger{\sum}}_{j \in J}\mathlarger{\mathlarger{\sum}}_{p \in P}x_i_j_p\cdot Ec_i_j_p_y\bigg) + BTC \cdot \bigg(\mathlarger{\mathlarger{\sum}}_{i\in I}\mathlarger{\mathlarger{\sum}}_{j \in J}\mathlarger{\mathlarger{\sum}}_{p \in P}x_i_j_p\cdot Tc_i_j_p\bigg) + BWC \cdot \bigg(\mathlarger{\mathlarger{\sum}}_{i\in I}\mathlarger{\mathlarger{\sum}}_{j \in J}\mathlarger{\mathlarger{\sum}}_{p \in P}x_i_j_p\cdot Wc_i_j_p\bigg) + BZC \cdot \bigg(\mathlarger{\mathlarger{\sum}}_{i\in I}\mathlarger{\mathlarger{\sum}}_{j \in J}\mathlarger{\mathlarger{\sum}}_{p \in P}x_i_j_p\cdot Z_i_j_p\bigg)\cdot Zc \label{1} \end{align} \subsection{Stating the constraints} The first constraint ensures that the demand of each customer is satisfied: \begin{align} \mathlarger{\sum}_{i\in I}x_i_j_p = D_j_p_y, \quad && \forall j \in J, p\in P, y \in Y\label{2} \end{align} \noindent The second formula makes sure that the maximum capacity of each supplier facility is not exceeded: \begin{align} \mathlarger{\sum}_{j\in J}\mathlarger{\sum}_{p\in P}x_i_j_p \leq u_i, \quad && \forall i \in I \label{3} \end{align} \noindent Contracts with specific supplier facilities may agree on minimum allocation volumes. This is ensured by the following formula: \begin{align} \mathlarger{\sum}_{j\in J}\mathlarger{\sum}_{p\in P}x_i_j_p \geq V_i, \quad && \forall i \in I \label{3} \end{align} \noindent Specific breweries desire to be supplied by at least two suppliers for some specific type of product code. This is ensured by the following two formulas: \begin{align} \mathlarger{\sum}_{i\in I}J_i_j_p \geq 2, \quad && \forall j \in J, p\in P \label{4}\\ x_i_j_p \geq b_i_j_p M_j_p \end{align} \noindentSpecific OpCos desire to be supplied by at least two suppliers for some specific type of product code. This is ensured by the following two formulas: \begin{align} \mathlarger{\sum}_{i\in I}F_i_o_p\geq 2,\quad && \forall o \in O, p\in P \label{5}\\ \mathlarger{\sum}_{i\subset I}x_i_j_p \geq F_i_o_pG_o_p,\quad && \forall i \in I, o\in O, p\in P \label{5} \end{align}
Risposte
Una soluzione semplice utilizza un unico alignambiente e il \intertextcomando.
Ho semplificato il preambolo su ciò che è necessario per il funzionamento del codice. Inoltre, non penso che tu abbia davvero bisogno di usare double \mathlarger, il che fa sì che il numero dell'equazione venga posizionato sotto l'equazione, anche quando si utilizzamultlined
A proposito, non devi caricare amsfontsquando carichi amssymb: quest'ultimo lo fa per te. Nota che hyperrefdovrebbe essere caricato come ultimo pacchetto, con pochissime eccezioni.
\documentclass{article}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{relsize}
\usepackage[hidelinks]{hyperref}
\begin{document}
\setcounter{section}{4}
\setcounter{subsection}{5}
\subsection{Stating the objective function}
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
\begin{equation}
\begin{multlined}
\min \quad BFC \cdot \bigg(\mathlarger{\sum}_{i\in I}Fc_i \cdot u_i\bigg)
+
BEC \cdot \bigg(\mathop{\mathlarger{\sum}_{i\in I}\mathlarger{\sum}_{j \in J}\mathlarger{\sum}_{p \in P}x_{i j p}}\cdot Ec_{ijpy}\bigg) +{}
\\
BTC \cdot \bigg(\mathlarger{\sum}_{i\in I}\mathlarger{\sum}_{j \in J}\mathlarger{\sum}_{p \in P}x_{ijp}\cdot Tc_{ijp}\bigg)
+
BWC \cdot \bigg(\mathlarger{\sum}_{i\in I}\mathlarger{\sum}_{j \in J}\mathlarger{\sum}_{p \in P}x_{ijp}\cdot Wc_{ijp}\bigg)
\\
+ BZC \cdot \bigg(\mathlarger{\sum}_{i\in I}\mathlarger{\sum}_{j \in J}\mathlarger{\sum}_{p \in P}x_{ijp}\cdot Z_{ijp}\bigg)\cdot Zc
\end{multlined}
\label{1}
\end{equation}
\subsection{Stating the constraints}
The first constraint ensures that the demand of each customer is satisfied:
\begin{align} \mathlarger{\sum}_{i\in I}&x_{ijp} = D_{jpy}, \quad && \forall j \in J, p\in P, y \in Y\label{2} \\ \intertext{The second formula makes sure that the maximum capacity of each supplier facility is not exceeded:} \mathlarger{\sum}_{j\in J}\mathlarger{\sum}_{p\in P} &x_{ijp} \leq u_i, \quad && \forall i \in I \label{3} \intertext{Contracts with specific supplier facilities may agree on minimum allocation volumes. This is ensured by the following formula:} \mathlarger{\sum}_{j\in J} \mathlarger{\sum}_{p\in P} &x_{ijp}\geq V_i, \quad && \forall i \in I \label{3} \\ \intertext{Specific breweries desire to be supplied by at least two suppliers for some specific type of product code. This is ensured by the following two formulas:} \mathlarger{\sum}_{i\in I}&J_{ijp} \geq 2, \quad && \forall j \in J, p\in P \label{4}\\ &x_{ijp} \geq b_{ijp} M_{jp}\\ \intertext{Specific OpCos desire to be supplied by at least two suppliers for some specific type of product code. This is ensured by the following two formulas:} \mathlarger{\sum}_{i\in I}&F_{iop} \geq 2,\quad && \forall o \in O, p\in P \label{5}\\ \mathlarger{\sum}_{i\subset I}&x_{ijp} \geq F_{iop} G_{op},\quad && \forall i \in I, o\in O, p\in P \label{5} \end{align}
\end{document}
Ecco un esempio esteso:
\documentclass[a4paper,12pt]{article}
\usepackage{mathtools}
\usepackage{lipsum}
\begin{document}
\section{Let us try}
\subsection{Stating the objective function}
%\lipsum[1]
\begin{equation}\label{1}
\begin{aligned} \min \quad BFC \bigg(\sum_{i\in I}Fc_i u_i\bigg) &+ BEC \biggl(\sum_{i\in I} \sum_{j \in J} \sum_{p \in P} x_{ijp} Ec_{ijp} y \biggr) \\ &+ BTC \biggl(\sum_{i\in I} \sum_{j \in J} \sum_{p \in P} x_{ijp} Tc_{ijp} \biggr) \\ &+ BWC \biggl(\sum_{i\in I} \sum_{j \in J} \sum_{p \in P} x_{ijp} Wc_{ijp} \biggr) \\ &+ BZC \biggl(\sum_{i\in I} \sum_{j \in J} \sum_{p \in P} x_{ijp} Z_{ijp} \biggr) Zc \end{aligned} \end{equation} \subsection{Stating the constraints} The first constraint ensures that the demand of each customer is satisfied: \begin{align}\label{2}\allowdisplaybreaks &\sum_{i\in I} x_{ijp} = D_{jpy}, \quad && \forall j \in J, p\in P, y \in Y\\ \intertext{The second formula makes sure that the maximum} &\sum_{j\in J}\sum_{p\in P} x_{ijp} \leq u_i, \quad && \forall i \in I \label{3} \intertext{Specific breweries desire to be supplied by at least two suppliers for some specific type of product code. This is ensured by the following two formulas:} &\sum_{i\in I}J_{ijp} \geq 2, \quad && \forall j \in J, p\in P \label{4}\\ &x_{ijp} \geq b_{ijp} M_{jp}\label{5} \end{align}
\end{document}
e vedi se il risultato ti soddisfa. In tal caso, puoi estenderlo facilmente.
La mia versione, senza \mathlarger, parentesi ridotte e qualche altro accenno.
Ad esempio, BFC e simboli simili nella prima visualizzazione non significano un prodotto di tre quantità, ma una singola variabile, quindi \mathitriduce la spaziatura tra le lettere. Contrariamente a quanto affermato da altri, \cdotè necessario per evitare che i simboli vengano interpretati come “una funzione valutata a”.
Si dovrebbe usare \biggl(e \biggr), non solo \bigg. Comunque, con le dimensioni normali \sum, la \Bigversione sembra migliore; aggiungi \,se il pedice può entrare in conflitto con la parentesi.
Controlla l'ultimo i\subset I, che non sembra adattarsi.
Potresti considerare
\sum_{\substack{i\in I \\ j\in J \\ p\in P}}
invece della tripla sommatoria e similmente per le doppie sommatorie.
Evita le righe vuote prima della visualizzazione. Non è necessario \noindentse non c'è una riga vuota dopo il display (e se ne hai uno, \noindentsarebbe sbagliato).
\documentclass{article}
\usepackage{amsmath}
\newcommand{\tvar}[1]{\mathit{#1}}
\begin{document}
\subsection{Stating the objective function}
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text
\begin{equation}\label{1}
\begin{split}
\min \tvar{BFC} &\cdot \Bigl(\,\sum_{i\in I} Fc_i \cdot u_i\Bigr)
+
\tvar{BEC} \cdot \Bigl(\,\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp} \tvar{Ec}_{ijpy}\Bigr)
\\
{}+
\tvar{BTC} &\cdot \Bigl(\,\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp} \tvar{Tc}_{ijp}\Bigr)
+
\tvar{BWC} \cdot \Bigl(\,\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp} \tvar{Wc}_{ijp}\Bigr)
\\
{}+
\tvar{BZC} &\cdot \Bigl(\,\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp} Z_{ijp}\Bigr) \tvar{Zc}
\end{split}
\end{equation}
\subsection{Stating the constraints}
The first constraint ensures that the demand of each customer is satisfied:
\begin{equation}\label{2}
\sum_{i\in I}x_{ijp} = D_{jpy}, \quad \forall j \in J, p\in P, y \in Y
\end{equation}
The second formula makes sure that the maximum capacity of each supplier facility
is not exceeded:
\begin{equation}\label{3}
\sum_{j\in J}\sum_{p\in P}x_{ijp} \leq u_i, \quad \forall i \in I
\end{equation}
Contracts with specific supplier facilities may agree on minimum allocation volumes.
This is ensured by the following formula:
\begin{equation}\label{4}
\sum_{j\in J}\sum_{p\in P}x_{ijp} \geq V_i, \quad \forall i \in I
\end{equation}
Specific breweries desire to be supplied by at least two suppliers for some specific
type of product code. This is ensured by the following two formulas:
\begin{equation}\label{5}
\sum_{i\in I}J_{ijp} \geq 2, \quad \forall j \in J, p\in P
x_{ijp} \geq b_{ijp} M_{jp}
\end{equation}
Specific OpCos desire to be supplied by at least two suppliers for some specific
type of product code. This is ensured by the following two formulas:
\begin{alignat}{2} &\sum_{i\in I}F_{iop}\geq 2, &\quad& \forall o \in O, p\in P \label{6}\\ &\sum_{i\subset I}x_{ijp} \geq F_{iop}G_{op}, && \forall i \in I, o\in O, p\in P \label{7} \end{alignat}
\end{document}
Ecco la versione con\substack
Per la prima equazione puoi usare multlinel'ambiente (definito nel amsmathpacchetto):
\documentclass{article}
\usepackage{amsmath, amssymb}
\usepackage{lipsum}
\begin{document}
\subsection{Stating the objective function}
\lipsum[11]
\begin{multline}\label{1}
\min \quad \mathrm{BFC}{\cdot}\bigg(\sum_{i\in I}Fc_i{\cdot} u_i\bigg)
+ \mathrm{BEC}{\cdot}\bigg(\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp}{\cdot}Ec_{ijpy}\bigg) \\
%
+ \mathrm{BTC}{\cdot}\bigg(\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp}{\cdot}Tc_{ijp}\bigg)
+ \mathrm{BWC}{\cdot}\bigg(\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp}{\cdot}Wc_{ijp}\bigg) \\
%
+ \mathrm{BZC}{\cdot}\bigg(\sum_{i\in I}\sum_{j \in J}\sum_{p \in P}x_{ijp}{\cdot}Z_{ijp}\bigg){\cdot}Zc
\end{multline}
\end{document}
\subsection{Stating the constraints}
The first constraint ensures that the demand of each customer is satisfied:
\begin{align} \mathlarger{\sum}_{i\in I}x_i_j_p = D_j_p_y, \quad && \forall j \in J, p\in P, y \in Y\label{2} \end{align} \noindent The second formula makes sure that the maximum capacity of each supplier facility is not exceeded: \begin{align} \mathlarger{\sum}_{j\in J}\mathlarger{\sum}_{p\in P}x_i_j_p \leq u_i, \quad && \forall i \in I \label{3} \end{align} \noindent Contracts with specific supplier facilities may agree on minimum allocation volumes. This is ensured by the following formula: \begin{align} \mathlarger{\sum}_{j\in J}\mathlarger{\sum}_{p\in P}x_i_j_p \geq V_i, \quad && \forall i \in I \label{3} \end{align} \noindent Specific breweries desire to be supplied by at least two suppliers for some specific type of product code. This is ensured by the following two formulas: \begin{align} \mathlarger{\sum}_{i\in I}J_i_j_p \geq 2, \quad && \forall j \in J, p\in P \label{4}\\ x_i_j_p \geq b_i_j_p M_j_p \end{align} \noindentSpecific OpCos desire to be supplied by at least two suppliers for some specific type of product code. This is ensured by the following two formulas: \begin{align} \mathlarger{\sum}_{i\in I}F_i_o_p\geq 2,\quad && \forall o \in O, p\in P \label{5}\\ \mathlarger{\sum}_{i\subset I}x_i_j_p \geq F_i_o_pG_o_p,\quad && \forall i \in I, o\in O, p\in P \label{5} \end{align}
\end{document}
che producono:
Alcuni commenti:
- Aumentare la dimensione di alcuni simboli nell'equazione (nel tuo caso
\sum) non è una buona idea. Le loro dimensioni sono deliberatamente realizzate per equazioni di bell'aspetto, quindi per favore non distruggere gli sforzi dei designer - Suppongo che
BFC,BTC, etc siano abbreviazioni, che dovrebbero essere scritte con caratteri upshape, cioè dovrebbero essere scritte come\mathrm{BFC}, `\mathbf{BTC}˙, etc - Allo stesso modo
c_i_j_p_yè errata la notazione. Dovrebbe essere oc_{ijpy}(quale risultato è il più probabile desiderato) oc_{i_{j_{p_{y}}}}(il che è meno probabile) - Dal punto di vista matematico l'uso di
\cdotper la moltiplicazione non è necessario. Ad ogni modo, se insisti a usarli, puoi ridurre lo spazio intorno a loro racchiudendoli tra parentesi graffe (come è stato fatto in MWE sopra)