
Estaba intentando crear una barra horizontal larga donde poner las notas de una evaluación y había creado el siguiente código.
\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}
No puedo entender por qué aparece un error de exceso de llenado:
Overfull \hbox (0.79999pt too wide) in paragraph at lines 14--15[][]
¿Cómo puedo arreglarlo?
Gracias por cualquier ayuda que me puedan brindar.
Respuesta1
Hay dos cosas que causan esto:
Sangría de párrafo. La sangría de párrafo estándar se agrega antes de la imagen tikz, puede desactivarla para una sola línea con
\noindent
, es decir\noindent\tikz...
Cuando dibujas una línea, el cuadro delimitador en realidad se extenderá la mitad del ancho de la línea más allá de las coordenadas finales, como puedes ver en este ejemplo:
\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}
La línea azul indica el cuadro delimitador.
Si agrega line cap=rect
, la línea se extenderá para llenar ese espacio en blanco y tendrá pgf
la útil macro \pgflinewidth
que tiene el ancho de la ruta actual. Por lo tanto, puedes hacer\draw[thick,line cap=rect] (0,0) -- (\linewidth-\pgflinewidth,0) ...
.
Ejemplo de trabajo, como egreg mencionó que no deberías usarminimal
(¿Por qué debería evitarse la clase mínima?):
\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}