J'aimerai créer un environnement pour simplifier un peu mes fichiers tex.

Voici le code (de base)

\documentclass[a4paper]{article}

\usepackage{amsmath, empheq}

\begin{document}

    \begin{subequations}
        \begin{empheq}[left=\empheqlbrace]{alignat=2}
        x & + y &    & = 2 \\
        x &     &    & = 1 \\
          &     & 2z & = 4
        \end{empheq}
    \end{subequations}

\end{document}

Le but est donc de faire un environnement pour simplifier un peu le système :

\newenvironment{system}
    { 
        \begin{subequations}
        \begin{empheq}[left=\empheqlbrace]{alignat=2}
    }
    {
        \end{empheq}
        \end{subequations}
    }

Ce qui donnerait un code comme ça à la fin :

\documentclass[a4paper]{article}

\usepackage{amsmath, empheq}

\newenvironment{system}
    { 
        \begin{subequations}
        \begin{empheq}[left=\empheqlbrace]{alignat=2}
    }
    {
        \end{empheq}
        \end{subequations}
    }

\begin{document}

    \begin{system}
        x & + y &    & = 2 \\
        x &     &    & = 1 \\
          &     & 2z & = 4
    \end{system}

\end{document}

Ce dernier code me renvoie une erreur : LaTeX Error: \begin{empheq} on input line 17 ended by \end{system}. Est-ce que empheq ne peut pas être utilisé dans un environnement ? Ou alors j'utilise mal les commandes ?

Posée 26 Avr '21, 14:07

Sha-chan's gravatar image

Sha-chan
16938
Taux d'acceptation : 0%

Le package empheq charge le package mathtools qui lui-même charge le package amsmath. Le chargement explicite de ce dernier est donc inutile si le premier est chargé.

(26 Avr '21, 14:38) denis ♦♦ denis's gravatar image

Avec l'extension environ :

\documentclass[a4paper]{article}

\usepackage{environ}

\usepackage{amsmath, empheq}

\NewEnviron{system}{ 
  \begin{subequations}
  \begin{empheq}[left=\empheqlbrace]{alignat=2}
  \BODY
  \end{empheq}
  \end{subequations}
}

\begin{document}

    \begin{system}
        x & + y &    & = 2 \\
        x &     &    & = 1 \\
          &     & 2z & = 4
    \end{system}

\end{document}
Lien permanent

Publiée 26 Avr '21, 14:31

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 26 Avr '21, 14:31

Une solution, basée sur l'idée de samcarter, mais recourant aux fonctionnalités du package xparse (récemment intégrées au noyau LaTeX).

\documentclass{article}
\usepackage{xparse} % Inutile avec les versions récentes de LaTeX
\usepackage{empheq}

\NewDocumentEnvironment { system } { +b }
{
  \begin{subequations}
  \begin{empheq}[left=\empheqlbrace]{alignat=2}
  #1
  \end{empheq}
  \end{subequations}
}{
}

\begin{document}
\begin{system}
  x & + y &    & = 2 \\
  x &     &    & = 1 \\
    &     & 2z & = 4
\end{system}
\end{document}
Lien permanent

Publiée 26 Avr '21, 14:45

denis's gravatar image

denis ♦♦
7.0k1510
Taux d'acceptation : 52%

Modifiée 26 Avr '21, 15:15

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.