我试图在报告的部分标题页上包含一个图像,以使其看起来像这样,但在目录中正确显示:
\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
以使零件的标题看起来有所不同,但没有成功。(我需要图片的空间)。
它是什么样子的:
第一部分
Lorem Ipsum
我希望它看起来像什么
第一部分: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}