如何创建具有半页背景的标题(如 Twitter bootstrap Carousel 主题)?

如何创建具有半页背景的标题(如 Twitter bootstrap Carousel 主题)?

我想创建一个带有半页背景的 LaTeX 文档,例如 Twitter/Bootstrap 的旋转木马主题。背景不一定需要像示例中那样的渐变(尽管如果有的话会更好)。

我如何制作遵循 Carousel 主题的自定义标题(和副标题)?因为它将采用无衬线字体(例如 Arial 或 Helvetica),并且字体大小大致相同。请注意,我对将整个页面作为标题不感兴趣。

编辑:我试图包含一个示例“用例”,描述如下

首先,使用 ImageMagick 创建渐变,如下所示:

convert -size 800x200 xc: -channel G \
        -fx '0.3+0.2*sin(pi*(i/w))' \
        -separate gradient_fx_cos.jpg

我已经设法在 LaTeX 文件中进入以下阶段(显然边界框是错误的,而且我无法为第二列设置顶部边距):

\documentclass[paper=a4, fontsize=11pt, twocolumn]{scrartcl}
%\documentclass[twocolumn]{article}
\usepackage{lipsum}
\usepackage[parfill]{parskip}
\usepackage{graphicx}
\usepackage{color}

\renewcommand*\sfdefault{phv}  % Sans-Serif defaults to Helvetica

\usepackage[
  paper=a4paper,
  top=2.5cm,
  left=2.5cm,
  right=2.5cm,
  bottom=2cm
]{geometry}

\begin{document}
\pagestyle{empty}

\begin{figure}[h]
\includegraphics[bb=4cm 0 13cm 4cm, width=\textwidth]{gradient_fx_cos.jpg}
\end{figure}

\vspace{-7cm}

\begin{minipage}{\textwidth}
  \begin{center}
  {\fontfamily{phv}
   \fontseries{b}
   \fontsize{40}{42}
   \selectfont\color{white}
   LaTeX Document Template\\
  }
  \vspace{0.7cm}
  {\fontfamily{phv}
   \fontseries{m}
   \fontsize{28}{30}
   \selectfont\color{white}
   Nathaniel Ng
  }
  \end{center}
\end{minipage}

\vspace{2.5cm}

\tableofcontents

\section*{Abstract}

\lipsum[1]

\section{Introduction}
\lipsum[2-4]

\section{Methods}
\lipsum[5-9]

\section{Discussion}
\lipsum[10-15]

\section{Conclusion}
\lipsum[16-17]

\end{document}

生成的图像(使用 pdfLaTeX)如下所示:

第一页

如何使图像居中以及如何正确设置页边距(仅限第一页)?

答案1

免责声明:以下解决方案仅适用于标题页。不过,它可能适合用作页眉。

该解决方案使用以便在页面顶部放置一个灰色矩形。TiZ 还允许你根据需要添加阴影,只需查看其手册(特别是阴影库部分)来查找如何执行此操作。调整下面给出的代码应该很容易。

对于字体,我使用fontspec并使用 LuaLaTeX 进行编译。这样,除了通过 LaTeX 包定义的常用字体外,您还可以使用系统字体。以下示例使用机器人EB 加拉蒙德这些都是免费字体。

\documentclass{article}
\usepackage[
  hmargin=2cm,
  vmargin=2cm,
]{geometry}

\usepackage{fontspec}
\setmainfont[
  BoldFont={Roboto},
]{Roboto Light}
\newfontfamily\ebgfamily{EB Garamond}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\pagestyle{empty}
\tikz [remember picture, overlay] 
      \fill [gray] 
            (current page.north east) rectangle ($(current page.north west) + (0, -5cm)$);

\vspace{-1cm} 

\begin{minipage}{0.5\linewidth}
  \fontsize{40}{40}\selectfont
  \color{white} \bfseries
  Nathanial Ng
\end{minipage}
\begin{minipage}{0.5\linewidth}
  \flushright
  \fontsize{20}{20}\selectfont
  \color{white}
  Question Asker \\
  StackExchange 
\end{minipage}
\vspace{1em}
\begin{center}
  \color{white} \ebgfamily \itshape \fontsize{15}{15}\selectfont
  If you try to fail, and succeed, which have you done?
\end{center}
\end{document}

输出

请注意,由于头部占用了一些空间,紧跟在头部后面的普通文本实际上会落在头部内部。这可以通过\vspace{<distance>}插入适当垂直空间轻松解决。在上述情况下,这\vspace{2cm}似乎是一个不错的数量。

双柱案例

在双列的情况下,您将无法使用\vpsace如上所示的方法来确保文本不会超出标题范围(如 OP 编辑​​中所述)。此外,小页面无法正常工作。

解决第一个问题的一种方法是使用两种方法\twocolumn[\vspace{<distance>}]在跨两列的新页面顶部插入给定的文本(在本例中为空格)。

至于小页面的问题,通过将文本放在 Ti 中可以解决Z 节点,并将这些节点绝对放置在页面上:

\documentclass[twocolumn]{article}

\usepackage[
  hmargin=2cm,
  vmargin=2cm,
]{geometry}

\usepackage{fontspec}
\setmainfont[
  BoldFont={Roboto},
]{Roboto Light}
\newfontfamily\ebgfamily{EB Garamond}

\usepackage{tikz}
\usetikzlibrary{calc}

\usepackage{mwe}

\begin{document}
\pagestyle{empty}
\twocolumn[\vspace{4cm}]
\begin{tikzpicture}[remember picture, overlay]
  \fill [gray] 
        (current page.north east) rectangle ($(current page.north west) + (0, -5cm)$);
  \node [anchor=north west, font=\fontsize{40}{40}\bfseries\color{white}]
        at ($(current page.north west) + (2cm, -1.5cm)$)
        {Nathanial Ng};
  \node [anchor=north east, align=right, font=\fontsize{20}{20}\selectfont\color{white}]
        at ($(current page.north east) + (-2cm, -1.5cm)$)
        {Question Asker \\ StackExchange};
  \node [anchor=south, font=\fontsize{15}{15}\color{white}\ebgfamily\itshape]
        at ($(current page.north) + (0, -4.5cm)$)
        {If you try to fail, and succeed, which have you done?};
\end{tikzpicture}

\vspace{-1cm}
\tableofcontents

\begin{abstract}
  \lipsum[1]
\end{abstract}

\blinddocument

\end{document}

输出两列

相关内容