系统更新后,pdf 中的 pdflatex 字幕发生变化

系统更新后,pdf 中的 pdflatex 字幕发生变化

在我更新 Linux 机器上的许多软件包后,在运行下面的代码片段后,我遇到了 pdf 上的2022问题。我该怎么办(除了恢复我的系统)?1950pdflatex

\documentclass[12pt,landscape,titlepage]{article}%
\usepackage[T1]{fontenc}%
\usepackage[utf8]{inputenc}%
\usepackage{lmodern}%
\usepackage{textcomp}%
\usepackage{lastpage}%
\usepackage[a4paper,left=1cm,right=1cm,top=3cm,bottom=3cm,headheight=3em]{geometry}%
\usepackage{xcolor}%
\usepackage{graphicx}%
\usepackage[english]{babel}%
\usepackage{blindtext}%
\usepackage{xpatch}%
\usepackage{floatrow}%
\usepackage{caption}%
\usepackage{fancyhdr}%
\usepackage{titlesec}%
%
\xpretocmd{\section}{\thispagestyle{plain}}{}{}%
\pagecolor{darkgray}%
\pagecolor{white}%
\color{darkgray}%
\pagestyle{fancy}%
\title{Jane Doe}%
\author{Portfolio | 2022}%
\date{}%
\rhead{Jane Doe}%
\fancyhf{}%
\fancyhead{}%
\renewcommand{\headrulewidth}{0pt}%
\fancyhead[RO]{{Jane Doe}\\\vspace{0.5em}\underline{\leftmark}\\\vspace{0.05em}\rightmark}%
\renewcommand\sectionmark[1]{\markboth{#1}{\mysubtitle}}%
\titleclass{\section}{page}%
\assignpagestyle{\section}{empty}%
\titleformat{\section}[display]{\centering\Huge\bfseries}{\sectionname}{0pt}{\huge}[\clearpage]%
\newcommand{\subtitle}[1]{\gdef\mysubtitle{#1}\ignorespaces}%
\newcommand{\fakesection}[2]{\clearpage\sectionmark{#2}}%
%
\begin{document}%
\normalsize%
\maketitle%
\subtitle{2022}%
\fakesection*{Foo}%
\pagebreak%
\begin{figure}%
  \includegraphics[width=\linewidth,height=\textheight,keepaspectratio]{example-image-a}%
\end{figure}%
\pagebreak%
\begin{figure}%
\floatbox[{\capbeside\thisfloatsetup{capbesideposition={right,top},capbesidewidth=8cm}}]{figure}[\FBwidth]{\caption*{lorem ipsum}}{\includegraphics[width=\linewidth,height=\textheight,keepaspectratio]{example-image-a}}%
\end{figure}%
\pagebreak%
\subtitle{1950}%
\fakesection*{Bar}%
\pagebreak%
\begin{figure}%
\includegraphics[width=\linewidth,height=\textheight,keepaspectratio]{example-image-b}%
\end{figure}%
\pagebreak%
\begin{figure}%
\floatbox[{\capbeside\thisfloatsetup{capbesideposition={right,top},capbesidewidth=8cm}}]{figure}[\FBwidth]{\caption*{lorem ipsum}}{\includegraphics[width=\linewidth,height=\textheight,keepaspectratio]{example-image-b}}%
\end{figure}%
\pagebreak%
\end{document}

在此处输入图片描述

答案1

我无法确认您的说法,它以前确实有效,但由于您的真实文档可能没有使用示例图像,因此可以假设您的示例并未复制所有内容。

无论如何,你的例子可以归结为:

\documentclass{article}%
\makeatletter
\def\@oddhead{\leftmark, \rightmark \hfil\thepage}%
\makeatother
\begin{document}
\showoutput
\markboth{Foo}{2022}

\begin{figure}
 yyy 
\end{figure}

\clearpage
xxx \markboth{Bar}{1950}

\newpage
xxx 

\end{document}

如果你查看日志,你会看到第一个\markboth没有在第一页上执行,因为此页面仅包含首先处理的浮点数(并且独立于页面上的其余材料),但所有标记都输出在第二页上:

Completed box being shipped out [2]
.....
....
..\vbox(550.0+0.0)x345.0, glue set 539.94232fil
...\write-{}
...\marks1{Foo}
...\marks2{2022}
...\marks3{2022}
...\mark{{Foo}{2022}}   %<-----first mark
...\write-{}
...\glue(\topskip) 5.69446
...\hbox(4.30554+0.0)x345.0, glue set 310.83327fil
....\hbox(0.0+0.0)x15.0
....\OT1/cmr/m/n/10 x
....\OT1/cmr/m/n/10 x
....\OT1/cmr/m/n/10 x
....\glue 3.33333 plus 1.66666 minus 1.11111
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
...\marks1{Bar}
...\marks2{1950}
...\marks3{1950}
...\mark{{Bar}{1950}} %<----- second mark
...\glue 0.0 plus 1.0fil

因此第二页的页眉显示为\rightmark(“第一个右侧标记”)2022,并显示为\leftmark(“最后一个左侧标记”)Bar

这种行为并不新鲜,如果您想避免标记出现在错误的页面上,请确保标记命令与页面上实际输出的内容相关联,并且不要创建仅由浮点数组成的文档。

答案2

布局不好,分页符太多,导致错误调用显示,尝试逐个加载图形,然后排版图形。

尝试使用另一个正确的usepackage来调用该文件的位置。

并且 2 个字幕里面也放不下图形,只是把它放出来,而是使用 wrapfigure。

相关内容