
Estou listando algumas relações com declarações curtas e descritivas sobre elas. Do jeito que imagino, estou tentando colocar relações à esquerda e rótulos à direita, alinhados em relação à margem esquerda. A tentativa falsa abaixo ilustra minha intenção:
Eu só quero que isso pareça uma lista enumerada "estendida". Portanto, deve ter o mesmo recuo e espaçamento vertical das minhas outras listas e nenhum número de equação. Pensei em usar o tabular
ambiente, mas não sei expressar os espaçamentos em termos do que enumerate
utiliza.
Qual seria uma maneira sensata de fazer isso?
Responder1
Use um regular enumerate
e defina cada equação dentro da caixa do mesmo tamanho (usandoeqparbox
é \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}
Usar uma lista em vez de tabular
garantirá que as coisas se alinhem da mesma forma que suas outras listas, e definir o conteúdo em caixas de tamanhos semelhantes garantirá o alinhamento horizontal com seus "comentários".
Responder2
Você pode definir um novo ambiente com base em tabular
um comando semelhante a um item que fornecerá a numeração e o alinhamento:
\documentclass{article}
\usepackage{array,environ}
\newcolumntype{L}{>{$}l<{$}}
\newcounter{aenum}
\renewcommand{\theaenum}{\arabic{aenum}.}
\newcommand{\aitem}[2]{\refstepcounter{aenum}\theaenum&(#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}
Usei o array
pacote para fornecer uma coluna de tipo matemático conveniente. Você pode considerar adicionar \displaystyle
à definição da coluna o seguinte:
\newcolumntype{L}{>{$\displaystyle}l<{$}}
Responder3
\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}
Responder4
O código pode parecer complicado, mas a sintaxe é bastante amigável. O annotedeqn
ambiente é uma lista de linhas introduzidas por \item
, com &
separador. A parte anterior &
é composta em modo matemático (isso pode ser alterado, se necessário), a segunda parte em modo texto.
As primeiras partes serão medidas, então podemos iniciar as segundas partes na mesma posição horizontal, a dois ems do final da primeira parte mais larga.
A suposição óbvia é que cada item cabe em uma linha.
\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}