假设我要定义一组满足两个条件的元素,如:
$\{ f(x,y) \mid 2<x<5, 7<y<10 \}$
从语义上讲,我使用逗号字符来分隔定义的两个子句2<x<5
和7<y<10
。但是 TeX 在数学模式下将逗号视为常规数学符号,其周围没有额外的空格,并且不允许在其后换行。相比之下,关系符号<
似乎被稍微多一点的空间包围,并且 TeX 允许在其后换行。因此,如果此集合定义中需要换行(在内联数学模式下),TeX 将允许在其后换行,<
但不允许在,
--- 后换行,这与内容的预期解析相反。
可以通过添加\allowbreak
(或其他解决方案) 并手动强制使用数学模式空间。但本着 TeX 将内容与布局分离的目标,我感觉我遗漏了一些东西。似乎逗号符号不是用于此目的的正确字符。
逗号的替代符号可能是 & 号,例如:
$\{ f(x,y) \mid 2<x<5 \& 7<y<10 \}$
但是&
就像一样,
,是一个普通的数学字符,所以这并不能解决任何问题。
在集合定义中分隔子句的语义正确方法是什么?
答案1
这个答案的目的是,首先,建议使用“和”这个词,因为它使得在视觉上更容易分离这两个条件;其次,提倡使用一些简单的集合命令,以确保右括号永远不会丢失,并且在一个地方定义是否使用或任何其他分隔符\mid
。\colon
\documentclass{article}
\usepackage{amsmath}
\newcommand\set[1]{\{#1\}}
\newcommand\Set[2]{\set{#1\mid#2}}
\newcommand\SET[2]{\Set{#1}{\text{#2}}}
\begin{document}
$\set{1,2,3}$
$\Set{f(x,y)}{(2<x<5) \land (7<y<10)}$
$\SET{f(x,y)}{$2<x<5$ and $7<y<10$}$
$\SET{f(x,y)}{$2<x<5$, $7<y<10$}$
\end{document}