以非常广泛的情节为中心

以非常广泛的情节为中心

我想在以下代码中将图居中。如何在不改变包含文本部分的页面尺寸的情况下做到这一点?

我必须保持绘图的尺寸不变,而不缩放绘图。

\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}}

相关内容