动机

动机

动机

当我在多行方程环境中使用数学模式时itemize,我必须执行以下操作

...
\begin{itemize}
  \item $\begin{aligned}[t]
    equation stuff
  \end{aligned}$
  ...
\end{itemize}
...

问题

我怎样才能将两个组件$\begin{aligned}[t]和包装\end{aligned}$成一个新的符号,例如§?我想将上面的例子写成

...
\begin{itemize}
  \item §equation stuff§
  ...
\end{itemize}
...

这有利于解决方案的稳健性。


(新符号不一定要为§。)

答案1

\catcode`§=\active如果文件声明

\usepackage[utf8]{inputenc}

因为§在 UTF-8 中是双字节字符。在这种情况下,您可以使用

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}

\usepackage{newunicodechar}
\newunicodechar{§}{\mymath}
\def\mymath#1§{$\begin{aligned}[t] #1\end{aligned}$}

\newenvironment{itemalign}
  {$\aligned[t]}
  {\endaligned$}

\begin{document}
\begin{itemize}
\item §x&=2\\y&=6§
\item \begin{itemalign}x&=2\\y&=6\end{itemalign}
\end{itemize}
\end{document}

inputenc其优点是还可以与 LuaLaTeX 和 XeLaTeX 一起使用(其中不应出现调用)。

不过,我建议使用新的环境方法。

在此处输入图片描述

答案2

如果我是你,我会使用两个不同的宏来打开和关闭环境。我会这样做

\def\ba#1\ea{$\begin{aligned}[t]#1\end{aligned}$}

可以这样用

\begin{itemize}
\item \ba equation stuff \ea
\end{itemize}

答案3

那么如何使其§活跃起来?

\documentclass{article}

\usepackage{amsmath}

\catcode`§=\active
\def§#1§{$\begin{aligned}[t] #1\end{aligned}$}

\begin{document}
\begin{itemize}
\item §x&=2\\y&=6§
\end{itemize}
\end{document}

然后我们可以扫描一个参数直到下一次出现§并将其包装在中aligned


正如 @egreg 指出的那样,使用pdflatex和会出现问题inputenc(另请参阅:使用 \usepackage[utf8]{inputenc} 对 unicode 字符进行 Catcodes)。在这种情况下,一个简单的解决方法是更改§​​为例如|

相关内容