Я хотел бы сделать все стрелки, которые должны быть параллельны в моей коммутативной диаграмме, на самом деле параллельными. Вот моя диаграмма:
\begin{center}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=3em,column sep=4em,minimum width=3em]
{
F(\mu F) & FA \\
\mu F & A \\};
\path[-stealth]
(m-1-1) edge node [left] {$ in_{F} $} (m-2-1)
edge node [above] {$F(h)$} (m-1-2)
(m-2-1.east) edge node [above] {$h$}
node [above] {} (m-2-2)
(m-1-2) edge node [right] {$ g $} (m-2-2)
;
\end{tikzpicture}
\end{center}
Как мне это сместить и получить правильный квадрат?
решение1
Вместо матрицы используйте специализированное расширение TikZ, а именно tikz-cd
:
\documentclass[a4paper,12pt]{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
F(\mu F) \arrow[r, "F(h)"] \arrow[d, "\mathit{in}_{F}"'] & FA \arrow[d, "g"] \\
\mu F \arrow[r, "h"] & A
\end{tikzcd}
\end{document}
Синтаксис более естественный, метки имеют правильный размер, а стрелки такие же, как в общем математическом шрифте.
решение2
\documentclass[border=3mm]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[row sep=huge] % <---
F(\mu F)
\arrow{r}{F(h)}
\arrow{d}{in_F}
&
FA
\arrow{d}{g} \\
%
A
\arrow{r}{h}
&
(\mu F)
\end{tikzcd}
\end{document}
О, ответ почти такой же, как и усебастьяно:-(. ну диаграмма немного более квадратная :-)
решение3
На самом деле, есть довольно небольшое изменение, которое исправит вещи, которые могут вас заинтересовать, поскольку оно также полезно в других частях LaTeX. Проблема здесь в том, что \mu
у есть подстрочный элемент, а FA
у нет. Вы можете получить блок, у которого есть «все высоты», связанные с высокими буквами и подстрочными элементами, но нет ширины через \strut
, поэтому:
F(\mu F) & FA\strut \\
\mu F & A\strut
Остальная часть документа может остаться точно такой же. Если вы чувствуете себя параноиком, вы можете добавить \strut
s к другим ячейкам, а также обеспечить будущее на случай, если вы измените их содержимое позже.
В более общем смысле, вы можете использовать \vphantom
для ящиков без ширины с такими же параметрами высоты и глубины, как у другого данного ящика, и \hphantom
для ящиков без высоты с такой же шириной, как у другого данного ящика. Так что по-настоящему параноидальная версия будет
F(\mu F)\vphantom{FA} & FA\vphantom{F(\mu F)} \\
\mu F\vphantom{A} & A\vphantom{\mu F}
что гарантировало бы одинаковую высоту и глубину во всех столбцах в каждой строке. (Это также имело бы то преимущество, \strut
что это «минимально» в отношении высоты и глубины; например, если бы в данной строке ничего не имело подстрочных элементов, добавление \strut
везде придало бы ему глубину, а использование \vphantom
, как указано выше, — нет.)