我想根据我见过的另一份新闻通讯用 LaTeX 创建一份新闻通讯。
新闻通讯在页面左侧会有一个带背景色的窄栏,此栏将占据整个页面的长度并延伸到纸张的顶部、底部和左侧边缘,紧挨着此栏的是另一栏,它将占据页面上的剩余空间。
我最初的想法是使用 minipage,因为我不确定是否存在其他可以做到这一点的东西,但我不确定 minipage 是否能够实现背景颜色。如果可能的话,我希望图像位于背景中,图像不应平铺,并且可能不是侧边栏的正确尺寸,但是我会尝试使图像具有正确的尺寸,文本将覆盖图像,这可以在下面的附图中部分看到。
我认为我的问题在这里已经得到部分解答:让 minipage 占据整个页面高度
由于有人向我建议,所以我发帖后才发现上述内容。
不清楚的是如何在左侧的小页面内添加一些填充并可能添加背景图像,我可能不想这样做,但如果有选择就好了。
另外,在初始的第一页包含两个小页面之后,我该如何将边距恢复为默认设置?似乎只能在序言中执行此操作,所以也许我应该有一个单独的文件,也许包含第一页,然后将其包含在主文档中?就像 \begin{titlepage} 或类似的东西?
下面显示的是通过截图工具稍微编辑过的屏幕截图。
\documentclass[10pt]{article}
\usepackage{xcolor}
\usepackage{calc}
\usepackage[margin=0in]{geometry} % https://ctan.org/pkg/geometry?lang=en
\definecolor{sidebar}{RGB}{71,62,136}
\setlength{\parindent}{0pt}
\begin{document}
%\bgroup
\setlength{\topskip}{0pt}
\fcolorbox{sidebar}{sidebar}%
{%
\begin{minipage}[t][\textheight-2\fboxsep-2\fboxrule][t]{0.2\textwidth}
\color{white} % White text
\LARGE Hello
\end{minipage}%
}
Hello
\end{document}
答案1
可以使用以下方法将文档内容绝对放置在前台或后台ltshipout
自 2020 年 10 月起在 LaTeX 内核中可用(对于旧版本的 LaTeX,您可以使用eso-pic
)。
可以使用和geometry.sty
宏在文档中间更改文档边距。可以使用钩子内部的制作和放置彩色矩形。这种方式只需要运行一次编译。\newgeometry
\restoregeometry
\rule
\put
ltshipout
\documentclass{article}
\usepackage{calc}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[landscape]{geometry}
\usepackage{lipsum} % for the sample text
\geometry{margin=1in}
\definecolor{sidebar}{RGB}{71,62,136}
\setlength{\parindent}{0pt}
\begin{document}
\begin{titlepage}
\newgeometry{left=0.5\paperwidth, right=0.1\paperwidth, vmargin=1in}
\AddToHookNext{shipout/background}{%
% Sidebar width: 0.4\paperwidth
\put(0,-\paperheight){\color{sidebar}\rule{0.4\paperwidth}{\paperheight}}%
\put(0,-0.5\paperheight){%
\raisebox{-0.5\height}{%
\includegraphics[width=0.4\paperwidth]{example-image-duck}%
}%
}%
\put(0.5in,-0.4in){% sidebar hmargin: 0.5in; sidebar vmargin: 0.4in
\begin{minipage}[t][\paperheight-0.8in]{0.4\paperwidth-1in}
\kern 0pt % set the reference point of the minipage at its very top
\leavevmode\color{white}%
\lipsum[1-3]
\end{minipage}%
}%
}
\lipsum[1-3]
\end{titlepage}
\restoregeometry % restore what was set with \geometry
\lipsum[8-15]
\end{document}