我想在以下代码中将图居中。如何在不改变包含文本部分的页面尺寸的情况下做到这一点?
我必须保持绘图的尺寸不变,而不缩放绘图。
\documentclass[a4,12pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{tikz}
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{center}
\definecolor{cqcqcq}{rgb}{0.75,0.75,0.75}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=2.0cm,y=2.0cm]
\draw [color=cqcqcq,dash pattern=on 4pt off 4pt, xstep=2.0cm,ystep=2.0cm] (-3.39,-4.23) grid (5.49,4.35);
\draw[->,color=black] (-3.39,0) -- (5.49,0);
\foreach \x in {-3,-2,-1,1,2,3,4,5}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
\draw[->,color=black] (0,-4.23) -- (0,4.35);
\foreach \y in {-4,-3,-2,-1,1,2,3,4}
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};
\clip(-3.39,-4.23) rectangle (5.49,4.35);
\end{tikzpicture}
\end{center}
\end{document}
答案1
虽然您可以使用提供 的软件包之一adjustwidth
,但我通常的做法是使用\hspace*{<dim>}
和 来“目测”校正。这样,您就可以从视觉上校正页面的外观。您也可以根据需要计算它,但我通常在打印时发现,完全居中的图像比 更宽,\textwidth
需要进行一些视觉校正。
\documentclass[a4,12pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{tikz}
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\hspace*{-2.7cm}
\definecolor{cqcqcq}{rgb}{0.75,0.75,0.75}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=2.0cm,y=2.0cm]
\draw [color=cqcqcq,dash pattern=on 4pt off 4pt, xstep=2.0cm,ystep=2.0cm] (-3.39,-4.23) grid (5.49,4.35);
\draw[->,color=black] (-3.39,0) -- (5.49,0);
\foreach \x in {-3,-2,-1,1,2,3,4,5}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
\draw[->,color=black] (0,-4.23) -- (0,4.35);
\foreach \y in {-4,-3,-2,-1,1,2,3,4}
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};
\clip(-3.39,-4.23) rectangle (5.49,4.35);
\end{tikzpicture}
\lipsum[1]
\end{document}
答案2
您可以使用包adjustwidth
中的环境临时更改页面某个部分的大小changepage
\begin{adjustwidth}{2cm}{}
....
\end{adjustwidth}
另一方面,您可能想看一下pgfplots
包,它可以更简单地完成您的示例所做的所有工作 - 我已经在下面翻译了您的代码
\documentclass{article}
\usepackage{pgfplots}
% grid style
\pgfplotsset{grid style={dashed,gray}}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
xmin=-3,xmax=4,ymin=-4,ymax=4,
axis x line=middle,
axis y line=middle,
width=\textwidth,
grid=major
]
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
如果你计划有很多这种类型的图,那么几乎肯定会设置一个全局样式,例如
\pgfplotsset{every axis/.append style={
axis x line=middle,
axis y line=middle,
axis line style={<->},
line width=1pt}}