使用事例

使用事例

tabulararray…と同じですかitemize

次のようなリストが欲しいです

\documentclass{article}
\begin{document}
\begin{eqlist}
\item E=mc^2
\item e^{i\pi}+1=0
\item \text{ducks} + \text{caffeine}
    = \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{eqlist}
\end{document}

すでに使用していますenumitemが、考えるそのパッケージはどんな助けにもなるでしょう。もちろん、どんな解決策でも機能します:)

重要な違い:

  • ディスプレイ数学はどうですか?
  • や などの他のlist環境についてはどうでしょうか?descriptionenumerate

使用事例

実際のところ、このユースケースは非常に些細なことです。方程式のリストを作ることです。これを「楽しみのため」と呼ぶこともできますが、私は過去に実際に授業のノート用にハックして、このようなことをしたことがあります(例えば、代数群の特性をリスト化して名前を付けるなど)。このアイデアはそれだけに限定されていると思っていたので、私の(ひどく乱雑な)解決策を一般化することはありませんでしたが、さまざまなドキュメントでこのパターンがますます現れてきており、実際にしない予想通り、本当にひどい見た目です。都合よく、具体的な例はありませんが、reddit.com/r/LaTeX に現れた初心者向けの文書

答え1

ここに解決策があります(使用しませんが、互換性があることを願っていますenumitem

注記:OPがディスプレイ数学で何をしたいのか理解できません

制限:空白行はサポートされていません (このコードは機能しません)

\begin{mathitem}
\item E=mc^2

\item e^{i\pi}+1=0
\item \text{ducks} + \text{caffeine}
    = \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{mathitem}

完全なコード

\documentclass{article}
\usepackage{xpatch}

\usepackage{amsmath,url}
\usepackage{enumitem}


\makeatletter
\newcommand{\mtmathitem}{%
\xpatchcmd{\item}{\@inmatherr\item}{\relax\ifmmode$\fi}{}{\errmessage{Patching of \noexpand\item failed}}
\xapptocmd{\@item}{$}{}{\errmessage{appending to \noexpand\@item failed}}}
\makeatother

\newenvironment{mathitem}[1][]{%
\itemize[#1]\mtmathitem}{$\endlist}                    %$

\newenvironment{mathenum}[1][]{%
\enumerate[#1]\mtmathitem}{$\endlist}                  %$

\newenvironment{mathdesc}[1][]{%
\description[#1]\mtmathitem}{$\endlist}                %$


\begin{document}

\begin{mathitem}
\item E=mc^2
\item e^{i\pi}+1=0
\item \text{ducks} + \text{caffeine}
    = \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{mathitem}


\begin{mathenum}
\item E=mc^2
\item e^{i\pi}+1=0
\item \text{ducks} + \text{caffeine}
    = \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{mathenum}


\begin{mathenum}[label=\emph{\alph*})]
\item E=mc^2
\item e^{i\pi}+1=0
\item \text{ducks} + \text{caffeine}
    = \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{mathenum}

\begin{mathdesc}
\item[some] E=mc^2
\item[thing] e^{i\pi}+1=0
\item[else] \text{ducks} + \text{caffeine}
    = \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{mathdesc}

\end{document}

ここに画像の説明を入力してください

答え2

(回答は、(i)「MathDescription」環境を追加し、(ii)との互換性を示すように変更されました。列挙項目パッケージ。)

これは LuaLaTeX ベースのソリューションです。 、 、 という 3 つの新しい環境を定義しますMathItemizeMathEnumerateこれらの環境は、すべての資料 (環境内の説明ラベルを除く) がテキスト モードではなく数式モードでタイプセットされることを除いて、「通常の」 、、環境とMathDescription同じように動作します。itemizeenumeratedescriptionMathDescription

必要に応じて、アイテムの内容をdisplaymathモードでレンダリングするために\displaystyle挿入することができます。\item

\item \displaystyle \hfill <formula> \hfill 

表示数学資料を中央揃えにします。

コードはenumitemパッケージで非常にうまく動作するようです。つまり、以下の例ではパッケージをロードし、および環境enumitemのデフォルト設定の一部を変更します。itemizeenumerate

OP の記述とコメントではネストされたリストの必要性が示されていないようですが、コードはネストされていないリストに対してのみ機能します。

ここに画像の説明を入力してください

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{amsmath}      % for "\text" macro
\usepackage{url,hyperref} 
\hypersetup{colorlinks=true}

%% Check compatibility with "enumitem" package...
\usepackage{enumitem} 
\setlist{itemsep=1ex}
\setlist[itemize]{label=$\star$}
\setlist[enumerate]{label=\roman*), leftmargin=*, widest = iii}

\usepackage{luacode,luatexbase}
%% Lua-side code: Three Boolean variables, two new
%% functions, & calls to assign the new functions to 
%% the "process_input_buffer" callback
\begin{luacode}
env_type_1 = false
env_type_2 = false
first_list_item = true

function change_item_properties_itemenum ( line )
  if (env_type_1 == true) then
    if (first_list_item == true) then
        line = string.gsub( line, "\\item", "\\item $" )
        first_list_item = false
    else 
        line = string.gsub( line, "\\item", "$ \\item $" )
    end  
  end  
  return (line)
end

function change_item_properties_desc ( line )
  if (env_type_2 == true) then
    if (first_list_item == true) then
        line = string.gsub( line, "(\\item.-%[.-%])", "%0 $" )
        first_list_item = false
    else 
        line = string.gsub( line, "(\\item.-%[.-%])", "$ %0 $" )
    end  
  end  
  return (line)
end

luatexbase.add_to_callback ( "process_input_buffer",
        change_item_properties_itemenum, 
        "MathModeItemizeEnumerate" )
luatexbase.add_to_callback ( "process_input_buffer",
        change_item_properties_desc, 
        "MathModeDescription" )
\end{luacode}

%% TeX-side code -- Three new environments: 
%% MathItemize, MathEnumerate, MathDescription
\newenvironment{MathItemize}%
  {\directlua{ env_type_1 = true }
   \begin{itemize} }%
  {$\end{itemize}
   \directlua{ env_type_1 = false 
               first_list_item = true}}
\newenvironment{MathEnumerate}%
  {\directlua{ env_type_1 = true }
   \begin{enumerate}}%
  {$\end{enumerate}
   \directlua{ env_type_1 = false 
               first_list_item = true}}
\newenvironment{MathDescription}%
  {\directlua{ env_type_2 = true }
   \begin{description}}%
  {$\end{description}
   \directlua{ env_type_2 = false 
               first_list_item = true}}

\begin{document}

\noindent
A \verb+MathItemize+ list
\begin{MathItemize}
\item E=mc^2
\item e^{i\pi}+1=0
\item \text{ducks} + \text{caffeine}
    = \text{\url{https://i.stack.imgur.com/GVksc.gif}}
\end{MathItemize}

\bigskip\noindent
An ``ordinary'' \verb+itemize+ list
\begin{itemize}
\item Hello world.
\item Goodbye world.
\end{itemize}

\bigskip\noindent
A \verb+MathEnumerate+ list
\begin{MathEnumerate}
\item a^2+b^2=c^2
\item \displaystyle \hfill \sum_{k=1}^\infty \frac{1}{k^2} = \frac{\pi^2}{6} \hfill
\item 1+1=2
\end{MathEnumerate}

\bigskip\noindent
A \verb+MathDescription+ list
\begin{MathDescription}
\item [Einstein] \hfill  E=mc^2 \hfill 
\item[Euler] e^{i\pi}+1=0
\item  [Pythagoras] a^2+b^2=c^2
\end{MathDescription}

\bigskip\noindent
Finally, an ``ordinary'' \verb+enumerate+ list
\begin{enumerate}[widest=ii] 
\item abcdef, and
\item uvwxyz.
\end{enumerate}

\end{document}

答え3

簡単に言うと:

\documentclass{article}

\makeatletter
\newif\if@mathitemize
\newif\if@closemathitem
\let\orig@item=\item
\renewcommand{\item}{\if@closemathitem$\fi\orig@item\if@mathitemize\@closemathitemtrue$\fi}
\newenvironment{mathitemize}{\@mathitemizetrue\itemize\@closemathitemfalse}{$\enditemize}
\makeatother

\begin{document}

\begin{itemize}
\item test
\item test2
\end{itemize}

\begin{mathitemize}
\item E=mc^2
\end{mathitemize}

\end{document}

ここに画像の説明を入力してください

関連情報