我正在使用这个问题的答案:在多页边距中绘制 tikz 线在我的文档的边缘画一条彩色线。
我希望可以注释掉环境定义并获取没有彩色线条的相同文档。但是当我用空环境定义替换轮廓环境定义时,文档的对齐方式不同。
梅威瑟:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newenvironment{outline}{\ignorespaces}{\ignorespaces}
\newcounter{markid}
% Comment this out to disable the marking of text:
\renewenvironment{outline}{\tikzmark{begin\themarkid}}{\ignorespaces\tikzmark{begin\themarkid}}
\begin{document}
\section{Section}
\begin{outline}
\begin{figure}[h!]
\caption{caption}
\end{figure}
Paragraph1
\end{outline}
\end{document}
当取消注释时,上面的例子会有额外的空白空间\renewenvironment
。
到目前为止,我想到的唯一解决方案是注意环境的开始/结束标记与段落位于一个块中。(因此,在我看来, \tikzmark 命令使 LaTeX 创建一个额外的空段落。)
还有其他解决方案可以确保\tikzmark
命令不会改变文档的轮廓吗?
答案1
tikzmark 可以引入空白,因为 tikz 图片是在水平框中排版的,所以即使该框没有大小,它也可以随着 TeX 从垂直模式切换到水平模式(在您的情况下)切换回垂直模式而改变垂直间距。
为了避免这种情况,有一个命令\pgfmark
可以完成相同的操作\tikzmark
,但没有方框。据我所知,它可以消除文档中的额外空间。