Aligner les formules mathématiques

Aug 27 2020

J'écris mes formules mathématiques et mes contraintes avec Overleaf. Ceci est mon code et je vous montre également le résultat que j'ai obtenu (voir photo). Comme vous pouvez le voir, les formules ne sont pas bien alignées. Je voudrais améliorer la mise en page en alignant toutes les formules et en les étiquetant (avec des nombres, comme indiqué sur l'image). Ce serait extrêmement utile si quelqu'un pouvait m'aider avec ça!

\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}

Réponses

4 Bernard Aug 27 2020 at 16:49

Une solution simple utilise un seul alignenvironnement et la \intertextcommande.

J'ai simplifié le préambule à ce qui est nécessaire pour que le code fonctionne. De plus, je ne pense pas que vous ayez vraiment besoin d'utiliser un double \mathlarger, ce qui fait que le numéro d'équation soit placé sous l'équation, même lorsque vous utilisezmultlined

Btw, vous n'avez pas à charger amsfontslorsque vous chargez amssymb- ce dernier le fait pour vous. Notez qu'il hyperrefdevrait être chargé comme dernier paquet, à quelques exceptions près.

\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} 

5 Denis Aug 27 2020 at 15:05

Voici un exemple détaillé:

\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}

et voyez si le résultat vous convient. Si tel est le cas, vous pouvez l'étendre facilement.

4 egreg Aug 27 2020 at 17:10

Ma version, sans \mathlargerparenthèses réduites et quelques autres indices.

Par exemple, BFC et les symboles similaires dans le premier affichage ne signifient pas un produit de trois quantités, mais une seule variable, donc \mathitréduit l'espacement entre les lettres. Contrairement à ce que d'autres ont déclaré, \cdotest nécessaire pour éviter que les symboles soient interprétés comme «une fonction évaluée à».

Il faut utiliser \biggl(et \biggr), pas seulement \bigg. Quoi qu'il en soit, avec la taille normale \sum, la \Bigversion semble meilleure; ajouter \,si l'indice peut entrer en conflit avec les parenthèses.

Vérifiez le dernier i\subset I, qui ne semble pas convenir.

Vous pourriez envisager

\sum_{\substack{i\in I \\ j\in J \\ p\in P}}

au lieu de la triple sommation et de même pour les doubles sommations.

Évitez les lignes vides avant les affichages. Il n'y a pas besoin de \noindents'il n'y a pas de ligne vide après l'affichage (et si vous en avez une, ce \noindentserait faux).

\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}

Voici la version avec \substack

3 Zarko Aug 27 2020 at 15:30

Pour la première équation, vous pouvez utiliser l' multlineenvironnement (défini dans le amsmathpackage):

\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}

qui produisent:

Certains commentaires:

  • Augmenter la taille de certains symboles dans l'équation (dans votre cas \sum) n'est pas une bonne idée. Leur taille est délibérément conçue pour de belles équations, alors veuillez ne pas détruire les efforts des concepteurs
  • Je suppose que BFC, BTC, etc sont les abréviations, qui devraient être écrire avec les polices upshape, à savoir qu'il doit être écrit comme \mathrm{BFC}, `\ mathbf {BTC} ˙, etc.
  • De même, la c_i_j_p_ynotation est erronée. Cela devrait être ou c_{ijpy}(quel résultat est le plus probablement souhaité) ou c_{i_{j_{p_{y}}}}(ce qui est moins probable)
  • Du point de vue mathématique, l'utilisation de \cdotpour la multiplication n'est pas nécessaire. Quoi qu'il en soit, si vous persistez à les utiliser, vous pouvez réduire l'espace autour d'eux en les entourant d'accolades (comme cela est fait dans MWE ci-dessus)