Notation for “big fiber product”?

If X, Y are sets equipped with maps X \to Z, Y \to Z, then the usual notation for the fiber product of X and Y over Z is X \times_Z Y. I have a whole bunch of sets X_\alpha equipped with maps X_\alpha \to Z. Does anyone have a suggestion for how to denote (in TeX) the fiber product of all these sets over Z? I would like to use \prod, but the subscript that indicates the indices over which we're taking the product and the subscript that indicates that we're taking a fiber product over Z are getting in each other's way.

Here was my super-ugly attempt using \prod:

Currently my solution is what Sigur suggests in the comments.

• Could you show a mock-up of what you actually want? Drawing it out on paper is fine. – Troy Apr 14 '17 at 15:39
• No, I don't have a good idea of how to denote this. So there's really two parts to this question -- a) how to denote this and b) how to convert the answer to a) into TeX. I know that this forum is supposed to be just about TeX, and a) is about math notation generally, but still I thought that this forum would be more appropriate than the math stackexchange. – Nathaniel Bottman Apr 14 '17 at 15:49
• You mentioned you want to use \prod. Can you at least show us what that looks like? Not everyone here is a mathematician by trade, and so describing it purely in words isn't very helpful. Part (a) of your question is borderline off-topic, I would argue. – Troy Apr 14 '17 at 15:51
• Nice math notation question. I have never seen such one. Maybe $\bigotimes\limits_{\alpha\in A}^Z X_\alpha$. – Sigur Apr 14 '17 at 15:54
• @Troy I added a picture of \prod to the question. – Nathaniel Bottman Apr 14 '17 at 16:51

To me \prod is the more natural symbol compared to \bigotimes. This is analogous to the Cartesian product of sets (\times for the binary operator and \prod for the indexed version). The indexing should take place below the operator and the subscript Z should remain on the right. I don't think there's a nice way to do this inline.

\documentclass{article}
\usepackage{amsmath}

\DeclareMathOperator*{\fprod}{\sideset{}{_Z}\prod}

\begin{document}
$\fprod_{\alpha\in A}X_{\alpha}$
\end{document}


Note the choice to center the index not under the \prod, but under the \prod together with the subscript. This is because the subscript is really part of the operator. If you prefer to have the index just centered under the \prod you could use the simpler code \sideset{}{_Z}\prod_{\alpha\in A}X_{\alpha}, without the \DeclareMathOperator* command.

Lastly, if you plan to change the Z, it would be nice to have \fprod take Z as an argument. Unfortunately, \DeclareMathOperator does not take arguments. One workaround would be to use

\newcommand{\fprod}[1]{\mathop{\sideset{}{_{#1}}\prod}}


and then

\fprod{Z}_{\alpha\in A}X_{\alpha}


produces the desired output. I suspect though, that experts will warn against using \mathop.