关于集合表达中的分割线

关于集合表达中的分割线

我使用from定义了一个用于排版(数学)集合\set[<size>]{<first>}{<second>}的命令,它接受一个可选参数和两个强制参数:当第二个强制参数为空时,结果为;当它不为空时,结果为。\DeclarePairedDelimiterXmathtools{ <first> }{ <first> | <second> }

\DeclarePairedDelimiterX \set [2] \lbrace \rbrace
  {
    \mskip1.5mu
    #1
    \tl_if_blank:nF { #2 } { \mskip2.5mu \delimsize\vert \mskip2.5mu #2 }
    \mskip1.5mu
  }

我的问题与分隔线有关(在上面的代码中是\delimsize\vert):

  1. 如何使其成为虚线或点线?(这里对我来说困难的是我不知道如何让它适应可选参数给出的大小
  2. 如何使线条更粗?(\mathbf在这里不起作用

(我想在我的文档中尝试这些样式,因为有时在这个符号中一条普通的垂直线看起来不太清晰,例如当\mid内容中有)

下面是 MWE。

\documentclass{article}

\usepackage{amssymb,mathtools}
% \usepackage{newpxmath}

\ExplSyntaxOn

\DeclarePairedDelimiterX \set [2] \lbrace \rbrace
  {
    \mskip1.5mu
    #1
    \tl_if_blank:nF { #2 } { \mskip2.5mu \delimsize\vert \mskip2.5mu #2 }
    \mskip1.5mu
  }

\ExplSyntaxOff

\begin{document}

\[
    \set{a}{\exists n \in \mathbb{N}, a^n = 1}
\]

\[
    \set[\bigg]{a}{\exists n \in \mathbb{N}, a^n = 1}
\]

\end{document}

答案1

这是概念验证。你可能想使用 TiZ 为更好的虚线或点线,但想法是一样的:测量高度加上深度\delimsize\vert

\documentclass{article}
\usepackage{mathtools}

\ExplSyntaxOn
\DeclarePairedDelimiterX\set [2] \lbrace \rbrace
  {
    \mspace{1.5mu}
    #1
    \tl_if_blank:nF { #2 } { \mathrel{\dashedsep} #2 }
    \mspace{1.5mu}
  }
\ExplSyntaxOff

\newcommand{\dashedsep}{%
  \sbox0{$\delimsize\vert$}%
  \vcenter to \dimexpr \ht0+\dp0 {\offinterlineskip
    \cleaders\vbox{\vskip0.5pt\hbox{\vrule width 0.4pt height 1pt}\vskip0.5pt}\vfill
  }%
}

\begin{document}

$\set{x}{x^2<0}$

$\set[\Big]{x}{x^2<0}$

\end{document}

在此处输入图片描述

不,谢谢。

相关内容