কীভাবে সরল পাঠ্যে বাক্স এবং টেবিল আঁকবেন


42

অনেকগুলি সরল পাঠ্য নথিতে, বাক্স অঙ্কন অক্ষরগুলি চিত্রগুলি এবং টেবিলগুলিতে এই বাক্সগুলি আঁকতে ব্যবহৃত হয়। এই জাতীয় উদাহরণগুলি ( আরএফসি 5766 থেকে ) নীচে দেখানো হয়েছে। এটি ( উদাহরণস্বরূপ, একটি ইউনিক্স কমান্ড লাইন সরঞ্জাম) আঁকার আরও ভাল উপায় কি ট্রায়াল-অ্যান্ড-ত্রুটি পদ্ধতি ব্যবহার না করে?


আরএফসি 5766 থেকে উদাহরণ :

       +----------------------------+---------------------+
       | TURN client to TURN server | TURN server to peer |
       +----------------------------+---------------------+
       |             UDP            |         UDP         |
       |             TCP            |         UDP         |
       |        TLS over TCP        |         UDP         |
       +----------------------------+---------------------+

এবং এটি, আরএফসি 5766 থেকেও :

                                        Peer A
                                        Server-Reflexive    +---------+
                                        Transport Address   |         |
                                        192.0.2.150:32102   |         |
                                            |              /|         |
                          TURN              |            / ^|  Peer A |
    Client's              Server            |           /  ||         |
    Host Transport        Transport         |         //   ||         |
    Address               Address           |       //     |+---------+
   10.1.1.2:49721       192.0.2.15:3478     |+-+  //     Peer A
            |               |               ||N| /       Host Transport
            |   +-+         |               ||A|/        Address
            |   | |         |               v|T|     192.168.100.2:49582
            |   | |         |               /+-+
 +---------+|   | |         |+---------+   /              +---------+
 |         ||   |N|         ||         | //               |         |
 | TURN    |v   | |         v| TURN    |/                 |         |
 | Client  |----|A|----------| Server  |------------------|  Peer B |
 |         |    | |^         |         |^                ^|         |
 |         |    |T||         |         ||                ||         |
 +---------+    | ||         +---------+|                |+---------+
                | ||                    |                |
                | ||                    |                |
                +-+|                    |                |
                   |                    |                |
                   |                    |                |
             Client's                   |            Peer B
             Server-Reflexive    Relayed             Transport
             Transport Address   Transport Address   Address
             192.0.2.1:7000      192.0.2.15:50000     192.0.2.210:49191

                                 Figure 1

2
যদিও এর ইতিমধ্যে প্রচুর উত্তর রয়েছে, আমি মনে করি এটি সম্ভবত সফটওয়্যারসিএস.স্ট্যাকেক্সেক্সঞ্জ.কম এ জিজ্ঞাসা করা উচিত ছিল আমরা এই ধরণের জিনিসটির প্রায়শই উত্তর
দিই


টেবিলগুলির জন্য, আপনি সিএসভি থেকে মার্কডাউন টেবিলগুলিতে যেতে প্যান্ডোক-প্লেসটেবল জাতীয় কিছু ব্যবহার করতে পারেন ... (অথবা আপনার ইনপুটটি এইচটিএমএল বা ডকএক্স হলে কেবল সরল প্যান্ডোক)
এমবি 21

উত্তর:


47

ফ্রি এএসসিআইআইফ্লো ওয়েবসাইট আপনাকে পাঠ্য বাক্স, পাঠ্য, লাইনগুলি, তীরগুলি, ফ্রিফর্ম লাইনগুলি, মুছতে, আমদানি, রফতানি করতে এবং এমনকি পূর্বাবস্থায় ফিরিয়ে আনতে দেয় let আর কি দরকার?

এই সরঞ্জামটি ব্যবহার করে আমার বিস্ময়কর সৃষ্টিটি এখানে:

+-------------------------------+
|                               |
|  My first ASCII box           |
|                               |
+---------+---------------------+
          |
          |
          |
          | My first ever ASCII arrow
          |
          |
          |
+---------v----------------------+
|                                |
|  My second ASCII box           |
+--------------------------------+

সেই ওয়েবসাইটটির অন্যতম অসুবিধা হ'ল ক্লিপবোর্ড হ্যান্ডলিং। আপনি সরাসরি অনুলিপি / পেস্ট করতে পারবেন না। আপনাকে ডান পাশের বোতামগুলির মাধ্যমে এটি করতে হবে।
ইসমাইল মিগুয়েল

5
এছাড়াও 'ডাউনলোড' বোতামটি আমদানি বোতাম হিসাবে পরিণত হয়েছিল। এবং 'আপলোড' বোতামটি রফতানির বোতামে পরিণত হয়েছে। সম্ভবত এটি আমি, কিন্তু এটি সত্যিই বিভ্রান্তিকর ছিল।
মিক্স্সিফয়েড

1
@ মিক্স্সিফয়েড না, এটি আপনিই নন এবং হ্যাঁ, এটি সত্যিই বিভ্রান্তিকর, তবে কাজ করে!
ইসমাইল মিগুয়েল

17

৩০ বছরের পুরানো সরঞ্জামগুলি ব্যবহার করে এ জাতীয় ছবি আঁকানো সম্ভব, যথা পিক যা troffকমান্ড স্যুটটির অংশ part আজকাল gnu এর groffপ্যাকেজে picকমান্ডটি থাকবে। লিঙ্কটি কিছু সাধারণ পোস্টস্ক্রিপ্ট আউটপুটের একটি চিত্র দেখায়, তবে ব্যবহার করে nroffবা উপযুক্ত বিকল্পগুলি আপনি একটি আসকি-আর্ট সংস্করণ পাবেন। উদাহরণস্বরূপ 1991 থেকে ব্যবহারকারী ম্যানুয়াল (পিডিএফ) দেখুন ।

আপনার উদাহরণের টেবিলগুলি সম্ভবত একই কমান্ড স্যুট দ্বারা উত্পাদিত হয়েছে, কেবল tblযা সাধারণ তালিকা থেকে টেবিল তৈরি করে।

একটি জন্য GUI সংস্করণ, আপনি ব্যবহার করতে পারেন artist-modeEmacs মধ্যে বাক্সে এবং arrowed লাইন ইত্যাদি আঁকা, মাউস বা কীবোর্ড ব্যবহার করে। দেখুন ইউটিউব ভিডিও ডেমো।


picগ্রাফভিজের মতো নয় কি dot?
hjpotter92

হ্যাঁ. গ্রাফভিজ পিক ফর্ম্যাটে আউটপুট করতে পারে। আমি মনে করি তারা উভয়ই একই এটিএন্ডটি ইউনিক্স ব্যাকগ্রাউন্ডের, গ্রাফভিজ একটি বিশেষ উদ্দেশ্য অ্যাপ্লিকেশন যা আরও বিকাশ পেয়েছে, যখন পিকটি গি-স্টাইল সরঞ্জামগুলিতে উপায় দিয়েছে।
meuh

10

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

সূর্যের নীচে নতুন কিছু নেই - মাইক্রোগ্রাফি হ'ল লম্বা বংশবিজ্ঞান সহ ক্যালিগ্রাফির একটি উপসেট যা কয়েক শত বছর ধরে ব্যবহৃত হয়, চিঠি তৈরির জন্য চিঠি ব্যবহার করে যেমন নীচের ক্যালেন্ডারের সাথে অক্ষর থেকে তৈরি বেশিরভাগ চিত্র থাকে।

ওমর ক্যালেন্ডার, সোথবাইস


8

আমি কীভাবে এএসসিআইআই টেবিল আঁকতে পারি?

আপনি যদি কেবল এএসসিআইআই টেবিলগুলি আঁকতে চান (যেমন আপনার প্রথম উদাহরণের মতো) কোনও ওয়েব ইউটিলিটির জন্য সমতল পাঠ্য টেবিল জেনারেটর - টেবিলজিনেটর ডট কম দেখুন যা আপনাকে সুন্দর ডেটা সারণী তৈরি করতে সহায়তা করবে:

এখানে চিত্র বর্ণনা লিখুন


3

গিটহাব থেকে টার্মিনাল-টেবিল ব্যবহার করে কমান্ড লাইন থেকে

ইনস্টল করুন terminal-table:

gem install terminal-table

উদাহরণ স্বরূপ:

irb
require 'terminal-table'

rows = []
rows << ['UDP', 'UDP']
rows << ['TCP', 'UDP']
rows << ['TLS over TCP ', 'UDP']
table = Terminal::Table.new :headings => ['TURN client to TURN server', 'TURN server to peer'], :rows => rows

puts table

নমুনা আউটপুট:

+----------------------------+---------------------+
| TURN client to TURN server | TURN server to peer |
+----------------------------+---------------------+
| UDP                        | UDP                 |
| TCP                        | UDP                 |
| TLS over TCP               | UDP                 |
+----------------------------+---------------------+

পাইথন ব্যবহার করে একই আউটপুট পাওয়া যায়:

pip install terminaltables

উদাহরণ স্বরূপ:

from terminaltables import AsciiTable
table_data = [
    ['TURN client to TURN server', 'TURN server to peer'],
    ['UDP', 'UDP'],
    ['TCP', 'UDP'],
    ['TLS over TCP', 'UDP']
]
table = AsciiTable(table_data)
print table.table

1

আমার মধ্যে এটি আছে .vimrc:

vn<silent> <leader>[ :<c-u>cal<sid>rect(1)<cr>
vn<silent> <leader>] :<c-u>cal<sid>rect(2)<cr>
let s:h=split(' ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋','\zs')
let s:e=map(range(81),'[v:val/27%3,v:val/9%3,v:val/3%3,v:val%3]') "base-3 encode
fu s:rect(x) "x:thickness
 if visualmode()!=#"\<c-v>"|retu|en
 let s=&sel|let&sel='inclusive'|let[ls,cs]=[[line("'<"),line("'>")],[virtcol("'<"),virtcol("'>")]]|let&sel=s
 let[l0,l1,c0,c1]=[min(ls),max(ls),min(cs),max(cs)]
 let a=map(map(getline(l0,l1),"split(v:val,'\\zs')"),"extend(v:val,repeat([' '],max([0,c1-len(v:val)])))")
 let x=a:x|let[V,H]=[[x,0,x,0],[0,x,0,x]] "vertical and horizontal line
 "b:list of changes as [line,column,bitmask]
 if l0<l1&&c0<c1|let b=[[l0,c0,[x,0,0,x]],[l0,c1,[x,x,0,0]],[l1,c0,[0,0,x,x]],[l1,c1,[0,x,x,0]]]
                 let b+=map(range(l0+1,l1-1),'[v:val,c0,V]')+map(range(l0+1,l1-1),'[v:val,c1,V]')
                 let b+=map(range(c0+1,c1-1),'[l0,v:val,H]')+map(range(c0+1,c1-1),'[l1,v:val,H]')
 elsei l0<l1    |let b=[[l0,c0,[x,0,0,0]],[l1,c0,[0,0,x,0]]]+map(range(l0+1,l1-1),'[v:val,c0,V]')
 elsei c0<c1    |let b=[[l0,c0,[0,0,0,x]],[l0,c1,[0,x,0,0]]]+map(range(c0+1,c1-1),'[l0,v:val,H]')
 el             |let b=[]|en
 for[l,c,m]in b
  let i=index(s:h,a[l-l0][c-1])
  if i>=0|let z=map(copy(s:e[i]),'max([v:val,m[v:key]])')|let a[l-l0][c-1]=s:h[27*z[0]+9*z[1]+3*z[2]+z[3]]|en
 endfo
 cal setline(l0,map(a,"join(v:val,'')"))
endf

ব্লক-ভিজ্যুয়াল মোডে আয়তক্ষেত্রটি নির্বাচন করা ( <C-v>) এবং <leader>[তার সীমানায় লাইন-অঙ্কন অক্ষরগুলি চাপিয়ে , কোনও পূর্ব-বিদ্যমান লাইন-অঙ্কন অক্ষরের সাথে মার্জ করে। +-|পরিবর্তে আপনি যদি খাঁটি ASCII তে জোর দেন , এটি পরিবর্তন করা সহজ হওয়া উচিত।


0

সমস্ত ভিম ব্যবহারকারীদের জন্য , দুটি পুজোযুক্ত পুরানো প্লাগইন উপলব্ধ:

  • এটা আকো! প্লাগইন ; এটি বছরগুলিতে কোনও আপডেট দেখেনি, তবে এর লেখক এখনও সক্রিয়, তাই এটি এর পরিপক্কতা সম্পর্কে কিছু বলে। এটি বক্স এবং সংযোগকারী লাইনের জন্য দুর্দান্ত; এখানে কি জন্য জিজ্ঞাসা করা হয়। (এটি এমনকি চেনাশোনা এবং উপবৃত্তগুলিও করতে পারে!)
  • স্কেচ.ভিআইএম অপ্রকাশিত এবং আরও বেশি মাউস-চালিত, চিত্রশৈল

আপনি উভয় প্লাগইন সমান্তরালভাবে ব্যবহার করতে পারেন, একইসাথে দু'টিই সক্রিয় নেই।

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