我想在当前行的左边距位置放置一张 tikz 图片。以下是 MWE:
\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\newcommand{\status}[1]{\tikz[overlay]{\node [left=3cm] {\bf#1};}}
in (here)\status{??} the beginning of the line\\
towards the middle of end of line (here)\status{?!}
\end{document}
正如预期的那样,
我知道有at (current page.west)
可用的,但这似乎不起作用(而且不是我想要的),而且我在文档/其他地方找不到正确的修复方法。另外,我知道有一个todos
包具有类似的功能,但我真的只需要这个简单的部分。
谢谢!
答案1
这是tikzpagenodes
提供锚点的包current page text area
:
\documentclass{amsart}
\usepackage{tikzpagenodes}
\usepackage{showframe}
\usetikzlibrary{tikzmark}
\newcounter{tmp}
\newcommand\status[1]{%
\stepcounter{tmp}%
\tikzmark{start-\thetmp}%
\tikz[remember picture,overlay,baseline=(sta.base)]
{\node[anchor=east] at (current page text area.west|-{pic cs:start-\thetmp})
(sta) {\textbf{#1}};}%
}
\begin{document}
test\status{ready!}
test\status{to do!}
\end{document}
无需tikzpagenodes
锚定在 x 坐标处current page west
,然后移动一定量\oddsidemargin+\hoffset+1in
:
\documentclass{amsart}
\usepackage{showframe}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}
\newcounter{tmp}
\newcommand\status[1]{%
\stepcounter{tmp}%
\tikzmark{start-\thetmp}%
\tikz[remember picture,overlay,baseline=(sta.base)]
{\node[anchor=east] at
( $ (current page.west|-{pic cs:start-\thetmp}) + (\oddsidemargin+\hoffset+1in,0) $ )
(sta) {\textbf{#1}};}%
}
\begin{document}
test\status{ready!}
test\status{to do!}
\end{document}