如何设置集合元素之间的空间?

如何设置集合元素之间的空间?

我想列出一个集合的所有元素。我试过

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[\left \{0, 1, 2, 3, 4, 5, 6\right \}\]

\[\left \{0,\, 1, \,2, \, 3, \,4, \,5, \,6\right \}\]
\end{document}

在此处输入图片描述

有什么方法可以让我做得更好吗?

答案1

这是我的最简单的技巧。

\documentclass[border=12pt,12pt]{standalone}
\usepackage{pgffor}
\def\set[#1,#2]{$\{#1\foreach \x in {#2}{,\,\x}\}$}

\begin{document}
\set[1,2,3] and \set[1,] and an empty set \set[,]
\end{document}

在此处输入图片描述

版本 2

删除$以便您使用其他数学环境。

\documentclass[preview,border=12pt,12pt,varwidth]{standalone}
\usepackage{amsmath}
\usepackage{pgffor}
\def\set[#1,#2]{\{#1\foreach \x in {#2}{,\,\x}\}}

\begin{document}
\[
    \set[1,2,3]
\]
 and $\set[1,]$ and an empty set $\set[,]$
\end{document}

在此处输入图片描述

答案2

一个“经典”的定义,其中逗号是数学活动的,并且定义为给出一个逗号后跟一个细空格。

\documentclass{article}
\usepackage{mathtools}

\DeclarePairedDelimiterX{\listset}[1]{\lbrace}{\rbrace}{%
  \begingroup
  \begingroup\lccode`~=`, \lowercase{\endgroup
    \def~}{\mathchar\commacode\,}%
  \mathcode`,=\string"8000
  #1
  \endgroup
}
\AtBeginDocument{\edef\commacode{\the\mathcode`,}}

\begin{document}

\[\listset{0, 1, 2, 3, 4, 5, 6}\]

\[\{0,\, 1, \,2, \, 3, \,4, \,5, \,6\}\]

\[\listset[\big]{0, 1, 2, 3, 4, 5, 6}\]

\end{document}

查看文档,mathtools了解声明的配对分隔符可接受哪些可选项。

在此处输入图片描述

相同但不激活逗号,但使用expl3

\documentclass{article}
\usepackage{mathtools,xparse}

\DeclarePairedDelimiterX{\listset}[1]{\lbrace}{\rbrace}{\listsetaux{#1}}

\ExplSyntaxOn
\NewDocumentCommand{\listsetaux}{m}
 {
  \seq_set_split:Nnn \l_minthao_listset_seq { , } { #1 }
  \seq_use:Nn \l_minthao_listset_seq { ,\, }
 }
\seq_new:N \l_minthao_listset_seq
\ExplSyntaxOff

\begin{document}

\[\listset{0, 1, 2, 3, 4, 5, 6}\]

\[\{0,\, 1, \,2, \, 3, \,4, \,5, \,6\}\]

\[\listset[\big]{0, 1, 2, 3, 4, 5, 6}\]

\end{document}

答案3

@Money Oriented Programmer 的回答略有改进:

  1. 不需要针对单例和空集的解决方法
  2. 使用countkey of,pgffor因此您需要最新版本。另一种方法是使用\iffirstelem自定义条件
  3. \set{1,...,50}您可以使用像或这样方便的符号\set{a,...,g}(请参阅 pfg/tikz 手册“实用程序 > 重复事物”)
  4. 使用\ensuremath允许在数学模式外部和内部使用
  5. 避免使用[]分隔符,因为参数不是可选的,而{}括号更能暗示实际的集合

代码如下:

\documentclass[border=12pt,12pt,convert=png]{standalone}
\usepackage{pgffor}
\def\set#1{%
    \ensuremath{%
        \ifx!#1!\emptyset\else
            \{%
                \foreach[count=\i] \x in {#1}{%
                    \ifnum\i>1,\,\fi%
                    \x%
                }%
            \}
        \fi%
    }%
}

\begin{document}
\set{1,...,3} and \set{1} and an empty set \set{}
\end{document}

预览

您可能还对以下方面感兴趣布拉克特包裹。

答案4

对于拿着锤子的人来说,所有东西看上去都像钉子。

因此,我也有一个我的小锤子:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xinttools}
\newcommand{\InsertExtraAfterCommas}[2][\,]
     {\xintListWithSep{,#1}{\xintCSVtoList {#2}}}

\begin{document}
\[\left \{0, 1, 2, 3, 4, 5, 6\right \}\]

\[\left \{\InsertExtraAfterCommas{0, 1, 2, 3, 4, 5, 6}\right\}\]

\[\left \{\InsertExtraAfterCommas[\;\;\;]{0, 1, 2, 3, 4, 5, 6}\right\}\]
\end{document}

额外的空格

相关内容