سؤال

أنا أتطلع لتبسيط بلدي سيف إنشاء المستندات ، وأود أن أسمع عن الإعدادات الحالية للناس. أشعر أن الكأس المقدسة تذهب إلى شيء من هذا القبيل:

  • تحرير رمز RNW على نصف الشاشة
  • تجميع مفاتيح واحد يجمع مستند Sweave ويقوم بتشغيل pdflatex
  • عرض PDF على النصف الآخر من الشاشة ؛ بمجرد تجميعها ، يتم تحديث PDF وتركز حول جزء المستند الذي تقوم بتحريره
  • إذا كان للتجميع أخطاء ، استبدل PDF بنتائج التجميع (مثل أخطاء اللاتكس أو أخطاء Sweave)

أنا أظن/آمل أن يكون الحل جزءًا من emacs/ess مع بعض التعليمات البرمجية لملف تعريف emacs و/أو makefile لطيفة. لكنني أود حقًا أن أسمع عن الطريقة المفضلة للجميع لإنشاء مستندات Sweave و/أو LaTex.

هل كانت مفيدة؟

المحلول

عدد قليل من مستخدمي R الآخرين الذين تحدثت إليهم لاستخدام إعداد "دليل واحد لكل مشروع" ، وصنع بسيط. كما تشتبه ، هذا يعمل بشكل جيد مع emacs/ess.

أميل إلى فقط استدعاء نص شل بسيط sweave الذي كتبته من قبل قبل إضافة "R CMD Sweave" (حيث أجد إعادة إنشاء أو نسخ Makefile غير جذاب ، YMMV). أستخدم أيضًا EMACs ومشاهد PDF المنعش التلقائي (مثل okular أو kpdf). يمكن لـ EMACS23 معاينة ملفات PDF مباشرةً ولكن لا يزال يتعين عليّ تشغيل تدفق عملي إلى ذلك.

edd@ron:~$ cat bin/sweave
#!/bin/bash -e

function errorexit () {
    echo "Error: $1"
    exit 1
}

function filetest () {
    if [ ! -f $1 ]; then
       errorexit "File $1 not found"
    fi
    return 0
}


if [ "$#" -lt 1 ]; then
    errorexit "Need to specify argument file"
fi


BASENAME=$(basename $1 .Rnw)

RNWFILE=$BASENAME.Rnw
filetest $RNWFILE
echo "library(tools); Sweave(\"$RNWFILE\")" \
      | R --no-save --no-restore --slave

LATEXFILE=$BASENAME.tex
filetest $LATEXFILE && pdflatex $LATEXFILE

نصائح أخرى

يمكنك أن تفعل كل ما تقترحه هناك باستخدام المكون الإضافي Statet لـ Eclipse. هذا ما أستخدمه لتطوير Sweave ؛ إنه يفهم كلا من اللاتكس و R جيدًا ، بما في ذلك تسليط الضوء على بناء الجملة ، إلخ.

يمكنك الحصول عليه هنا: http://www.walware.de/goto/statet.

كتب Longhow Lam دليلًا لطيفًا: http://www.splusbook.com/rintro/r_eclipse_statet.pdf.

http://www.statalgo.com/؟p=93

أنا أستعمل Texshop على OS X لإنتاج كل تقارير اللاتكس والسويف. بالنسبة لي ، يكون خط أنابيب التجميع الجديد بسيطًا مثل إضافة ملف يسمى Sweave.engine إلى ~/Library/TeXShop/Engines/ الذي يحتوي على ما يلي:

#!/usr/bin/env Rscript
args <- commandArgs(T)

fname <- strsplit(args[1],'\\.')[[1]][2]

Sweave(paste(fname,'Rnw',sep='.'))

system(paste('pdflatex',paste(fname,'tex',sep='.')))

Sweave هي الآن طريقة قابلة للاختيار لتجميع مستند داخل Texshop. يمكنني تعيينه ليكون الافتراضي لمستند عن طريق إضافة Tex Hash-Bang التالي إلى الجزء العلوي من الملف:

% !TEX TS-program = Sweave

سيؤدي ضرب CMD-T إلى تكوين المستند- تظهر PDF تلقائيًا في نافذة منفصلة. يتضمن Texshop أيضًا Synctex التكنولوجيا بحيث تنقر CMD في مصدر RNW سوف يسلط الضوء على الإخراج المقابل في نافذة PDF وسيقوم بنقرة CMD في نافذة PDF الضوء على الإدخال المقابل في مصدر RNW.

Texshop هو Mac فقط ولكن استنساخ QT/poppler رائع ، Texworks, ، متاح لـ Linux و Windows و Mac ويدعم العديد من الميزات نفسها-بما في ذلك Bangs Tex Hash و SyncTex. وصل Texworks إلى مستوى من النضج حيث يتم تضمينه في الإصدار 2.8 من Miktex حزمة لنظام التشغيل Windows.

محاولة rstudio.

لقد كنت من محبي emacs و Texshop كما ذكر في الإجابات السابقة.

ومع ذلك ، بدأ Rstudio في الفوز بي. إنها شركة IDE المخصصة التي تم تحفيزها بسرعة لـ R. بالتأكيد تستحق التحقق.

ما زلت أحب القيام ببعض مهام التطوير R فقط في قياسي R ide لل ماك. ولكن بالنسبة لمستندات Sweave وبعضها المرتبط بتطوير R في نفس الوقت ، يفوز Rstudio. إنه يعمل مع تغيير الصفر تقريبًا. لست متأكدًا من الميزات المتعلقة بـ PDF في النصف الأخير من السؤال الأصلي.

الشيء الوحيد الذي أنقذني في بعض الوقت هو وضع "الإدخال التلقائي" في EMACs. لقد قمت بإعداده بحيث في كل مرة أقوم فيها بفتح ملف .rnw جديد ، يقوم EMAC تلقائيًا بإعداد قالب مستند أساسي وكل ما أحتاج إليه هو البدء في كتابة تقريري.

تحديث: لقد تبتعد عن إشراف تلقائي. الآن يمكنني استخدام نهج "template.el".

أستخدم "دليل واحد لكل مشروع" ونهج Makefile أيضًا. أقوم أيضًا بتضمين أوامر لإنشاء الإخراج في HTML ، والتي يمكن تحويلها بعد ذلك إلى OOO و MS Word ، باستخدام TTH. هذا أمر مهم بالنسبة لي لأن الكثير من متعاوناتي هم مستخدمي MS Office ومقاومون لاستخدام إخراج PDF. لقد تعلمت الكثير عن كيفية القيام بذلك من Twiki من فرانك هاريل في فاندربيلت.

أنا شخصياً أستخدم GVIM كمحرر المفضل لدي والجري صنع من هناك بسيطة للغاية ، كما هو من emacs.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top