gpt4 book ai didi

r - 如何在 fancyhdr 中使用 Sweave (R) 代码?

转载 作者:行者123 更新时间:2023-12-01 23:31:34 25 4
gpt4 key购买 nike

我正在使用 Sweave 生成​​自动生成的定期报告。为了创建一个漂亮的 header ,我使用 fancyhdr 包,到目前为止效果非常好。现在,由于我的报告是定期的,我想动态更改标题而不向函数传递参数。这就是为什么我写了一个小 R 函数来检查哪个时期是最新的。基于此,在 R 中生成 header 字符串。

长话短说,我知道 LaTeX 中有\today,但我需要使用来自 R 的特定信息,而不仅仅是日期。

这是我的代码:

   \usepackage{fancyhdr}
\pagestyle{fancy}

\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}}
\fancyhf{}
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\rightmark{
<<>>=
print(TexHeader)@
}}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt}
\fancypagestyle{plain}{%
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}}

这会导致以下错误:

Package Fancyhdr Warning: \fancyhead's `E' option without twoside option is use
less on input line 23.

这正是放置我的 TexHeader 的行。

最佳答案

对于单面文档,您可以使用 \fancyhead[L]{...}\fancyhead[R]{...} .

此外,在这种情况下,最好使用 <<results=tex, echo=FALSE>>= 。这是一个例子:

\documentclass[a4paper]{report}
\usepackage{fancyhdr}
\usepackage{lipsum}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}}
\fancyhf{}
\fancyhead[R]{\bfseries\thepage}
\fancyhead[L]{\rightmark{%
<<results=tex, echo=FALSE>>=
TexHeader <- format(Sys.time(), "%c")
cat(TexHeader)
@
}}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt}
\fancypagestyle{plain}{%
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}}

\begin{document}
\lipsum
\end{document}

关于r - 如何在 fancyhdr 中使用 Sweave (R) 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3403629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com