![tikz 盒子定位](https://linux22.com/image/448780/tikz%20%E7%9B%92%E5%AD%90%E5%AE%9A%E4%BD%8D.png)
你好,我是 Latex 的新手,我想在文档的左侧放置一个灰色框,以使用该框作为侧边栏。
以下是我尝试过的:
\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\definecolor{sidecolor}{HTML}{E7E7E7}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node [rectangle, fill=sidecolor, anchor=north, minimum width=9cm, minimum height=\paperheight+1cm] (box) at (-5cm,0.5cm){};
\end{tikzpicture}
\end{document}
所以问题是,如何创建一个覆盖页面整个左侧 5 厘米的框?
答案1
使用该tikzpagenodes
包:
\documentclass{article}
\usepackage{xcolor}
\definecolor{sidecolor}{HTML}{E7E7E7}
\usepackage{tikzpagenodes}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node [fill=sidecolor, minimum width=9cm, minimum height=\textheight,
above right] (box) at (current page text area.south west) {};
\end{tikzpicture}
\end{document}
(红线表示页面布局)
编辑: 不幸的是你的问题不太清楚。你喜欢那个灰色的框吗?
- 文本左边框与上述 MWE(最小工作示例)相同,或
- 在页面左边框处产生以下 MWE:
\documentclass{article}
\usepackage{tikz}
\definecolor{sidecolor}{HTML}{E7E7E7}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node [fill=sidecolor, minimum width=3cm, minimum height=\paperheight,
above right] at (current page.south west) {};
\end{tikzpicture}
\end{document}
笔记:tikzpicture
对于最终(显示)形式的编译结果,由于选项 原因,两个 MWE 都必须编译remember picture,overlay
至少两次。
答案2
您可能需要考虑的一个选项是更改文档类。如果您使用 \documentclass{standalone}[tikz] 而不是 \documentclass{article},则 Latex 编译的页面尺寸将受限于您向其添加的功能。因此,只要没有任何内容与侧页框左侧相邻,则页面的左侧将由此框占据,并且灰色侧框永远不会移出视图。
稍微调整一下代码:
\documentclass{standalone}[tikz]
\usepackage{tikz}
\usepackage{xcolor}
\definecolor{sidecolor}{HTML}{E7E7E7}
\begin{document}
\begin{tikzpicture}
\tikzstyle{box}=[rectangle, fill=sidecolor, anchor=north, minimum width=5cm, minimum height=\paperheight+1cm]]
\node at (-5cm,5cm) [box]{};
\filldraw (0,1) circle (1);
\end{tikzpicture}
\end{document}
我只是添加了黑色圆圈来稍微扩大视图(否则整个输出将是侧面的灰色框)。