删除 tikzcd 中的外部填充

删除 tikzcd 中的外部填充

这是我想使用 tikz-cd 获得的结果

A = \ker \left(B \xrightarrow{F} C\right)

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\[
  A = \ker \left(
  \begin{tikzcd}
    A \rar["F"] & B
  \end{tikzcd}
  \right)
\]
\end{document}

给我太多空间。

是否有选项可以删除多余的填充?

答案1

使用cramped, sep=small选项tikzcd可以获得所需的间距

在此处输入图片描述

代码:

\documentclass[12pt]{article}
\usepackage{tikz-cd}
\usepackage{amsmath}

\begin{document}
\[
    A = \ker \left(B \xrightarrow{F} C\right)
\]
\[
    A = \ker \left(
    \begin{tikzcd}[cramped, sep=small] 
      A \rar["F"] & B
    \end{tikzcd}
    \right)
\]
\end{document}

答案2

如果您认为\xrightarrow产生的箭头太短,您可以修补它以使用最小宽度(此处2.5em)。

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\ext@arrow}
  {\hbox to\wd\tw@}
  {\hbox to\maybe@wd\tw@}
  {}{\ddt}
\newcommand{\maybe@wd}[1]{%
  \ifdim\wd#1<\minimum@arrow
    \minimum@arrow
  \else
    \wd#1%
  \fi
}
\newcommand{\minimum@arrow}{2.5em}
\makeatother

\begin{document}

\[
  A = \ker \left(A \xrightarrow{F} B \right)
  \qquad
  A = \ker \bigl(A \xrightarrow{F} B \bigr)
\]



\[
  A = \ker \left(
  \hspace{-\arraycolsep}
  \begin{tikzcd}
    A \arrow[r,"F"] & B
  \end{tikzcd}
  \hspace{-\arraycolsep}
  \right)
\]

\end{document}

我还添加了一个技巧来删除填充,tikzcd并尝试\bigl(获得\bigr)更好的输出。

在此处输入图片描述

另一方面,一个简单的\ker(A\xrightarrow{F}B)(没有修补)对我来说似乎就足够了:

\[
  A = \ker \bigl(A \xrightarrow{F} B \bigr)
\]

生产

在此处输入图片描述

相关内容