如何在不使用 fancyhdr 的情况下在页面右上角添加文本

如何在不使用 fancyhdr 的情况下在页面右上角添加文本

我想将一段文本放入文档的右上角(使用 article 类)。文档格式的规范如下非常非常详细,我花了大约两天的时间才把它们弄好。

我不想在顶部画一条线,也不想做任何会改变边距的事情。事实上,我宁愿完全避免使用任何额外的包。

有什么建议么?

答案1

使用atbegshi保证文本块不会以任何方式被修改,因为它的作用是“覆盖”,可以这么说。

\documentclass[a4paper]{article}
\usepackage{atbegshi,picture}
\usepackage{lipsum}


\AtBeginShipout{\AtBeginShipoutUpperLeft{%
  \put(\dimexpr\paperwidth-1cm\relax,-1.5cm){\makebox[0pt][r]{\framebox{Copyright DTV}}}%
}}

\begin{document}

\lipsum

\end{document}

该文件的每一页都会带有版权声明。

答案2

这是一个使用背景包裹:

\documentclass{article}  
\usepackage{background}
\usepackage{lipsum}% just to generate filler text

\SetBgContents{some additional text}
\SetBgScale{1}
\SetBgAngle{0}
\SetBgPosition{current page.north east}
\SetBgHshift{-2cm}
\SetBgVshift{-1cm}

\begin{document}

\lipsum[1-3]

\end{document}

答案3

这是一个使用eso-pic包裹

在此处输入图片描述

\documentclass{article}  
\usepackage{eso-pic}% http://ctan.org/pkg/eso-pic
\usepackage{lipsum}% http://ctan.org/pkg/lipsum

\begin{document}

\AddToShipoutPictureBG*{%
  \AtPageUpperLeft{%
    \hspace{\paperwidth}%
    \raisebox{-\baselineskip}{%
      \makebox[0pt][r]{Here is some interesting text}
}}}%

\lipsum[1-3]

\end{document}

\AddToShipoutPictureBG会打印一些东西每一个页面,而带星号的版本\AddToShipoutPictureBG*仅将其打印在当前页面上。可以使用间距命令在预定义位置(如\AtPageUpperLeft和类似)的帮助下进行放置。请参阅包装文档了解更多信息。

eso-pic还提供将内容放置在前景中以与现有页面布局叠加(与上面建议的将某些内容放置在背景层中相反)使用\AddToShipoutPictureFG\AddToShipoutPictureFG*具有与上述类似的内涵。

答案4

这里有一个选项textpos,这个过程是自动化的,这样文本就会总是即使页面形状发生变化,仍停留在右上角

% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = xelatex
\documentclass[UTF8]{article}
\usepackage{lipsum}

\usepackage[a4paper, twoside]{geometry}

\usepackage{pgf}
\usepackage[absolute, overlay]{textpos}

\setlength{\TPHorizModule}{1.0 pt}
\textblockorigin{\paperwidth}{0.0 pt}
%% set the origin used by 'textpos' to be top right corner of page

\begin{document}

\title{title}
\date{\today}
\author{author}

\pgfmathwidth{"top right corner at page \thepage"}
%% the width of text is stored in '\pgfmathresult'
\begin{textblock}{\pgfmathresult}[1, 0](0, 0)
%% value of '\pgfmathresult' is used to set the width of text block
%% '[1, 0]' sets the anchor point of text block to be its top right corner
%% '(0, 0)' sets the anchor point right at the origin which is set by '\textblockorigin' in the preamble
\noindent
top right corner at page \thepage
\end{textblock}

\maketitle

\lipsum[7]

\end{document}

这是生产出来的

右上角文字

相关内容