随机编译时文档样式

随机编译时文档样式

我正在尝试创建一个具有随机样式属性的文档类,这些属性在编译时确定。理想情况下,随机属性应包括:

  • 边距
  • 行间距
  • 字体选择

对于我的特定用例,文档内的引用通常没有用/不是设计约束,因此无需担心布局在编译过程中是否一致。

\pgfmathrandomitem我尝试在新文件中使用.cls,如下所示:

% randocls.cls
\LoadClass{article}
\usepackage{pgffor}

\pgfmathdeclarerandomlist{marginmargins}{{0.0}{0.25}{0.5}{0.75}}
\pgfmathrandomitem{\marginns}{marginmargins}

% none of the following work...
% (the implied margins are different; this is MWE so nbd)

% Case 1:
\usepackage[margin={\marginns}in]{geometry}

% Case 2:
% \addtolength{\topmargin}{{\marginns}in}

% Case 3:
% \let\rmarginns{\marginns}
% \addtolength{\topmargin}{{\rmarginns}in}

在下面情况1

("C:\Program Files\MiKTeX 2.9\tex/latex/geometry\geometry.cfg")
! Missing number, treated as zero.
<to be read again> 
                   {
l.1007 \ProcessOptionsKV[p]{Gm}
                               %

在下面案例 2

! Missing number, treated as zero.
<to be read again> 
                   {
l.23 \addtolength{\topmargin}{{\marginns}in}

在下面案例 3

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.30 \let\rmarginns{\marginns
                             }

我最好的猜测是,问题与何时pgfmathrandomitem可以真正产生随机项有关,但我不知道该怎么做。有没有办法解决这个问题,或者有另一种允许在文档标题中进行随机化的随机化机制?

答案1

扩展和组存在一些问题 - 这在 LaTeX 中总是很棘手。这里的解决方案是将单位放入列表中:

% randocls.cls
\LoadClass{article}
\usepackage{pgffor}

\pgfmathdeclarerandomlist{marginmargins}{{0.0in}{0.25in}{0.5in}{0.75in}}
\pgfmathrandomitem{\marginns}{marginmargins}

% Case 1:
\usepackage[margin=\marginns]{geometry}
\documentclass{randocls}
\begin{document}
margin: \marginns
\end{document}

在此处输入图片描述

相关内容