Окружение tikzpicture делает \noindent неэффективным

Окружение tikzpicture делает \noindent неэффективным

Посмотрите, пожалуйста, этот MWE:

\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage[showframe]{geometry}
\usepackage{ulem}
\setlength\fboxsep{0pt}
\begin{document}

% \begin{tikzpicture}[remember picture, overlay]
%   \node[inner sep=0pt] at (current page.center) {\includegraphics[width=\textwidth]{example-image.pdf}};
% \end{tikzpicture}
\ExplSyntaxOn
\noindent
\fbox{\begin{minipage}{\textwidth}
  \mode_leave_vertical:
  \hbox_to_wd:nn { 2cm } { Classification }
  \uline { \hbox_to_wd:nn { 2.4cm } { \hfill 1234 \hfill } }
  \hfill
  \hbox_to_wd:nn { 1.67cm } { Secret-level }
  \uline { \hbox_to_wd:nn { 2.4cm } { \hfill AAAA \hfill } }
\end{minipage}}
\ExplSyntaxOff

\noindent\begin{minipage}{\textwidth}
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
\end{minipage}

\end{document}

Если я раскомментирую эту tikzpictureчасть, первая мини-страница будет с отступом, даже если \noindentперед ней есть другая. введите описание изображения здесь

решение1

Начинает tikzpictureабзац, поэтому \noindentне имеет никакого эффекта.

Поместите его перед \begin{tikzpicture}(я добавил \ignorespaces, чтобы избежать нежелательных пробелов перед minipage, но вы также можете использовать символ комментария %).

\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage[showframe]{geometry}
\usepackage{ulem}
\setlength\fboxsep{0pt}
\begin{document}

\noindent
\begin{tikzpicture}[remember picture, overlay]
  \node[inner sep=0pt] at (current page.center) {\includegraphics[width=\textwidth]{example-image.pdf}};
\end{tikzpicture}\ignorespaces
\ExplSyntaxOn
\fbox{\begin{minipage}{\textwidth}
  \mode_leave_vertical:
  \hbox_to_wd:nn { 2cm } { Classification }
  \uline { \hbox_to_wd:nn { 2.4cm } { \hfill 1234 \hfill } }
  \hfill
  \hbox_to_wd:nn { 1.67cm } { Secret-level }
  \uline { \hbox_to_wd:nn { 2.4cm } { \hfill AAAA \hfill } }
\end{minipage}}
\ExplSyntaxOff

\noindent\begin{minipage}{\textwidth}
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
\end{minipage}

\end{document}

пример

решение2

Я не уверен, что вы много выигрываете, используя expl3в таком случае. Если говорить точнее, вы просто усложняете вещи, потому что LaTeX уже имеет необходимые инструменты.

Верхний minipageвложенный в \fboxдолжен быть \framebox. Будьте осторожны с конечными линиями, также.

\documentclass[a4paper]{article}
\usepackage{tikz}
%\usepackage[showframe]{geometry}
\usepackage{ulem}

\begin{document}

\noindent
\begin{tikzpicture}[remember picture, overlay]
  \node[inner sep=0pt] at (current page.center) {%
    \includegraphics[width=\textwidth]{example-image.pdf}%
  };
\end{tikzpicture}% <--- important
\begingroup\setlength{\fboxsep}{0pt}%
\framebox[\dimeval{\textwidth-2\fboxrule}][s]{%
  \strut
  \,Classification
  \uline{\makebox[2.4cm][c]{1234}}%
  \hfill
  Secret-level
  \uline{\makebox[2.4cm][c]{AAAA}}%
}
\endgroup

\bigskip

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex 
ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
velit esse cillum dolore eu fugiat nulla pariatur.

\end{document}

Ширина \frameboxкорректируется с помощью \fboxrule, поэтому она не переполняется.

Должно \noindentидти перед tikzpicture.

\documentclass[a4paper]{article}
\usepackage{tikz}
%\usepackage[showframe]{geometry}
\usepackage{ulem}

\begin{document}

\noindent
\begin{tikzpicture}[remember picture, overlay]
  \node[inner sep=0pt] at (current page.center) {%
    \includegraphics[width=\textwidth]{example-image.pdf}%
  };
\end{tikzpicture}% <--- important
\begingroup\setlength{\fboxsep}{0pt}%
\framebox[\dimeval{\textwidth-2\fboxrule}][s]{%
  \strut
  \,Classification
  \uline{\makebox[2.4cm][c]{1234}}%
  \hfill
  Secret-level
  \uline{\makebox[2.4cm][c]{AAAA}}%
}
\endgroup

\bigskip

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex 
ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
velit esse cillum dolore eu fugiat nulla pariatur.

\end{document}

введите описание изображения здесь

Связанный контент