我来自我的这个答案:
https://tex.stackexchange.com/a/394628/120578
代码如下:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
%opening
\title{}
\author{}
\def\tikzmark#1{\begin{tikzpicture}[remember picture]\node(#1){};\end{tikzpicture}}
\makeatletter
\renewcommand\vec[1]{\ifdefined\xsh\relax\else\pgfmathsetmacro\xs{\f@size/3}\def\xsh{\xs pt}\fi\ifdefined\ysh\relax\else\pgfmathsetmacro\ys{\f@size/1.3}\xdef\ysh{\ys pt}\fi\tikzmark{VecStart}#1\tikzmark{VecStop}\begin{tikzpicture}[remember picture,overlay]\draw[->,>=stealth]($(VecStart)+(\xsh,\ysh)$)--($(VecStop)+(-\xsh,\ysh)$);\end{tikzpicture}\let\xsh=\undefined\let\ysh=\undefined}
\makeatother
\begin{document}
$\vec{AB}$
\xdef\xsh{5pt}
\xdef\ysh{14pt}
$$\displaystyle\int\vec{\displaystyle\frac{AB}{3}}dx$$
\end{document}
正如您在图片中看到的:
tikzmark 前后有空白。
这些空间是从哪里来的?如果我将 tikzmark 更改为:
\def\tikzmark#1{\tikz[remember picture]\node(#1){};}
我得到了完全相同的结果。
接受答案后将提供 50 的界限(我想要对空格进行解释以及如何避免...我并不关心相同结果的其他方法。只是想了解这些空间来自哪里)。
答案1
通过使用\coordinate
而不是,\node
您不会占用任何空间。我还检查了\hbox{}
由 tikz 创建的是否有任何效果,但无法用肉眼判断。
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
%opening
\title{}
\author{}
\def\tikzmark#1{\begin{tikzpicture}[remember picture]\coordinate(#1);\end{tikzpicture}}
\makeatletter
\renewcommand\vec[1]{\ifdefined\xsh\relax
\else
\pgfmathsetmacro\xs{\f@size/3}%
\def\xsh{\xs pt}%
\fi
\ifdefined\ysh\relax
\else
\pgfmathsetmacro\ys{\f@size/1.3}%
\xdef\ysh{\ys pt}%
\fi
\tikzmark{VecStart}#1\tikzmark{VecStop}%
\begin{tikzpicture}[remember picture,overlay]
\draw[->,>=stealth]($(VecStart)+(\xsh,\ysh)$)--($(VecStop)+(-\xsh,\ysh)$);
\end{tikzpicture}%
\let\xsh=\undefined
\let\ysh=\undefined}
\makeatother
\begin{document}
$\vec{AB}$
\xdef\xsh{0pt}%
\xdef\ysh{14pt}%
$$\displaystyle\int\vec{\displaystyle\frac{AB}{3}}dx$$
$$\displaystyle\int\null\frac{AB}{3}\null dx$$
$$\displaystyle\int\frac{AB}{3} dx$$
\end{document}