创建双页交替的“正面”和“背面”背景

创建双页交替的“正面”和“背面”背景

我需要循环显示 CSV 文件中的名称列表,并针对每个新名称(行)创建一个使用背景“正面”的页面,并在右侧添加名称,比如距离左侧约 75%。

然后创建一个新页面,仅使用背景“背面”,因为我们将打印为双面纸。

这是我目前所得到的,除了从第 3 页开始,它似乎将前后背景合并到同一页上。

\documentclass[12pt, a5paper,landscape]{memoir} % Use memoir for vplace

\usepackage[utf8]{inputenc} % required for characters like: Î ç etc.
\usepackage{color}
\usepackage{wallpaper} % For background image frame
\usepackage{datatool} % For loading data from file (e.g. from csv)

% Load database 'names' from file 'namelist.csv'
\DTLloaddb[keys={OrderNumber,Date,First,Last,Email,Quantity,Ticket,Order,Total,Fees,Payment,Status,Country,DrupalOrg,Meal,OtherMeal,Job,Company}]{names}{namelist.csv}

\begin{document}
  \color{white}
  \pagestyle{empty}

  % For each record (line) in database 'names'
  \DTLforeach{names}
  {\firstname=First, \lastname=Last}{
    {
      \TileWallPaper{\paperwidth}{\paperheight}{A5_Badge_Front_Without_Placeholder}
      \begin{vplace}[1.4]
        \raggedleft{\bfseries\MakeUppercase{\firstname}} {\bfseries\MakeUppercase{\lastname}}
      \end{vplace}
      \vspace{\fill}
      \leavevmode\thispagestyle{empty}\newpage
      \clearpage
    }
    {
      \TileWallPaper{\paperwidth}{\paperheight}{A5_badge_back}
      \vspace{\fill}
      \leavevmode\thispagestyle{empty}\newpage
      \clearpage
      \newpage
      \cleardoublepage
    }
}

\end{document}

结果见:https://www.sharelatex.com/project/58a1eb8f4cd29cd31efc3897

从 CSV 读取数据很方便,添加背景(例如正面和输出)以前也很好,但我需要在中间添加新的第二页作为“背面”背景。我尝试添加\vspace{\fill}并使用不同的\clearpagevs变体\newpage,但第三页(第五页等)的输出仍然很奇怪。

答案1

这是一个可以满足您需求的解决方案。更改如下:

  • \pagestyle{empty}序言中\thispagestyle{empty}的所有内容都会为您节省不少时间。

  • 正如您已经发现的,您必须使用\ThisTileWallPaper而不是\TileWallPaper

  • 将名称放入宽度为零的框中,居中。之后,您只需定位此中心,例如使用\hspace*,名称就会对称地延伸到两侧。

    \hspace*{12.1cm}\makebox[0pt]{First Name Second Name}
    
  • 要垂直定位名称,请在\vspace*{3cm}上方添加。

\documentclass[12pt,a5paper,landscape]{memoir} % Use memoir for vplace
\usepackage[utf8]{inputenc} % required for characters like: Î ç etc.
\usepackage{color}
\usepackage{wallpaper} % For background image frame
\usepackage{datatool} % For loading data from file (e.g. from csv)

% Load database 'names' from file 'namelist.csv'
\DTLloaddb[keys={OrderNumber,Date,First,Last,Email,Quantity,Ticket,Order,Total,Fees,Payment,Status,Country,DrupalOrg,Meal,OtherMeal,Job,Company}]{names}{namelist.csv}
\pagestyle{empty}
\begin{document}
  \color{white}

  % For each record (line) in database 'names'
  \DTLforeach{names}
  {\firstname=First, \lastname=Last}%
  {\ThisTileWallPaper{\paperwidth}{\paperheight}{A5_Badge_Front_Without_Placeholder}%
   \vspace*{3cm}
   \hspace*{12.1cm}\makebox[0pt]{%
     \begin{tabular}{c}
     \bfseries\MakeUppercase{\firstname} \MakeUppercase{\lastname}\\[3mm]
     Some more stuff\\[3mm]
     Even more of it
     \end{tabular}%
   }
   \clearpage
   \ThisTileWallPaper{\paperwidth}{\paperheight}{A5_badge_back}%
   \mbox{}\clearpage
  }


\end{document}

答案2

啊,好吧,我似乎已经发现我需要使用\ThisTileWallPaper而不是\TileWallPaper- 现在我只需要正确定位文本以使其“居中”在 75% 标记附近(从最左边为 0%... 50% 为默认中心... 等等)\raggedleft并不能真正解决这个问题,但它帮助目前。

\documentclass[12pt, a5paper,landscape,twoside]{memoir} % Use memoir for vplace

\setlength{\pdfpagewidth}{\paperwidth}
\setlength{\pdfpageheight}{\paperheight}

\usepackage[utf8]{inputenc} % required for characters like: Î ç etc.
\usepackage{color}
\usepackage{wallpaper} % For background image frame
\usepackage{datatool} % For loading data from file (e.g. from csv)

% Load database 'names' from file 'namelist.csv'
\DTLloaddb[keys={OrderNumber,Date,First,Last,Email,Quantity,Ticket,Order,Total,Fees,Payment,Status,Country,DrupalOrg,Meal,OtherMeal,Job,Company}]{names}{namelist.csv}

\begin{document}
  \color{white}
  \pagestyle{empty}
  % For each record (line) in database 'names'
  \DTLforeach{names}{\firstname=First, \lastname=Last}{
    {
      \ThisTileWallPaper{\pdfpagewidth}{\pdfpageheight}{A5_Badge_Front_Without_Placeholder}
      \begin{vplace}[1.4]
        \raggedleft{\bfseries\MakeUppercase{\firstname}} {\bfseries\MakeUppercase{\lastname}}
      \end{vplace}
      \clearpage
    }
    {
      \ThisTileWallPaper{\pdfpagewidth}{\pdfpageheight}{A5_badge_back}
      \clearpage\mbox{}\clearpage
    }
}

\end{document}

相关内容