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!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.