2011-04-07 77 views
1

我使用乳膠書寫文章,並且常常因爲制定名稱應該出現在作者列表中的順序而煩惱 - 它可能導致過早發生爭論,而當您沒有需要他們。Randomise Latex中的作​​者姓名

我想知道是否有乳膠特徵/ snippit,他們會讓我輸入作者及其詳細信息,但每次膠乳編譯時都會隨機排列順序。所以我的名字可能是第一個版本,然後當我重新編譯時,它會是其他人的名字。

我該如何開始?

+1

只需按字母順序進行排序,並有請注意,明確指出這一點。這將避免爭論,並且運氣不佳,Zumberg! – abcd 2011-04-07 14:32:58

+0

我應該澄清...我的意思是說,隨機函數你可以在那裏有名字,但沒有任何確定的順序。我們的想法是,當我們坐下來結束討論訂單時,沒有任何設想。我並沒有打算在最終提交的文件中隨意命名:) – Joe 2011-04-09 08:31:39

回答

2

您可以使用PerlTex來完成此操作。通過在LaTex文檔中嵌入一些Perl代碼,您可以輕鬆隨機化作者姓名。 This link顯示如何做到這一點。我沒有測試過那裏顯示的代碼是否真的有效,但是原理應該清楚。

1

probsoln包中有一些隨機數的東西。這裏有一些可能讓你開始的東西:

\documentclass{article} 
\usepackage{probsoln} 
\PSNrandseed{\time} 
\begin{document} 
\doforrandN{3}{\who}{Fred,Barry,Joe}{ 
\who 
} 
\end{document} 

請注意種子似乎只改變一次每分鐘。

0

pgfmath包允許您創建一些列表數據結構。然後你可以對它們實施一個knuth洗牌。請參閱this post on pgf-users from 2009

pgfmathtikz的一部分,但獨立於其工作。

+0

順便說一句,您可以在[TeX StackExchange](http://tex.stackexchange.com/)上找到整個社區,其中沒有TeX相關的問題太小。 – 2011-04-07 14:45:00

+0

酷!我不知道,謝謝! – Joe 2011-04-07 19:46:16

0

我相信這是一個壞主意,因爲用戶可以簡單地重新編譯 ,直到他喜歡這個順序。該訂單應隨機化一次, 隨機驗證所有參與者。

獲取和大家在一起,然後抽籤,或者使用一些簡單的腳本是這樣的:

(defun random-order (&rest items) 
    (when items 
    (let ((this (elt (random (length items)) items))) 
     (cons this 
      (random-order (remove this items 
            :test #'equal)))))) 

(random-order "Gimme Gimme" "Me First" "Allim Portant") 

(你可以使用任何你想要,當然任何一種語言。)