我使用此代码在右上角显示一张图片。它会显示在所有页面上,包括标题页。
重要的是要知道如何仅在目录页中显示,也就是说,不要在标题页(封面、封底、致谢)中显示,也不要显示在目录中,也不要显示在表格列表中,也不要显示在图表列表中。
我还想知道如何使用 LaTex 找出图像的高度和宽度(以点为单位)。然后使用这些高度和宽度值来调整位置,0.5\valuewidth,0.5\valueheight,而不必像现在这样手动操作。
我使用的图像高和宽均为 6cm。我使用 \put() 来调整它。
\documentclass{article}
\usepackage{eso-pic,xcolor}
\usepackage{graphicx}
\usepackage{transparent}
\newcommand\AtPageUpperRight[1]{\AtPageUpperLeft{
\makebox[\paperwidth][r]{#1}}}
\AddToShipoutPictureBG{
\put(80,85){%Desplazamos la imagen
\AtPageUpperRight{
\raisebox{-\height}{
\transparent{0.10}\includegraphics{images/logo/molino6.0cm.png}
}
}
}
}
答案1
您可以在 中构建一个条件\AddToShipoutPictureBG
,这样您就可以控制何时发布图像以及何时不发布图像。下面我定义了\ifPicture
您可以设置为 true -\Picturetrue
如果您希望该页面上有图片,或者 false -\Picturefalse
如果您不希望。使用\clearpage
确保您关闭当前页面并分离文档元素,类似于\frontmatter
、\mainmatter
和\backmatter
在较大的文档类(如book
和report
)中。
\documentclass{article}
\usepackage{eso-pic,xcolor}
\usepackage{graphicx,lipsum}
\usepackage{transparent}
\newcommand\AtPageUpperRight[1]{%
\AtPageUpperLeft{%
\makebox[\paperwidth][r]{#1}%
}%
}
\AddToShipoutPictureBG{
\ifPicture
\AtPageUpperRight{%
\raisebox{-\height}{%
\transparent{0.10}\includegraphics[width=6cm]{example-image}%
}%
}%
\fi
}
\newif\ifPicture
\begin{document}
\Picturefalse
\tableofcontents
\listoffigures
\listoftables
\clearpage
\Picturetrue
\section{First section}\lipsum[1-10]
\begin{figure}\caption{A figure}\end{figure}
\subsection{First subsection}\lipsum[11-20]
\begin{table}\caption{A table}\end{table}
\subsection{Second subsection}\lipsum[21-30]
\begin{figure}\caption{Another figure}\end{figure}
\subsection{Last subsection}\lipsum[31-40]
\begin{table}\caption{Another table}\end{table}
\clearpage
\Picturefalse
\section{Last section}\lipsum[1-10]
\begin{figure}\caption{A figure}\end{figure}
\subsection{First subsection}\lipsum[11-20]
\begin{table}\caption{A table}\end{table}
\subsection{Second subsection}\lipsum[21-30]
\begin{figure}\caption{Another figure}\end{figure}
\subsection{Last subsection}\lipsum[31-40]
\begin{table}\caption{Another table}\end{table}
\end{document}
没有必要知道图像的宽度/高度,因为它被放到位(通过\raisebox{-\height}
不知道实际高度的情况下被放低到位的(通过)。此外,你还有一些虚假空间在您的定义中导致图像位置与正确的页面边界不齐平。
答案2
尝试使用fancyhdr
而不是esopic
\documentclass{article}
\usepackage{mwe} % for sample image
\usepackage[head=1cm]{geometry}
\usepackage{lipsum} % for sample text
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{\includegraphics[height=1cm]{example-image-a}}
\renewcommand{\headrulewidth}{0pt}
\begin{document}
\lipsum
\end{document}
您可以手动从页面中删除页眉,\pagestyle{empty}
或者将 documentclass 更改为类似的,book
这将有助于您仅将其放在内容页面上。