কীভাবে আর মার্কডাউন পিডিএফে রূপান্তর করবেন?


127

আমি এর আগে আর মার্কডাউনকে এইচটিএমএলে রূপান্তর করার জন্য কমান্ডগুলি সম্পর্কে জিজ্ঞাসা করেছি ।

আর মার্কডাউন ফাইলগুলি পিডিএফ ডকুমেন্টে রূপান্তর করার একটি ভাল উপায় কী?

একটি ভাল সমাধান সামগ্রীতে যতটা সম্ভব সংরক্ষণ করে (যেমন, চিত্র, সমীকরণ, এইচটিএমএল সারণী, ইত্যাদি)। সমাধানটি কমান্ড-লাইন থেকে চালানো সক্ষম হতে হবে। একটি ভাল সমাধান হ'ল ক্রস প্ল্যাটফর্ম এবং আদর্শভাবে নির্ভরযোগ্যতাগুলি হ্রাস করে মেকফিলগুলি আরও ভাগ করে নেওয়া সহজ করে তোলে forth

বিশেষত, অনেকগুলি বিকল্প রয়েছে:

  • আরএমডিকে এমডি থেকে এইচডিএমএল পিডিএফে রূপান্তর করতে হবে; বা এমডি থেকে পিএমএল থেকে আরএমডি; অথবা পিডিএফ থেকে আরএমডি করুন
  • যদি markdownপ্যাকেজটি আর ব্যবহার করে তবে কোন বিকল্পগুলি নির্দিষ্ট করতে হবে
  • ব্যবহার করতে হবে pandoc, আর এর মধ্যে নির্মিত একটি প্যাকেজ, বা অন্য কিছু

এখানে একটি উদাহরণ রয়েছে আরএমডি ফাইল যা সম্ভবত প্রস্তাবিত সমাধানের যুক্তিসঙ্গত পরীক্ষা সরবরাহ করে। এটি এই ব্লগ পোস্টের ভিত্তি হিসাবে ব্যবহৃত হয়েছিল ।


7
আমি বিশ্বাস করি প্যান্ডোকটি সবচেয়ে ভাল উপায় হওয়া উচিত। এটিকে আর-তে তৈরি করা আমার পক্ষে খুব বেশি অর্থবোধ করে না এবং আমি মনে করি না এটি সম্ভবও হয় (এটি হাস্কেলের মধ্যে লেখা)। আমার এখানে খুব প্রাথমিক কাজ রয়েছে: github.com/yihui/knitr-book (দুটি শেল স্ক্রিপ্ট দেখুন knitএবং mdconvert.sh)। ল্যাটেক্স খুব নমনীয় হওয়ায় সাধারণ দৃষ্টিভঙ্গি প্রকাশ করা কঠিন হতে পারে; প্যান্ডোকের জন্য আপনি সমস্ত ধরণের টেম্পলেট ব্যবহার করতে পারেন।
ইহুই জাই

'আর মার্কডাউন * কী? rstudio.com/ide/docs/r_markdown
কর্নেল আতঙ্ক

চিহ্নিত সাইটটি আসলে বেশ ভাল op যাইহোক, কোনও ক্ষীর সমর্থন নেই
পাদওয়ান

আমরা কি এই উত্তরটি আরস্টুডিও ভি 1.0 এর জন্য আপডেট করতে পারি?
আদম_জি

উত্তর:


69

আপডেট উত্তর (10 ফেব্রুয়ারী 2013)

rmarkdown প্যাকেজ : গিথুবে এখন rmarkdownপ্যাকেজ উপলব্ধ রয়েছে যা প্যান্ডোকের সাথে ইন্টারফেস করে। এটি একটি renderফাংশন অন্তর্ভুক্ত । ডকুমেন্টেশনটি আরও স্পষ্ট করে তোলে যে কীভাবে রমার্কডাউনটিকে অন্য ফর্ম্যাটের একটি ব্যাপ্তির মধ্যে পিডিএফ রূপান্তর করতে হয়। এর মধ্যে রমারডাউন ফাইলটিতে আউটপুট ফর্ম্যাটগুলি অন্তর্ভুক্ত বা রেন্ড ফাংশনে একটি আউটপুট ফর্ম্যাট সরবরাহ করা অন্তর্ভুক্ত। যেমন,

render("input.Rmd", "pdf_document")

কমান্ড-লাইন: যখন আমি কমান্ড-লাইনrender থেকে চালিত (যেমন, একটি মেকফাইল ব্যবহার করে), আমার মাঝে মাঝে প্যানডোকের সন্ধান না পাওয়ায় সমস্যা হয়। সম্ভবত, এটি অনুসন্ধানের পথে নয়। নীচের উত্তরটি কীভাবে আর পরিবেশে পান্ডোক যুক্ত করতে পারে তা ব্যাখ্যা করে

সুতরাং উদাহরণস্বরূপ, আমার কম্পিউটারে চলমান ওএসএক্সে, যেখানে আরস্টুডিওর মাধ্যমে আমার কাছে প্যান্ডোকের একটি অনুলিপি রয়েছে, আমি নিম্নলিখিতটি ব্যবহার করতে পারি:

Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown);  library(utils); render('input.Rmd', 'pdf_document')"

পুরানো উত্তর (প্রায় 2012)

সুতরাং, বেশিরভাগ লোক পরামর্শ দিয়েছেন যে পান্ডোক যাওয়ার উপায়। প্যান্ডোকের একটি আধুনিক সংস্করণ থাকার গুরুত্ব সম্পর্কে নীচের নোটগুলি দেখুন।

প্যান্ডোক ব্যবহার

আর মার্কডাউনকে এইচটিএমএলে রূপান্তর করতে আমি নীচের কমান্ডটি ব্যবহার করেছি (অর্থাত্ এই মেকফিলের একটি রূপ ), যেখানে উপাদান RMDFILEছাড়াই আর মার্কডাউন ফাইলের নাম রয়েছে .rmd(এটিও ধরে নিয়েছে যে এক্সটেনশনটি রয়েছে .rmdএবং না .Rmd)।

RMDFILE=example-r-markdown  
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"

এবং তারপর পিডিএফ রূপান্তর করার জন্য এই কমান্ড

Pandoc -s example-r-markdown.html -o example-r-markdown.pdf


এই সম্পর্কে কয়েকটি নোট:

  • আমি উদাহরণের ফাইলটিতে রেফারেন্সটি সরিয়েছি যা ইমেজগুলিতে ইমেগারে প্লট রফতানি করে।
  • আমি ইমেগারে হোস্ট করা কোনও চিত্রের একটি রেফারেন্স সরিয়েছি। চিত্রগুলি স্থানীয় হওয়া প্রয়োজন বলে মনে হয়।
  • markdownToHTMLফাংশনের বিকল্পগুলির অর্থ ইমেজ রেফারেন্সগুলি হ'ল এইচটিএমএল ফাইলগুলিতে সংরক্ষিত ডেটা নয়, অর্থাৎ আমি মুছে ফেলেছি files'base64_images' বিকল্প তালিকা থেকে )।
  • ফলাফল আউটপুট এই মত দেখাচ্ছে । আমি ব্রাউজার থেকে পিডিএফ-তে এইচটিএমএল ফাইল প্রিন্ট করি তবে আমি যা পাই তার বিপরীতে এটি স্পষ্টভাবে একটি খুব ল্যাকেক্স স্টাইল নথি তৈরি করেছে।

প্যান্ডোকের আপ টু ডেট সংস্করণ পাওয়া যাচ্ছে

@Daroczig দ্বারা উল্লিখিত হিসাবে, পিডিএফএস আউটপুট পেতে প্যান্ডোকের একটি আধুনিক সংস্করণ থাকা জরুরী। ১৫ ই জুন ২০১২ পর্যন্ত উবুন্টুতে, আমি প্যাকেজ ম্যানেজারে প্যান্ডোকের ১.৮.১ সংস্করণ দিয়ে আটকেছিলাম, তবে এটি পরিবর্তন লগ থেকে মনে হয় পিডিএফ সমর্থনের জন্য আপনাকে কমপক্ষে প্যান্ডোকের 1.9+ সংস্করণ প্রয়োজন

সুতরাং, আমি ইনস্টল caball-install। এবং তারপরে দৌড়ে:

cabal update
cabal install pandoc

পান্ডোক ইনস্টল করা হয়েছিল ~/.cabal/bin/pandoc এইভাবে, যখন আমি দৌড়েছিলাম pandocতখনও এটি পুরানো সংস্করণটি দেখছিল । পথে যোগ করার জন্য এখানে দেখুন ।


5
এই উত্তরের জন্য ধন্যবাদ। আমি কেবল মন্তব্য করতে চাই যে আমার অভিজ্ঞতা হ'ল .html ফাইলের চেয়ে প্যানডোককে .md ফাইল দেওয়ার চেয়ে আরও ভাল আউটপুট দেওয়া হয়েছিল। সুতরাং এটি পরীক্ষা করা মূল্যবান।
yoavram

এটি আমি খুব ভাল প্রক্রিয়াতেও এসেছি সবচেয়ে কাছের। "প্লট খণ্ড ..." থেকে চিত্রের পাঠ্যকে অন্য কোনও কিছুর পরিবর্তনের কোনও উপায় আছে?
svenski

1
pandocএমনকি আমার এখন পুরানো উবুন্টু ১৩.০৪ সংস্করণে 1.12 সংস্করণে রয়েছে।
krlMLr

22

আমি তোমাদের সত্যিই প্রয়োজন মনে pandoc , যা মহান সফ্টওয়্যার পরিকল্পিত এবং নির্মিত হয়েছিল শুধু এই কাজের জন্য :) এছাড়া পিডিএফ , আপনি আপনার রূপান্তর করতে পারে MD যেমন ফাইল DOCX বা odt প্রমুখ।

ঠিক আছে, প্যান্ডোকের একটি আধুনিক সংস্করণ ইনস্টল করা লিনাক্সে চলমান হতে পারে (যেমন আপনার সম্পূর্ণ প্রয়োজন হবেhaskell-platform উত্স থেকে নির্মাণের ), তবে উইন্ডোজ / ম্যাকের জন্য খুব সহজেই কেবল কয়েক মেগাবাইট ডাউনলোড করা সহজ।

আপনার যদি ব্রেড / বোনা মার্কডাউন ফাইল থাকে তবে আপনি কেবল কল করতে পারেন pandocযেমন বাশ বা systemআর এর মধ্যে ফাংশনটি সহ that লটারটির একটি পোক ডেমো Ṗandoc.convertআমার ছোট প্যাকেজের ফাংশনে প্রয়োগ করা হয়েছে ( যা করার চেষ্টা করার সাথে সাথে আপনাকে অবশ্যই ভয়ঙ্কর উদাস হতে হবে) প্রতিটি সুযোগ সেখানে আপনার মনোযোগ ইঙ্গিত )।


+1 ফাংশনটি ভাল দেখাচ্ছে; আর মার্কডাউনকে পিডিএফে রূপান্তর করার জন্য আপনার কাছে কি প্রস্তাবিত ওয়ান-লাইনার প্যান্ডোক কমান্ড রয়েছে?
জেরোমি অ্যাংলিম

1
যুক্ত করা --tocকমান্ড লাইনে কার্যকর হবে (যার ফলে আপনার শিরোনামের উপর ভিত্তি করে বিষয়বস্তুর একটি নিক টেবিল আসে) এবং আপনার প্রয়োজনের জন্য লটেক্স টেমপ্লেটটি কাস্টমাইজ করা (যেমন সেখানে যুক্ত করা \listoffiguresএবং / অথবা \listoftablesইত্যাদি) বিস্ময়কর নথির ফলস্বরূপ হতে পারে।
দারোকজিগ

3
কি সম্পর্কে চ্যালেঞ্জিং apt-get install pandoc?
sumid

@ সুমিড আপনি হয়ত আপ-টু-ডেট অংশটি মিস করেছেন (ভাল, আপনি যদি পরীক্ষাটি ব্যবহার না করে থাকেন)।
দারোকজিগ

হ্যাঁ আপনি ঠিক বলেছেন - দুবার। আমি এটি মিস করেছি এবং আমি টেস্টিংও ব্যবহার করছি ;-) তারপরে আমি টেস্টিংয়ের অনুমতি দেওয়া sources.listএবং apt-get install -t testing pandocইনস্টল করা haskell-platformএবং সংকলন করার পক্ষে আরও সহজ অস্থায়ী হিসাবে বুঝতে পারি । (সাধারণত আমি পরীক্ষামূলকভাবে এটি করি I আমি আশা করি পরীক্ষায় একই পদ্ধতিতে কাজ করা হবে))
সমষ্টি করুন

14

এখনই (আগস্ট 2014) আপনি আর মার্কডাউনকে পিডিএফে রূপান্তর করার জন্য আরস্টুডিও ব্যবহার করতে পারেন । মূলত, আরস্টডিও আরএমডি পিডিএফে রূপান্তর করতে প্যান্ডোক ব্যবহার করে ।

আপনি মেটাডেটা এতে পরিবর্তন করতে পারেন:

  1. সামগ্রীর সারণী যুক্ত করুন
  2. চিত্রের বিকল্পগুলি পরিবর্তন করুন
  3. সিনট্যাক্স হাইলাইটিং স্টাইল পরিবর্তন করুন
  4. ল্যাটেক্স বিকল্পগুলি যুক্ত করুন
  5. এবং আরো অনেক...

আরও তথ্যের জন্য - http://rmarkdown.rstudio.com/pdf_docament_format.htmlএখানে চিত্র বর্ণনা লিখুন


1
'বোনা পিডিএফ' বিকল্পটি উবুন্টু 14.04, প্যানডোক ভি 1.17.1 এ উপলব্ধ নয়। কোনও সেটিংস করার দরকার আছে কি?
প্রাদেপ

আপনার কাছে আরস্টুডিওর কোন সংস্করণ রয়েছে? আপনি একটি নতুন rmarkdown ফাইল তৈরি করেছেন?
জোট ইএন

Rstudio - বনাম 0.98.507
প্রডেপ


@ প্ররেপ কথোপকথনের ফলাফল কী ছিল?
nealmcb

10

এমন কোনও বিকল্পের জন্য যা আপনি ব্রাউজার থেকে মুদ্রণ করার সময় যা পান তার চেয়ে বেশি দেখতে দেখতে wkhtmltopdfএকটি বিকল্প সরবরাহ করে।

উবুন্টুতে

sudo apt-get install wkhtmltopdf

এবং তারপরে এইচটিএমএল পেতে প্যান্ডোক উদাহরণ হিসাবে একই কমান্ড:

RMDFILE=example-r-markdown  
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"

এবং তারপর

wkhtmltopdf example-r-markdown.html example-r-markdown.pdf

ফলে ফাইল মতো লাগছিল এই । এটি ম্যাথজ্যাক্সকে পরিচালনা করার মতো মনে হয়নি ( এই বিষয়টি এখানে আলোচনা করা হয়েছে ) এবং পৃষ্ঠাটির বিরতিগুলি কুৎসিত। যাইহোক, কিছু ক্ষেত্রে, এই জাতীয় শৈলী আরও ল্যাকএক্স শৈলীর উপস্থাপনার চেয়ে বেশি পছন্দ করা যেতে পারে।


আমি আরস্টুডিওতে শেষ কমান্ডটি চালাতে পারছি না। system("wkhtmltopdf temp.html temp.pdf") কীভাবে এটি ঠিক করা যায় সে সম্পর্কে আমি কোনও ধারণার চেষ্টা করেছি
উরভা শব্বির

9

মাত্র দুটি পদক্ষেপ:

  1. এখান থেকে সর্বশেষ প্রকাশের "প্যান্ডোক" ইনস্টল করুন:

    https://github.com/jgm/pandoc/releases

  2. মধ্যে ফাংশন কল pandocকরুনlibrary(knitr)

    library(knitr)
    pandoc('input.md', format = 'latex')
    

সুতরাং, আপনি আপনার "ইনপুট.এমডি" কে "ইনপুট.পিডিএফ" তে রূপান্তর করতে পারেন।


3

আমি সবচেয়ে সহজ উপায় আর স্টুডিও ব্যবহার করে খুঁজে পেয়েছি, কিন্তু যদি কমান্ড লাইন থেকে নিয়ন্ত্রণ করতে চান, তবে একটি সাধারণ আর স্ক্রিপ্ট রমার্কডাউন রেন্ডার কমান্ড ব্যবহার করে কৌশলটি করতে পারে (উপরে বর্ণিত হিসাবে)। এখানে সম্পূর্ণ স্ক্রিপ্টের বিশদ

#!/usr/bin/env R

# Render R markdown to PDF.
# Invoke with:
# > R -q -f make.R --args my_report.Rmd

# load packages
require(rmarkdown)

# require a parameter naming file to render
if (length(args) == 0) {
    stop("Error: missing file operand", call. = TRUE)
} else {
    # read report to render from command line
    for (rmd in commandArgs(trailingOnly = TRUE)) {
        # render Rmd to PDF
        if ( grepl("\\.Rmd$", rmd) && file.exists(rmd)) {
            render(rmd, pdf_document())
        } else {
            print(paste("Ignoring: ", rmd))
        }
    }
}

0

আপনি যদি কিছু ইনস্টল করতে না চান তবে আপনি এইচটিএমএল আউটপুট করতে পারেন। তারপরে এইচটিএমএল ফাইলটি খুলুন - এটি ব্রাউজার উইন্ডোতে খোলা উচিত, তারপরে মুদ্রণের জন্য ডান ক্লিক করুন। মুদ্রণ উইন্ডোতে, আপনি যদি কোনও ম্যাকের উপরে থাকেন তবে নীচের ডানদিকে কোণায় "পিডিএফ হিসাবে সংরক্ষণ করুন" নির্বাচন করুন। ভাল খবর!


0

এই সাধারণ পদক্ষেপগুলি অনুসরণ করুন:

1: রমার্কডাউন স্ক্রিপ্টে নিট (সিটিআরএল + শিফট + কে) চালান 2: তারপরে এইচটিএমএল মার্কডাউন খোলার পরে ব্রাউজারে ওপেন ক্লিক করুন (উপরের বাম দিকে) এবং এইচটিএমএল আপনার ওয়েব ব্রাউজারে খোলা আছে 3: তারপরে Ctrl + P এবং ব্যবহার করুন পিডিএফ হিসাবে সংরক্ষণ করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.