\documentclass[a4paper]{article} \usepackage{tikz} \begin{document} \tikz \draw(0,0) grid (\linewidth,3); \end{document}
Grid automatisch anpassen
Grid automatisch anpassen
Hallo ich habe ein Problem mit folgendem Code:
Und zwar wäre es schön, wenn das Grid rechts nur bis zum letzten vollen Kästchen geht. Es ist ja derzeit etwas länger. Leider kommt es sehr oft bei mir vor, sodass jedes mal die Breite manuell anzupassen echt nervt. Gibt es da eine Möglichkeit, dass zu automatisieren? Also quasi so, dass er das größtmögliche, vollständige Grid einzeichnet?
Re: Grid automatisch anpassen
Wie wäre es denn damit:
\documentclass[a4paper]{article} \usepackage{tikz} \usepackage{fp} \usepackage{lengthconvert} \begin{document} \raggedright \makeatletter \FPeval\myLineWidth{round(0.035146*\strip@pt\dimexpr\linewidth\relax-0.5,0)} \makeatother \textbackslash{}linewidth = \Convert{\linewidth}\\[2ex] \tikz\draw(0,0) grid (\linewidth,3);\\[.5ex] \tikz\draw(0,0) grid (\myLineWidth,3);\\[2ex] \setlength{\linewidth}{3.7cm} \makeatletter \FPeval\myLineWidth{round(0.035146*\strip@pt\dimexpr\linewidth\relax-0.5,0)} \makeatother \textbackslash{}linewidth = \Convert{\linewidth}\\[2ex] \tikz\draw(0,0) grid (\linewidth,3);\\[.5ex] \tikz\draw(0,0) grid (\myLineWidth,3);\\[2ex] \newpage \setlength{\linewidth}{3.00001cm} \makeatletter \FPeval\myLineWidth{round(0.035146*\strip@pt\dimexpr\linewidth\relax-0.5,0)} \makeatother \textbackslash{}linewidth = \Convert{\linewidth}\\[2ex] \tikz\draw(0,0) grid (\linewidth,3);\\[.5ex] \tikz\draw(0,0) grid (\myLineWidth,3);\\[2ex] \setlength{\linewidth}{2.99999cm} \makeatletter \FPeval\myLineWidth{round(0.035146*\strip@pt\dimexpr\linewidth\relax-0.5,0)} \makeatother \textbackslash{}linewidth = \Convert{\linewidth}\\[2ex] \tikz\draw(0,0) grid (\linewidth,3);\\[.5ex] \tikz\draw(0,0) grid (\myLineWidth,3);\\[2ex] \end{document}
Re: Grid automatisch anpassen
Da müsstest Du definieren, was größtmöglich bedeutet. Mein Vorschlag oben rundet stets ab; d. h. bsp. bei Zeilenbreite 2,9999 cm werden nur zwei Kästchen ausgegeben. Wenn Du bsp. bei Zeilenbreite 2,8000 cm drei Kästchen haben willst, dann den round(...) anpassen: round(... - 0.5) ist ja bekanntlich identisch zu floor(...) (für positive Argumente).Also quasi so, dass er das größtmögliche, vollständige Grid einzeichnet?
Gruß vom Rolli