Caja demasiado llena inexplicable

Caja demasiado llena inexplicable

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:

  1. 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...

  2. 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}
    

ingrese la descripción de la imagen aquí

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á pgfla útil macro \pgflinewidthque 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}

información relacionada