5

I've been trying to enclose a wedge with a substack of conditions in square brackets.

My original code was:

\left[\bigwedge_{\substack{j=1\\\text{where }i(j)=1}}^n e_j\right]

which produced:

before

This includes a lot of redundant space and looks quite unpleasant. I was trying to create something like this:

after

To produce this, I wrote:

\DeclareMathOperator{\fakewedge}{\textbf{\Large/\hspace{-0.085cm}\textbackslash}}

\left[\hspace{0.05cm}\substack{\\n\\\\\vspace{-0.325cm}\\\fakewedge\\\mbox{}\\j=1\\
\text{where }i(j)=1\vspace{0.08cm}}\hspace{-0.425cm}\let\scriptstyle\textstyle
\substack{e_j\\\vspace{0.175cm}}\hspace{0.15cm}\right]

which I'm fairly sure includes almost every bad practice there is.

Is there any way to achieve something close to my intention without writing such a mess?

I have read answers to this question for example, but I wanted to include my conditions in the brackets as well. I attempted to define my own versions of say \bigl and \bigr with the size I wanted, but that didn't seem to work.

I eventually managed to make brackets of arbitrary sizes using \left[\vbox spread <HEIGHT>cm{}\right. and \left]\vbox spread <HEIGHT>cm{}\right., but the wedge still needed moving vertically (which was why I resorted to \substack), and this was already bad practice to begin with.

Any suggestions would be much appreciated.


Update: Thanks to Bernard for his comment. I've used the bmatrix environment now to solve the bracketing issue, and have tried to use smashoperator to place the $e_j$ next to the wedge.

\begin{bmatrix}
    \smashoperator{{\displaystyle\bigwedge}_{\substack{j=1\\\text{where }i(j)=1}}}^n e_j
\end{bmatrix}

However this has resulted in the following:

Update

Is there a way to make the matrix ignore the smashoperator? If this should be asked as a new question then please just let me know.

2
  • 1
    Try with the bmatrix environment.
    – Bernard
    Oct 31, 2020 at 17:18
  • 1
    Use \Bigl[ and \Bigr] instead of \left[ and \right]. This won't include the conditions, but it's not necessary to.
    – egreg
    Oct 31, 2020 at 17:24

4 Answers 4

5

Don't use \left and \right to size the square brackets; instead, use either \Bigl/\Bigr (as already suggested by @egreg) or \biggl/\biggr.

enter image description here

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\Bigl[
\bigwedge_{\substack{j=1\\ \mathclap{\text{where $i(j)=1$}}}} ^n \! e_j
\Bigr]
\qquad\qquad
\biggl[\,
\bigwedge_{\substack{j=1\\ \mathclap{\text{where $i(j)=1$}}}} ^n \! e_j
\biggr]
\]
\end{document}  
5

How about this?

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\[ \underset{\text{where $i(j)=1$}}{\begin{bmatrix}\:
\bigwedge\limits_{j=1}^n \! e_j
\end{bmatrix}} \]

\end{document} 

enter image description here

4

Use \smashoperator[r] and add extra space to ensure the proper placement of \right]:

enter image description here

\documentclass{article}

\usepackage{mathtools}

\begin{document}

\[
  \left[
    \bigwedge_{\substack{j = 1 \\ \text{where } i(j) = 1}}^n e_j
  \right]
\]

\[
  \left[
    \smashoperator[r]{\bigwedge_{\substack{j = 1 \\ \text{where } i(j) = 1}}^n} e_j \hspace{0.7em}
  \right]
\]

\end{document}
2

Many thanks for everyone's suggestions.

In the end I've decided to use this, since it matches most closely what I had in mind:

\begin{bmatrix}
    \substack{\displaystyle\hphantom{e_j}\bigwedge^n e_j\\j=1\\\text{where }i(j)=1}
\end{bmatrix}

which produces:

Final

It still isn't the prettiest code, but it's a lot better than it was!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .