我想在組織文件中定義一個緩衝區寬度變量,並稍後使用此變量的值來爲例如乳膠導出定義圖像的寬度。Emacs組織模式:在緩衝區和訪問變量中定義變量
有沒有辦法如何做到這一點?
這可以使用#+CONSTANTS:
完成嗎?
在理想情況下,應該這樣工作:
我在緩衝器中,例如定義一個變量image_width
image_width=10
,並使用在此變量爲#+ATTR_LATEX:
設置,例如,#+ATTR_LATEX: :width $image_width
。
我想在組織文件中定義一個緩衝區寬度變量,並稍後使用此變量的值來爲例如乳膠導出定義圖像的寬度。Emacs組織模式:在緩衝區和訪問變量中定義變量
有沒有辦法如何做到這一點?
這可以使用#+CONSTANTS:
完成嗎?
在理想情況下,應該這樣工作:
我在緩衝器中,例如定義一個變量image_width
image_width=10
,並使用在此變量爲#+ATTR_LATEX:
設置,例如,#+ATTR_LATEX: :width $image_width
。
在.emacs中定義一個變量。就像你如何定義一個函數一樣,你可以將一個變量綁定到某個值。你可以根據你想要的來做setq或defvar,defconst。對於一個實例:
(setq圖像寬度10)
確保您設置的變量後,EVAL-緩衝區。
兩種方法(未經測試),如果你希望你的常數爲緩衝區具體:你的組織文件的
「局部變量(S)」在過去的8線(左右);
使用組織 「#+宏:」 功能
我試過你的方法,並定義了宏##MACRO:image_width 16'。在純文本的組織文件中,這是完美的,並且如預期的那樣'{{{image_width}}}'將在導出的文件中被替換爲_16_。但是,當我將它添加到LaTeX屬性(如'#+ ATTR_LATEX :: center:placement [H]:width {{image_width}}} cm'時,我得到了'\ includegraphics [width = {{image_width}}} cm ] {test.png}'而不是'\ includegraphics [width = 16cm] {test.png}'。所以,這不適合我。 – jotsetung
您應該至少報告此功能。我的印象是它應該很好地工作。 – fniessen
您可以使用#+NAME:
標籤聲明一個變量。然後通過將它傳遞到您需要它的src塊中的:var
來使用它。
這將是這個樣子:
#+NAME: instance-id
| abcd |
#+BEGIN_SRC sh :var id=instance-id
echo $id
#+END_SRC
#+RESULTS:
: abcd
#+BEGIN_SRC python :var myvar=instance-id[0, 0]
print myvar
#+END_SRC
#+RESULTS:
: abcd
注意instance-id[0, 0]
在python SRC模塊。我已經將變量聲明爲一個數組,因爲我需要像這樣去引用這個值。
感謝您指出我如何定義一個變量。我怎樣才能得到這個值,即組織文件中的10個值?理想情況下,在導出組織文件之前,實際值應該包含在組織文件**中。 – jotsetung