Impedir o acúmulo de espaços em branco usando "\left."

Impedir o acúmulo de espaços em branco usando "\left."

Desculpe se isso já foi perguntado antes, mas pesquisar no Google parece não funcionar bem com "\ left". ou variações.

Estou usando o seguinte padrão retirado de uma fórmula na seção de produtos cartesianos da Wikipedia sobre produtos infinitos, onde as barras verticais correspondem à altura do colchete, ao contrário\mid

\prod_{i \in I} X_i = \left\{\left. f : I \to \bigcup_{i \in I} X_i\ \right|\ (\forall i)(f(i) \in X_i)\right\}

Renderizado como:

insira a descrição da imagem aqui

Mas parece haver um pequeno espaço em branco antes da primeira palavra que se acumula com o uso repetido.

\begin{align*}
& \left(a\right) \\
& \left(\left.a \ \right|\ b\right) \\
& \left(\left.\left.a\ \right|\ b\ \right|\ c\right) \\
& \left(\left.\left.\left.a\ \right|\ b\ \right|\ c\ \right|\ d\right)
\end{align*}

É renderizado como:

insira a descrição da imagem aqui

Existe alguma maneira de obter barras verticais de altura correta sem o acúmulo de espaços em branco após o colchete esquerdo?

Responder1

Cada \left.ou \right.adiciona espaço na quantidade de \nulldelimiterspace, então você pode removê-lo

\kern-\nulldelimiterspace

Por outro lado, existem maneiras melhores de digitar a fórmula. Eu iria com o último.

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\noindent
First attempt (yours):
\[
\left\{ \left.f\colon I \to \bigcup_{i \in I} X_i\ \right|\ (\forall i)(f(i) \in X_i)\right\}
\]
Second attempt:
\[
\left\{ f\colon I \to \bigcup_{i \in I} X_i \;\middle|\; (\forall i)(f(i) \in X_i)\right\}
\]
Third attempt:
\[
\biggl\{ f\colon I \to \bigcup_{i \in I} X_i \biggm| (\forall i)(f(i) \in X_i)\biggr\}
\]
Fourth attempt:
\[
\Bigl\{ f\colon I \to \bigcup_{i \in I} X_i \Bigm| (\forall i)(f(i) \in X_i)\Bigr\}
\]

\end{document}

insira a descrição da imagem aqui

informação relacionada