
Ich habe versucht, einen langen horizontalen Balken zu erstellen, in den ich die Noten einer Beurteilung eintragen kann und habe den folgenden Code erstellt.
\documentclass{article}
\usepackage{tikz}
\setlength{\parindent}{0pt}
\newcommand{\TotalMarks}[1]{%
\tikz\draw[thick]
(0,0) -- (\linewidth,0) --
++(0,2em) -- ++(-2em,0) --
++(0,-2em) node[pos=0.6,left]
{\makebox[2.9cm]{\textbf{Total: #1 marks}\hfill}};}
\begin{document}
\TotalMarks{2}
\end{document}
Ich kann nicht verstehen, warum die Fehlermeldung „Überfüllung“ angezeigt wird:
Overfull \hbox (0.79999pt too wide) in paragraph at lines 14--15[][]
Wie kann ich es reparieren?
Vielen Dank für Ihre Hilfe.
Antwort1
Dies kann zwei Ursachen haben:
Absatzeinzug. Der Standard-Absatzeinzug wird vor dem Tikzbild eingefügt. Sie können dies für eine einzelne Zeile mit deaktivieren
\noindent
, d. h.\noindent\tikz...
Wenn Sie eine Linie zeichnen, wird der Begrenzungsrahmen tatsächlich um die halbe Linienbreite über die Endkoordinaten hinaus erweitert, wie Sie in diesem Beispiel sehen können:
\documentclass[border=5mm]{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} \draw [line width=5mm] (0,0) -- (1,0); \draw [very thin, red] (0,-0.5) -- (0,0.5); \draw [thin, blue] (current bounding box.south east) rectangle (current bounding box.north west); \end{tikzpicture} \end{document}
Die blaue Linie zeigt den Begrenzungsrahmen an.
Wenn Sie hinzufügen line cap=rect
, wird die Linie erweitert, um den leeren Bereich auszufüllen, und Sie pgf
haben das praktische Makro \pgflinewidth
, das die Breite des aktuellen Pfads hat. Daher können Sie Folgendes tun \draw[thick,line cap=rect] (0,0) -- (\linewidth-\pgflinewidth,0) ...
.
Funktionierendes Beispiel, wie egreg erwähnt hat, sollten Sie nicht verwenden minimal
(Warum sollte die Minimalklasse vermieden werden?):
\documentclass{article}
\usepackage{tikz}
\newcommand{\TotalMarks}[1]{%
\tikz\draw[thick,line cap=rect]
(0,0) -- (\linewidth-\pgflinewidth,0) --
++(0,2em) -- ++(-2em,0) --
++(0,-2em) node[pos=0.6,left]
{\makebox[2.9cm]{\textbf{Total: #1 marks}\hfill}};}
\begin{document}
\noindent\TotalMarks{2}
\end{document}