
Я всегда думаю, что автономный режим центрирует мою картинку, но пример ниже - нет:
\documentclass[border=1mm]{standalone}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{calc}
\usepackage{ifthen}
\usetikzlibrary{backgrounds}
\begin{document}
%jpg from http://www.murderousmaths.co.uk/magic/predictor%20cards%20template%20120.jpg
\def\infilename{/Users/e12714/Downloads/a.jpg}
\newsavebox{\graph}\savebox{\graph}{\includegraphics{\infilename}}
\newlength\gh\setlength\gh{\heightof{\usebox\graph}}
\newlength\gw\setlength\gw{\widthof{\usebox\graph}}
\newcounter{DEBUG}
\setcounter{DEBUG}{1}
\setcounter{DEBUG}{0}
\def\BL{0.16\gw,0.106\gh} % bottom left corner
\def\TR{0.92\gw,0.86\gh} % top right corner
\begin{tikzpicture}[framed,>=latex,
image/.style={anchor=south west,inner sep=0,outer sep=0}]
\ifthenelse{\theDEBUG = 1}{
% do nothing for debug purpose
}{
\clip (\BL) rectangle (\TR);
}
\node[image] (NI) {\usebox\graph};
\ifthenelse{\theDEBUG = 1}{
\draw[red,line width=2pt] (\BL) rectangle (\TR);
\begin{scope}[x={(NI.south east)},y={(NI.north west)}]
\draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1.001,1.001);
\foreach \x in {1,...,9} { \node [anchor=north] at (\x/10,0) {\x};}
\foreach \y in {1,...,9} { \node [anchor=east] at (0,\y/10) {\y};}
\end{scope}
}{}
\end{tikzpicture}
\end{document}
Почему слева от вырезанного изображения все еще остается белая полоса?
решение1
Это происходит из-за того, что перед самим изображением имеются абзацы и другие пробелы.
Если переместить \begin{document}
to прямо перед \begin{tikzpicture}
, проблема исчезнет, поскольку в преамбуле пробелы игнорируются.
\documentclass[border=1mm]{standalone}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{calc}
\usepackage{ifthen}
\usetikzlibrary{backgrounds}
%jpg from http://www.murderousmaths.co.uk/magic/predictor%20cards%20template%20120.jpg
\def\infilename{example-image}
\newsavebox{\graph}\savebox{\graph}{\includegraphics{\infilename}}
\newlength\gh\setlength\gh{\heightof{\usebox\graph}}
\newlength\gw\setlength\gw{\widthof{\usebox\graph}}
\newcounter{DEBUG}
\setcounter{DEBUG}{1}
\setcounter{DEBUG}{0}
\def\BL{0.16\gw,0.106\gh} % bottom left corner
\def\TR{0.92\gw,0.86\gh} % top right corner
\begin{document}
\begin{tikzpicture}[framed,>=latex,
image/.style={anchor=south west,inner sep=0,outer sep=0}]
\ifthenelse{\theDEBUG = 1}{
% do nothing for debug purpose
}{
\clip (\BL) rectangle (\TR);
}
\node[image] (NI) {\usebox\graph};
\ifthenelse{\theDEBUG = 1}{
\draw[red,line width=2pt] (\BL) rectangle (\TR);
\begin{scope}[x={(NI.south east)},y={(NI.north west)}]
\draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1.001,1.001);
\foreach \x in {1,...,9} { \node [anchor=north] at (\x/10,0) {\x};}
\foreach \y in {1,...,9} { \node [anchor=east] at (0,\y/10) {\y};}
\end{scope}
}{}
\end{tikzpicture}
\end{document}
В качестве альтернативы можно разместить %
знаки в пустых строках и в концах строк, которые вызывают проблемы, но в данном случае это не обязательно.