我使用from定义了一个用于排版(数学)集合\set[<size>]{<first>}{<second>}
的命令,它接受一个可选参数和两个强制参数:当第二个强制参数为空时,结果为;当它不为空时,结果为。\DeclarePairedDelimiterX
mathtools
{ <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
):
- 如何使其成为虚线或点线?(这里对我来说困难的是我不知道如何让它适应可选参数给出的大小)
- 如何使线条更粗?(
\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
这是概念验证。你可能想使用 Ti钾Z 为更好的虚线或点线,但想法是一样的:测量高度加上深度\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}
不,谢谢。