Grid automatisch anpassen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Grid automatisch anpassen

Re: Grid automatisch anpassen

von Rolli » Sa 22. Jun 2024, 09:59

Also quasi so, dass er das größtmögliche, vollständige Grid einzeichnet?
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).
Gruß vom Rolli

Re: Grid automatisch anpassen

von Rolli » Sa 22. Jun 2024, 09:53

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}

Grid automatisch anpassen

von ThoRie » Mi 19. Jun 2024, 16:02

Hallo ich habe ein Problem mit folgendem Code:
\documentclass[a4paper]{article}
\usepackage{tikz}
\begin{document}
	\tikz \draw(0,0) grid (\linewidth,3);
\end{document}
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?

Nach oben