Окончательный вариант

Окончательный вариант

Я пытаюсь включить изображение на титульный лист части моего отчета, чтобы оно выглядело так, но правильно отображалось в оглавлении:

\clearpage
\newpage
{\pagestyle{empty} \enlargethispage{10\baselineskip}
{\huge\textbf{Part I: Lorem Ipsum}}\\
\noindent\rule{\textwidth}{0.4pt}
\begin{center}
\includegraphics[width=\textwidth]{figures/part_1_title.pdf}
\end{center}
\clearpage}
\newpage

Похожий вопрос был заданздесь, но у меня \printparttitleвыдает ошибку.

Кто-нибудь знает, как это сделать?

Еще один похожий вопрос был задан на другом форуме:здесь.

Я попытался изменить определение \partиз report.clsфайла, чтобы название детали выглядело по-другому, но это не сработало. (Мне нужно место для картинки).

На что это похоже:
Часть I
Lorem Ipsum

Как я хочу, чтобы это выглядело
Часть I: Lorem Ipsum который получается с помощью этого кода:

{\pagestyle{empty} \enlargethispage{10\baselineskip}
{\huge\textbf{Part I: Lorem ipsum}}\\
\noindent\rule{\textwidth}{0.4pt}
\begin{center}
\includegraphics[width=\textwidth]{figures/PartI_Loerm.pdf}
\end{center}

Есть у кого-нибудь идеи?

решение1

Добавьте набор изображений в команду \@endpart:

\makeatletter
\newcommand{\imagepart}[1]{\def\@theimagepart{#1}\part}
\def\@endpart{%
  \par\medskip
  \hrule
  \begin{center}
  \includegraphics[width=\textwidth]{\@theimagepart}
  \end{center}
  \vfil\newpage
  \if@twoside
    \if@openright
      \null
      \thispagestyle{empty}%
      \newpage
    \fi
  \fi
  \if@tempswa
    \twocolumn
  \fi}
\makeatother

Полный пример ( demoопция приведена только для примера)

\documentclass{report}
\usepackage[demo]{graphicx}
\makeatletter
\newcommand{\imagepart}[1]{\def\@theimagepart{#1}\part}
\def\@endpart{%
  \par\medskip
  \hrule
  \begin{center}
  \includegraphics[width=\textwidth]{\@theimagepart}
  \end{center}
  \vfil\newpage
  \if@twoside
    \if@openright
      \null
      \thispagestyle{empty}%
      \newpage
    \fi
  \fi
  \if@tempswa
    \twocolumn
  \fi}
\makeatother

\begin{document}
\imagepart{figures/part_1_title.pdf}{Part title}
\end{document}

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

Возможно также переопределение \@part, с некоторыми незначительными изменениями в \@endpart, чтобы не было переносов строк в заголовке.

\documentclass{report}
\usepackage[demo]{graphicx}
\makeatletter
\newcommand{\imagepart}[1]{\def\@theimagepart{#1}\part}
\def\@endpart{%
  \par\vskip12pt\hrule\vskip12pt
  {\centering
   \includegraphics[width=\textwidth]{\@theimagepart}\par}
  \vfil\newpage
  \if@twoside
    \if@openright
      \null
      \thispagestyle{empty}%
      \newpage
    \fi
  \fi
  \if@tempswa
    \twocolumn
  \fi}
\def\@part[#1]#2{%
  \ifnum \c@secnumdepth >-2\relax
    \refstepcounter{part}%
    \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
  \else
    \addcontentsline{toc}{part}{#1}%
  \fi
  \markboth{}{}%
  {\centering
   \interlinepenalty \@M
   \normalfont
   \ifnum \c@secnumdepth >-2\relax
     \huge\bfseries \partname\nobreakspace\thepart: 
   \fi
   #2\par}
  \@endpart}

\makeatother

\begin{document}
\imagepart{figures/part_1_title.pdf}{Part title}
\end{document}

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

Если вы хотите переместить заголовок части вверх, вам необходимо изменить \vfilв определении \part; например, добавив

\renewcommand\part{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{plain}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vspace{\stretch{1}}
  \secdef\@part\@spart}

и изменив \vfilв переопределении \@endpartна \vspace{\stretch{2}}у вас будет в два раза больше места внизу, чем вверху.


Окончательный вариант

Слева на картинке результат \imagepart, справа ваше желание.

\documentclass{report}
\usepackage[demo]{graphicx}
\makeatletter
\newcommand{\imagepart}[1]{\def\@theimagepart{#1}\part}
\def\@endpart{%
  \par\vskip12pt\hrule\vskip12pt
  {\centering
   \includegraphics[width=\textwidth]{\@theimagepart}\par}
  \vfil\newpage
  \if@twoside
    \if@openright
      \null
      \thispagestyle{empty}%
      \newpage
    \fi
  \fi
  \if@tempswa
    \twocolumn
  \fi}
\renewcommand\part{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{empty}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vspace{-2\baselineskip}
  \secdef\@part\@spart}
\def\@part[#1]#2{%
  \ifnum \c@secnumdepth >-2\relax
    \refstepcounter{part}%
    \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
  \else
    \addcontentsline{toc}{part}{#1}%
  \fi
  \markboth{}{}%
  {\raggedright
   \interlinepenalty \@M
   \normalfont
   \ifnum \c@secnumdepth >-2\relax
     \huge\bfseries \partname\nobreakspace\thepart: 
   \fi
   #2\par}
  \@endpart}

\makeatother

\begin{document}
\imagepart{figures/part_1_title.pdf}{Part title}

\clearpage
\newpage
{\pagestyle{empty} \enlargethispage{10\baselineskip}
{\huge\textbf{Part I: Lorem Ipsum}}\\
\noindent\rule{\textwidth}{0.4pt}
\begin{center}
\includegraphics[width=\textwidth]{figures/part_1_title.pdf}
\end{center}
\clearpage}
\newpage

\end{document}

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

Дополнение 2022

Как добавить текст описания под изображением? Вот возможность.

\documentclass{report}
\usepackage{graphicx}

\makeatletter
\newcommand{\imagepart}[2]{%
  \def\@theimagepart{#1}%
  \def\@thecaptionpart{#2}%
  \part
}

\def\@endpart{%
  \par\medskip
  \hrule
  \begin{center}
  \includegraphics[width=\textwidth]{\@theimagepart} \\
  \@thecaptionpart
  \end{center}
  \vfil\newpage
  \if@twoside
    \if@openright
      \null
      \thispagestyle{empty}%
      \newpage
    \fi
  \fi
  \if@tempswa
    \twocolumn
  \fi}
\makeatother

\begin{document}

\imagepart{example-image}{Description}{Part title}

\end{document}

Примените желаемое форматирование к вызову \@thecptionpart.

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

решение2

Если вы используете класс KOMA, вы можете сделать это с помощью \setpartpreamble. Команда имеет два необязательных аргумента для указания положения и ширины.

\documentclass{scrreprt}
\usepackage{mwe}
\begin{document}
\setpartpreamble{%
\begin{center}
Here some text and a picture

\includegraphics[width=.48\linewidth]{example-image-a}
\end{center}
}
\part{foo}
\end{document}

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

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