Các cột bên phải trong Văn bản cao siêu 3


2

tôi muôn đúng căn chỉnh văn bản trong các cột trong Sublime Text 3 (trên Win 8.1, FWIW).

Đó là, tôi muốn chuyển đổi cái này

Time    Cash Flow
0   -500
1   100
2   200
3   300

vào đây

 Time   Cash Flow
    0        -500
    1         100
    2         200
    3         300

với mục tiêu cuối cùng là

 Time   Cash Flow
-----  ----------
    0        -500
    1         100
    2         200
    3         300

Đây là một bảng đơn giản trong gấu trúc . Tôi đã thử alignmentAlignTab các gói, nhưng chúng dường như chuyên sắp xếp một số dấu phân cách hơn là căn chỉnh các cột như tôi cần.

Có một số mẹo để làm điều này? Tôi cũng mở một giải pháp yêu cầu vi hoặc Excel.


1
Bạn có thấy câu trả lời của tôi không? Sẽ rất dễ dàng để điều chỉnh nó để trường hợp sử dụng cụ thể mà bạn giới thiệu trong câu hỏi của bạn được giải quyết. Ví dụ của tôi đã mở rộng trường hợp sử dụng của bạn khá nhiều, để giới thiệu toàn bộ sức mạnh của cách tiếp cận này. Bạn có thể dễ dàng "mất tầm nhìn trên toàn bộ gỗ vì nhiều cây" vì thế...
Kurt Pfeifle

Câu trả lời:


1

Ok, đây là một giải pháp liên quan đến Excel hoặc bất kỳ chương trình bảng tính nào khác có thể xuất CVS.


Bạn phải cài đặt một bộ lọc bên thứ ba mới phát hành có tên "csv2table" (& lt; - Kho GitHub) cho Pandoc.

Nó cũng có sẵn như là một bộ lọc độc lập .

  1. Cài đặt bộ lọc độc lập như thế này:

    mkdir ${HOME}/bin
    
    wget https://gist.githubusercontent.com/baig/b69e3146251bd90d12e7/raw/d8c8171fbe0ad5543f8aaf0a134250b29c689e57/csv2table.hs \
      -O ${HOME}/bin/pandoc-csv2table.hs
    
    chmod a+x ${HOME}/bin/pandoc-csv2table.hs
    
    export PATH=${HOME}/bin:${PATH}
    
  2. Phương pháp cài đặt ưa thích của tôi tuy nhiên là thông qua cabal:

    cabal update
    export PATH=${HOME}/.cabal/bin:${PATH}
    cabal install cabal-install
    cabal install pandoc-csv2table
    

Đọc tài liệu csv2table .

Bạn có thể làm gì với bộ lọc này?

  1. Bạn có thể đưa tệp CSV bên ngoài vào Markdown của mình bằng cách ...

    • ... hoặc lạm dụng hình ảnh bao gồm cú pháp như thế này:

      ![](/path/to/file.csv)

    • ... hoặc bằng cách lạm dụng khối mã có rào chắn cú pháp như thế này:

      ```` {.table source="/path/to/file.csv" <list-of-attributes>}
      ````
      
    • ... hoặc bằng cách chèn trực tiếp các dòng CSV của bạn vào "phần bảng có rào chắn" như thế này:

      ```` {.table <list-of-attributes>}
      one,two,three
      1,2,3
      100,2000,55555
      ````
      
  2. Bằng cách gọi bộ lọc trong dòng lệnh Pandoc là
    --filter=pandoc-csv2table
    CSV sẽ được chuyển đổi thành bảng ở tất cả các định dạng đầu ra của bạn.

  3. Ngoài ra, bạn có thể áp dụng gần như tất cả các định dạng cho (các) bảng được Pandoc hỗ trợ:

    • Sử dụng thuộc tính type="multiline" để tạo ra một multiline_table.
    • Sử dụng type="pipe" để tạo ra một pipe_table.
    • Sử dụng type="simple" để tạo ra một simple_table.
    • Sử dụng caption="My ***important*** caption for this table" để thêm chú thích bảng. (Điều này có thể bao gồm định dạng đánh dấu.)
    • Sử dụng header="no" nếu bạn muốn một bảng không có tiêu đề cột (giá trị mặc định được sử dụng, nếu không được cung cấp, là header="yes" ).
    • Bây giờ tính năng bạn muốn: Sử dụng aligns=LRCDR để sắp xếp căn chỉnh các cột (trái sang phải) như Trái, Phải, Giữa, Mặc định và Phải một lần nữa.

Thí dụ

  1. Xem xét điều này my.csv tập tin:

    Time,"*Cash* Flow","Third column" 0,-500,loooooooooooong data field with many words 1,*100*, ***2***,`2000`,shorte **3**,30000,(second line is empty)

    (Như bạn có thể thấy, tôi thậm chí còn sử dụng đánh dấu Markdown cho một số trường dữ liệu của các dòng CSV!)

  2. Hãy xem xét Markdown này, my.md:

     # Headline
    
     ```` {.table source="./my.csv" aligns="LRCR" type="multiline" caption="Some ***caption***"}
     ````
    
  3. Chạy lệnh này để tạo đầu ra bảng đa dòng Markdown từ đầu vào CSV của bạn:

    pandoc my.md --filter=pandoc-csv2table -t markdown
    

    Xem đầu ra này:

    Screenshot of Markdown output

  4. Chạy lệnh này để tạo đầu ra PDF bằng bảng nhiều dòng từ đầu vào CSV của bạn:

    pandoc my.md --filter=pandoc-csv2table -o my.pdf
    

    Xem đầu ra này (ảnh chụp màn hình):

    Screenshot of PDF output

  5. Nếu bạn muốn tạo "bảng ống" với cú pháp dấu hai chấm chỉ thị căn chỉnh, bạn phải sửa đổi Markdown một chút, cũng như dòng lệnh:

    • Sửa đổi đánh dấu bao gồm type="pipe" trong các tùy chọn định dạng bảng:

       # Headline
      
       ```` {.table source="./my.csv" aligns="LRCR" type="pipe" caption="Some ***caption***"}
       ````
      
    • Sửa đổi dòng lệnh yêu cầu markdown_phpextra+table_captions đầu ra:

      pandoc my.md --filter=pandoc-csv2table -t markdown_phpextra+table_captions

      Xem đầu ra ngay bây giờ:

      Screenshot with <code>pipe_tables</code> output including alignment-"colons"

  6. Tất nhiên, điều này cũng hoạt động với tất cả các định dạng đầu ra khác!


1

Tôi có một giải pháp khác. Đại bàng pipe_tables yêu cầu định dạng sau và có thể xử lý các sắp xếp bên trái, giữa và phải.

| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
|   12  |  12  |    12   |    12  |
|  123  |  123 |   123   |   123  |
|    1  |    1 |     1   |     1  |

  : Demonstration of pipe table syntax.

Nếu tôi tách các cột bằng ống |Sau đó, khi tôi hoàn thành tôi có thể

  • đầu tiên căn chỉnh các đường ống với alignment gói trong Sublime Text 3
  • sau đó tự thêm lại dấu hai chấm : để có được sự liên kết mong muốn.

Điều này không dễ dàng như bộ lọc của @ Kurt (và không phải nơi nào mạnh mẽ như vậy :)), nhưng nó khá đơn giản.


Ồ, tôi đã hiểu sai câu hỏi của bạn rồi. Tôi nghĩ bạn muốn một cách dễ dàng để chỉnh sửa các cột văn bản của bạn trong một trình soạn thảo văn bản để chúng được căn chỉnh. Tôi nghĩ bạn đã biết về các định dạng bảng Pandoc / Markdown khác nhau ... Câu trả lời của tôi cho thấy rằng bạn không nhu cầu để định dạng thủ công trong trình chỉnh sửa và bạn có thể yêu cầu Pandoc tạo các bảng Markdown từ CSV. - Dù sao, có nhiều thủ thuật để học nếu bạn đọc man pandoc_markdown.
Kurt Pfeifle

Xem thêm câu trả lời cập nhật của tôi. Tôi đã bao gồm một ví dụ về cách tạo ra một pipe_table với dấu hai chấm thẳng hàng.
Kurt Pfeifle

1
BTW, của bạn "@ Bộ lọc của Kurt" là một đề cập đáng trân trọng, nhưng thực tế không chính xác :) - Tôi không phải là tác giả của bộ lọc đó, Wasif Hasan Baig Là.
Kurt Pfeifle

@KurtPfeifle câu trả lời của bạn là hoàn hảo! Nó thực sự là câu trả lời cho câu hỏi tôi Nên đã hỏi! Tôi không quan tâm nó trông như thế nào khi đánh dấu chỉ trông giống như trong pdf. :) Và câu trả lời của bạn cho tôi biết rằng dù sao với -o markdown. :) Cảm ơn vì bài học!
Richard Herron

BTW, tôi đã không đề nghị -o markdown, nhưng -o somename.pdf :)
Kurt Pfeifle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.