我正在尝试创建一个具有随机样式属性的文档类,这些属性在编译时确定。理想情况下,随机属性应包括:
- 边距
- 行间距
- 字体选择
对于我的特定用例,文档内的引用通常没有用/不是设计约束,因此无需担心布局在编译过程中是否一致。
\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}