我有一个页面,其中已经具有非常精确的布局,其中包含许多框:文本、图形(PNG)等。
在不改变当前布局且不改变任何可能影响下一页的内容的情况下,我想添加一个具有精确位置的文本框,内容如下:
\positiontextbox{3cm}{10cm}{Hello} % 3 cm from left border of paper
% 10 cm from top border of paper
这将是 HTML/CSS 的 LaTeX 等效版本#mytextbox { position: fixed; left: 20px; top: 100px; }
。
如何在 LaTeX 中做到这一点?
答案1
随着 Ti钾Z节点current page.north west
,可以将一些内容精确地放置在相对于页面左上角的指定位置上。
\documentclass{article}
\usepackage[a4paper,lmargin=3cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{showframe}
\newcommand{\positiontextbox}[4][]{%
\begin{tikzpicture}[remember picture,overlay]
% \draw[step=0.5,gray!80!white] (current page.north west) grid (current page.south east); % For controlling
\node[inner sep=10pt,right, fill=yellow,draw,line width=1pt,#1] at ($(current page.north west) + (#2,-#3)$) {#4};
\end{tikzpicture}%
}
\usepackage{blindtext}
\begin{document}
\blindtext[2]
\positiontextbox{3cm}{10cm}{Hello}
\positiontextbox[fill=green]{14cm}{5cm}{Hello World}
\end{document}
具有请求的圆圈的版本(换行来自一个非常有用的提示Torbjørn T.)
\documentclass{article}
\usepackage[a4paper,lmargin=3cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{showframe}
\newcommand{\positiontextbox}[4][]{%
\begin{tikzpicture}[remember picture,overlay]
% \draw[step=0.5,gray!80!white] (current page.north west) grid (current page.south east); % For controlling
\node[align=left,circle,inner sep=5pt,right, fill=white,draw,#1] at ($(current page.north west) + (#2,-#3)$) {#4};
\end{tikzpicture}%
}
\usepackage{blindtext}
\begin{document}
\blindtext[2]
\positiontextbox{3cm}{10cm}{Hello}
\positiontextbox[fill=green]{14cm}{5cm}{Hello\\ World}
\end{document}