संक्षिप्त और कुशल Googling के बाद, मैं this link मिल जाती है और पहली नजर में, सब कुछ ठीक लगता है, लेकिन pdf फ़ाइल Sweaving के बाद ठीक से प्रदर्शित हो जाता है ... तो मैं एक और तरीका है चारों ओर इस समस्या को घेरने की कोशिश की: जब संदेह में, जाना bash! मैंने here उपलब्ध डिर्क की स्वीवे बैश स्क्रिप्ट से त्रुटि जांच फ़ंक्शन को बेकार कर दिया है। असल में, यह एक समाधान नहीं है: R CMD Sweave
पर .Rnw फ़ाइल, इसलिए लेटेक्स, में आता है और pdflatex उसके बाद निष्पादित हो जाता है ...
मुझे लगता है कि मेरे लिए काम करता है एक bash स्क्रिप्ट पोस्ट करेंगे । मुझे यह अवश्य कहना चाहिए कि मैं एक उन्नत बैश प्रोग्रामर नहीं हूं, इसके अलावा मैं व्यवसाय द्वारा प्रोग्रामर भी नहीं हूं, इसलिए एक शानदार मौका है कि इस स्क्रिप्ट को अनुकूलित/सही तरीके से लिखा जा सकता है।यहाँ जाता है:
#!/bin/bash
FILEBASE=${1%.*}
FILEXT=${1##*.}
FILEPATH=${1%/*}
TEXFILE=$FILEBASE.tex
PDFFILE=$FILEBASE.pdf
# errorexit
function errorexit() {
echo "Error: $1"
exit 1
}
# check if file exists
if [ ! -f $1 ]; then
errorexit "File $1 not found!"
else
# check for filename length
if [ ${#1} -lt 1 ]; then
errorexit "Need to specify argument file!"
else
# if filelength OK, check extension
if [ $FILEXT != "Rnw" ]; then
errorexit "You must pass Sweave (.Rnw) file!"
# finally, run Sweave
else
cd $FILEPATH && R CMD Sweave $1
# latex $TEXFILE
pdflatex $TEXFILE
# xdg-open $PDFFILE
fi
fi
fi
फिर बचाने/कॉपी/echo $PATH
फ़ोल्डर (मैं /usr/bin/
में मेरा रखने के लिए) में से किसी में इस स्क्रिप्ट ले जाते हैं, और यकीन है कि यह sweave नाम है, या जो भी नाम आप की तरह का चयन किया है, फिर डाल अपने .emacs में इन पंक्तियों के फ़ाइल:
(global-set-key (kbd "C-c s")
(lambda()
(interactive)
(shell-command (concat "sweave " buffer-file-name))))
बेशक
, आप अपनी आवश्यकताओं सूट, औरमें रखा स्क्रिप्ट नाम के साथ sweave बदलने के लिए सुनिश्चित करने के लिए कोई कीबाइंडिंग पर बदल सकता है 10।
ध्यान रखें कि यह कोई जवाब नहीं है, लेकिन एक कामकाज है। यदि आपको ऑक्टेक्स/ईएसएस/स्वीवे एकीकरण से निपटने का कोई तरीका मिला है, तो इसे पोस्ट करें, और मैं इसे एक चेकमार्क दूंगा।
इस कामकाज से पहले, मुझे M-n s
को स्वीवे में करना पड़ा, उसके बाद C-c C-c
जो लाटेक्स फ़ाइल संकलन के लिए ऑक्टेक्स में डिफ़ॉल्ट कीबाइंड है। निर्मित फाइल गलत है, इसलिए मुझे इसे बैश के साथ आज़मा देना पड़ा। यह मेरे लिए काम करता है, अगर आपके पास कोई सुझाव है, तो कृपया मुझे बताएं।
सधन्यवाद,
aL3xa
संपादित करें:
सम्मिलित किया गया cd $FILEPATH
पहले एक के बारे में जानकारी के लिए धन्यवाद। मैं 'sweave.sty' फ़ाइल को '/ usr/share/texmf-dist/tex/latex/sweave' में डालकर इसे करने में कामयाब रहा, इसलिए डेटाबेस को 'texconfig' से अद्यतन कर रहा था। तो यह मुझे # 2 के साथ छोड़ देता है। बीटीडब्ल्यू, मैंने आपकी स्क्रिप्ट को SO पर देखा, और मैं दौड़ने के लिए बैश कमांड को बाध्य करने के बारे में सोच रहा हूं। जब तक मैं AucTeX भाग को कैसे निष्पादित करता हूं, तब तक कामकाज के रूप में नहीं। – aL3xa