Anwendungsfall

Anwendungsfall

tabularist zu arraywie itemizezu …?

Ich hätte gerne eine Liste wie

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

Ich verwende bereits enumitem, aber ichdenkendieses Paket wird Ihnen sicher weiterhelfen. Natürlich funktioniert jede Lösung :)

Wichtige Abweichungen:

  • Was ist mit Anzeigemathematik?
  • Was ist mit den anderen listUmgebungen – wie descriptionund enumerate?

Anwendungsfall

Der Anwendungsfall ist eigentlich ziemlich trivial – eine Liste von Gleichungen zu haben. Man könnte das „zum Spaß“ nennen, aber ich habe in der Vergangenheit tatsächlich etwas für Unterrichtsnotizen zusammengehackt, das mir erlaubte, so etwas zu tun (z. B. die Eigenschaften algebraischer Gruppen aufzulisten und zu benennen). Ich hatte gedacht, die Idee sei darauf beschränkt, also habe ich meine (furchtbar chaotische) Lösung nie verallgemeinert, aber ich sehe das Muster immer häufiger in verschiedenen Dokumenten auftauchen, wo es tatsächlichnichtsehen absolut schrecklich aus, wie man erwarten würde. Praktischerweise habe ich keine soliden Beispiele außerdieses Dokument für Anfänger, das auf reddit.com/r/LaTeX aufgetaucht ist.

Antwort1

Hier ist eine Lösung (sie verwendet nicht, aber ich hoffe, sie ist kompatibel mit enumitem)

Notiz:Ich verstehe nicht, was der OP mit der Anzeigemathematik machen will

Einschränkung:Leere Zeilen werden nicht unterstützt (dieser Code funktioniert nicht)

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

Vollständiger Code

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

Bildbeschreibung hier eingeben

Antwort2

(Antwort geändert, um (i) eine "MathDescription"-Umgebung hinzuzufügen und (ii) die Kompatibilität mit demAufzählungselementPaket.)

Hier ist eine LuaLaTeX-basierte Lösung. Sie definiert drei neue Umgebungen namens MathItemize, MathEnumerate, und MathDescription. Die Umgebungen funktionieren genau wie die „normalen“ itemize, enumerate, und descriptionUmgebungen, mit der Ausnahme, dass alle Angaben (außer den beschreibenden Beschriftungen in der MathDescriptionUmgebung) im Mathematikmodus statt im Textmodus gesetzt werden.

Bei Bedarf \displaystylekann danach eingefügt werden , \itemum den Inhalt eines Elements im Displaymath-Modus darzustellen. Verwenden Sie

\item \displaystyle \hfill <formula> \hfill 

um das Anzeigemathematikmaterial zu zentrieren.

Der Code scheint mit dem enumitemPaket sehr gut zu funktionieren. Das folgende Beispiel lädt das enumitemPaket und ändert einige der Standardeinstellungen der itemizeUmgebungen enumerate.

Da aus den Ausführungen und Kommentaren des OP kein Bedarf für verschachtelte Listen ersichtlich ist, funktioniert der Code nur für nicht verschachtelte Listen.

Bildbeschreibung hier eingeben

% !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}

Antwort3

Schnell und dreckig:

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

Bildbeschreibung hier eingeben

verwandte Informationen