# Typesetting Multiple Set Constraints

I don't know what to search, so I'm adding a picture of what I want to do. Basically, I want to write multiple set constraints on the right hand side (see below). How do I accomplish this in latex?

• See the documentation of mathtools, §3.6 Paired delimiters. – Bernard Jul 17 '19 at 16:42

Something of this type?

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\begin{document}
$U=\left\{ (u,v) \;\middle\vert\; \begin{array}{@{}l@{}} u, v\colon \mathbb{R}^d\to[0,\infty) \\ \text{bla bla bla}\\ u+v<7 \end{array} \right\}$
\end{document}

• +1. I've taken the liberty of streamlining your code slightly, e.g., by using \;\middle\vert\;. Feel free to revert. – Mico Jul 17 '19 at 17:32
• @Mico You are ALWAYS welcome into my heart. Very best user can take the liberty to edit my code. Grazieeeeeeeeeeeeeeeeeeeeeeeeeeeee. – Sebastiano Jul 17 '19 at 18:43
• can you explain the {@{}l@{}} symbols? – yoshi Jul 17 '19 at 21:42
• @yoshi the concept is not simple. It only serves to correctly align the array to have the three relationships aligned to the left: see for example this link tex.stackexchange.com/questions/207457/…. See also the another answer of great user Bernard. – Sebastiano Jul 17 '19 at 21:47

Another solution, base on \DeclarePairedDelimiterX from mathtools andxparse for a natural syntax (I mean, close to what one writes by hand):

\documentclass{article}

\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{xparse}

\DeclarePairedDelimiterX{\Set}[1]\{\}{\setargs{#1}}
\NewDocumentCommand{\setargs}{>{\SplitArgument{1}{|}}m}
{\setargsaux#1}
\NewDocumentCommand{\setargsaux}{mm}
{\IfNoValueTF{#2}{#1}{\nonscript\,#1\nonscript\;\delimsize\vert\allowbreak \nonscript\:\mathopen{}#2\nonscript\,}}

\begin{document}

$\Set*{(u, v) | \begin{array}{@{}l@{}} u, v: \mathbb{R}^d ―――→ [0,∞)\\[-0.5ex] \text{upper semi-continuous} \\[-0.5ex] u + v < 7 \end{array}}$%

\end{document}
`