Как выровнять пронумерованные уравнения по левому краю, а текст — по правому?

Как выровнять пронумерованные уравнения по левому краю, а текст — по правому?

Я перечисляю несколько отношений с краткими и описательными утверждениями о них. Я представляю себе это так: я пытаюсь разместить отношения слева, а метки справа, выровняв их по левому краю. Нижеприведенная фиктивная попытка иллюстрирует мое намерение:

Глупый пример.

Я хочу, чтобы это выглядело как "расширенный" пронумерованный список. Поэтому у него должны быть такие же отступы и вертикальные интервалы, как у других моих списков, и не должно быть номеров уравнений. Я думал об использовании окружения tabular, но не знаю, как выразить интервалы в терминах того, что enumerateиспользует.

Каков был бы разумный способ это сделать?

решение1

Используйте обычный метод enumerateи поместите каждое уравнение в поле одинакового размера (используяeqparbox's \eqmakebox[<tag>][<align>]{<stuff>}:

введите описание изображения здесь

\documentclass{article}

\usepackage{eqparbox}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut lorem ac orci ullamcorper mattis. 
Nunc at convallis turpis, aliquam vehicula leo. Etiam mollis, urna nec interdum suscipit, lacus 
ante mollis risus, placerat efficitur lacus quam at mauris. Vestibulum pretium dolor a eleifend 
vestibulum. Duis sed ornare sapien.

\begin{enumerate}
  \item First item
  \item Second item
  \item Third item
\end{enumerate}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut lorem ac orci ullamcorper mattis. 
Nunc at convallis turpis, aliquam vehicula leo. Etiam mollis, urna nec interdum suscipit, lacus 
ante mollis risus, placerat efficitur lacus quam at mauris. Vestibulum pretium dolor a eleifend 
vestibulum. Duis sed ornare sapien.

\begin{enumerate}
  \item
    \eqmakebox[leq][l]{$f(x) = \Theta$} \qquad (belonging to~$\Theta$)
  \item
    \eqmakebox[leq][l]{$f(x+y) = x \leftrightarrow x > y$} \qquad (identity of confusion)
  \item
    \eqmakebox[leq][l]{$\lambda f(x) = f(x^\lambda)$} \qquad (non-sensible relation)
\end{enumerate}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut lorem ac orci ullamcorper mattis. 
Nunc at convallis turpis, aliquam vehicula leo. Etiam mollis, urna nec interdum suscipit, lacus 
ante mollis risus, placerat efficitur lacus quam at mauris. Vestibulum pretium dolor a eleifend 
vestibulum. Duis sed ornare sapien.

\end{document}

Использование списка вместо списка tabularгарантирует, что все будет выстроено так же, как и в других ваших списках, а размещение контента в блоках одинакового размера обеспечит горизонтальное выравнивание с вашими «комментариями».

решение2

Вы можете определить новую среду на основе tabularкомбинированной с элементом команды, которая обеспечит нумерацию и выравнивание:

Пример вывода

\documentclass{article}

\usepackage{array,environ}

\newcolumntype{L}{>{$}l<{$}}

\newcounter{aenum}
\renewcommand{\theaenum}{\arabic{aenum}.}
\newcommand{\aitem}[2]{\refstepcounter{aenum}\theaenum&#1&(#2)\\}

\NewEnviron{annotedeqnlist}{\noindent
\begin{tabular}{rL@{\quad}l}
  \setcounter{aenum}{0}%
  \BODY
\end{tabular}}

\begin{document}

\begin{annotedeqnlist}
\aitem{f(x) \in \Theta}{belonginess to \( \Theta \)}
\aitem{f(x+y)=x \iff x>y}{identity of confusion}
\end{annotedeqnlist}
\end{document}

Я использовал arrayпакет для предоставления удобного столбца типа математики. Вы можете рассмотреть возможность добавления \displaystyleк определению столбца следующего:

\newcolumntype{L}{>{$\displaystyle}l<{$}}

решение3

введите описание изображения здесь

\documentclass[a4paper]{article}

%% Language and font encodings
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
%% Useful packages
\usepackage{amsmath}
\newcommand\lreqn[2]{\noindent\makebox[\textwidth]{$\displaystyle#1$\hfill(#2)}\vspace{2ex}}


\begin{document}
\lreqn{f(x)= \Theta}{first function}
\lreqn{f(x+y)=f(x)+f(y)}{second function}
\end{document}

или посетитеПишите «текст» **правильно** в уравнениях.

решение4

Код может показаться сложным, но синтаксис довольно дружелюбен. Окружение annotedeqnпредставляет собой список строк, введенных с помощью \item, с &разделителем в качестве. Часть перед &набрана в математическом режиме (это можно изменить, если нужно), вторая часть в текстовом режиме.

Первые части будут измерены, поэтому мы можем начать вторые части в том же горизонтальном положении, на расстоянии двух em от конца самой широкой первой части.

Очевидное предположение состоит в том, что каждый элемент умещается на линии.

\documentclass{article}

\usepackage{environ,xparse}

\usepackage{lipsum}

\ExplSyntaxOn
\NewEnviron{annotedeqnlist}
 {
  \giusti_annotedeqn_list:V \BODY
 }

\seq_new:N \l__giusti_annotedeqn_list_seq
\seq_new:N \l__giusti_annotedeqn_listarg_seq
\seq_new:N \l__giusti_annotedeqn_temp_seq
\box_new:N \l__giusti_annotedeqn_first_box

\cs_new_protected:Nn \giusti_annotedeqn_list:n
 {
  % get the items
  \seq_set_split:Nnn \l__giusti_annotedeqn_list_seq { \item } { #1 }
  % discard the first empty item
  \seq_pop_left:NN \l__giusti_annotedeqn_list_seq \l_tmpa_tl
  % massage the items
  \seq_clear:N \l__giusti_annotedeqn_listarg_seq
  \seq_map_inline:Nn \l__giusti_annotedeqn_list_seq
   {
    \seq_set_split:Nnn \l__giusti_annotedeqn_temp_seq { & } { ##1 }
    \seq_put_right:Nx \l__giusti_annotedeqn_listarg_seq
     {
      {\seq_item:Nn \l__giusti_annotedeqn_temp_seq { 1 } }
      {\seq_item:Nn \l__giusti_annotedeqn_temp_seq { 2 } }
     }
   }
  % measure the equations
  \hbox_set:Nn \l__giusti_annotedeqn_first_box
   {
    $\begin{array}{@{}l@{}}
    \seq_map_function:NN \l__giusti_annotedeqn_listarg_seq \__giusti_annotedeqn_first:n
    \end{array}$
   }
  % produce the enumerate environment
  \begin{enumerate}
  \seq_map_function:NN \l__giusti_annotedeqn_listarg_seq \__giusti_annotedeqn_item:n
  \end{enumerate}
 }
\cs_generate_variant:Nn \giusti_annotedeqn_list:n { V }

\cs_new_protected:Nn \__giusti_annotedeqn_first:n
 {
  \use_i:nn #1 \\
 }

\cs_new_protected:Nn \__giusti_annotedeqn_item:n
 {
  \__giusti_annotedeqn_item:nn #1
 }
\cs_new_protected:Nn \__giusti_annotedeqn_item:nn
 {
  \item
  \makebox[\box_wd:N \l__giusti_annotedeqn_first_box][l]{$#1$}
  \qquad
  #2
 }
\ExplSyntaxOff

\begin{document}

\lipsum*[2]
\begin{annotedeqnlist}

\item f(x) \in \Theta & (belonginess to \( \Theta \))

\item\label{confusion} f(x+y)=x \iff x>y & (identity of confusion)

\item \lambda f(x)=f(x^\lambda) & (non-sensible relation)

\end{annotedeqnlist}
with a reference to item~\ref{confusion}.

\lipsum*[3]
\begin{annotedeqnlist}

\item f(x) \in \Theta & (belonginess to \( \Theta \))

\item \lambda f(x)=f(x^\lambda) & (non-sensible relation)

\end{annotedeqnlist}

\end{document}

введите описание изображения здесь

Связанный контент