我尝试使用 TikZ 从文本区域的左上角绘制一条线,但水平和垂直方向都出现了间隙。我指定了\noindent
,但仍然有间隙。
\documentclass[a4paper]{article}
\usepackage{geometry}
%---------------------------------------------------------------%
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{tikz}
\setlength{\parindent}{0pt}
\begin{document}
\begin{tikzpicture}
\node at (0,0) {+};
\draw (0,0)--(\textwidth,0);
\end{tikzpicture}
\end{document}
编辑:需要注意的是,正是由于上述原因,\node at (0,0) {+};
起始\draw (0,0)--(\textwidth,0);
位置偏离了文本区域的左上角。
我想知道有没有办法定义一个从左上角到右下角的画布(10, -10)
,并拥有强大的坐标系统。这样可以避免使用“覆盖”和“记住图片”。
在我的原始文档中,tikzpicture
以一个固定在北边和 的矩形开始(.5\textwidth,0)
,还有其他的图画,并textboxes
相对于它放置。问题是整体tikzpicture
比 略窄\textwidth
,因此水平方向上一切都略微偏离中心。TikZ
将整体tikzpicture
像图像一样处理,并将其放置在文本区域的左上角或前一个对象文本的旁边...
答案1
每个节点都有一定的大小和一定的外部间隔。在下面的例子中,你可以看到你的节点的位置很好,但+
并不是你想要的位置。
另外,您可以使用页面节点(带有tikzpagenodes
包)进行绘制,而不必担心手动定位节点。
\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage{tikzpagenodes}
%---------------------------------------------------------------%
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{tikz}
\setlength{\parindent}{0pt}
\begin{document}
\begin{tikzpicture}
\node[draw, outer sep=0pt] at (0,0) {+};
\draw (0,0)--(\textwidth,0);
\end{tikzpicture}
\begin{tikzpicture}[overlay, remember picture]
\draw[blue, line width=2pt] (current page text area.north west)--(current page text area.north east);
\end{tikzpicture}
\end{document}