2009-07-31 163 views
255

在LaTeX中,如何定義一個字符串變量,其內容被使用而不是編譯後的PDF中的變量?有什麼辦法可以在LaTeX中定義一個變量?

假設我正在編寫一個軟件上的技術文檔,我想在序言或某個地方定義軟件包名稱,以便如果名稱更改,我不必在很多地方替換它,但是隻在一個地方。

+2

對於巨大的內容,值得一提\ savebox(https://en.wikibooks.org/wiki/LaTeX/Boxes#savebox)。 – 2013-07-13 12:44:14

回答

263

以下內容添加到您序言:

\newcommand{\newCommandName}{text to insert} 

然後,你可以使用\newCommandName{}文本

欲瞭解更多信息的\newcommand,例如見wikibooks

+10

您也可以只使用``\ newCommandName`` – dialex 2012-06-18 14:31:45

+16

@DiAlex在省略大括號時要小心,因爲它會在插入文本之後影響空格。看[這個問題](http://tex.stackexchange.com/q/31091)。 – jtpereyda 2012-07-20 17:30:55

+0

我無法使用非ASCII字符正確工作。有任何想法嗎? – lindhe 2016-01-15 20:29:59

24

爲了描述的距離變量,你可以使用\newlength(與\setlength\addlength\settoheight\settolength\settodepth操縱值)。

同樣,您可以訪問\newcounter,以查看應在文檔中增加的部分和圖號等內容。我過去曾經使用過這個代碼樣本,這些代碼樣本被獨立編號爲其他數字...

另外值得注意的是\makebox它允許您存儲一些佈局文檔以供以後重新使用並與\settolength一起使用...)。

136

使用\def命令:

\def \variable {Something that's better to use as a variable} 

注意\def覆蓋已有的宏沒有任何警告,並因此可能導致各種細微的錯誤。爲了克服這個問題,可以使用名稱空間變量,如my_var,或者使用\newcommand\renewcommand命令。

1

我想你可能想使用一個令牌列表用於此目的: 設置令牌列表 \newtoks\packagename 指定名稱: \packagename={New Name for the package} 把名字變成你的輸出: \the\packagename

相關問題