
Ich möchteRechtsText in Spalten in Sublime Text 3 ausrichten (unter Win 8.1, FWIW).
Das heißt, ich möchte dies konvertieren
Time Cash Flow
0 -500
1 100
2 200
3 300
das mögen
Time Cash Flow
0 -500
1 100
2 200
3 300
mit dem ultimativen Ziel dieser
Time Cash Flow
----- ----------
0 -500
1 100
2 200
3 300
Dies eineinfacher TischInpandoc. Ich habe die Pakete alignment
und ausprobiert AlignTab
, aber diese scheinen auf die Ausrichtung einiger Trennzeichen spezialisiert zu sein, anstatt auf die von mir benötigte Ausrichtung von Spalten.
Gibt es dafür einen Trick? Ich bin auch für eine Lösung offen, die vi oder Excel erfordert.
Antwort1
Ok, hier ist eine Lösung, die Excel oder ein anderes Tabellenkalkulationsprogramm einbezieht, das CVS exportieren kann.
Sie müssen einneu veröffentlichter Drittanbieterfilter namens „csv2table“(<- GitHub-Repository) für Pandoc.
Es ist auch erhältlich alsein eigenständiger Filter.
Installieren Sie den Standalone-Filter wie folgt:
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}
Meine bevorzugte Installationsmethode ist jedoch über
cabal
:cabal update export PATH=${HOME}/.cabal/bin:${PATH} cabal install cabal-install cabal install pandoc-csv2table
Lies dascsv2table-Dokumentation.
Was können Sie mit diesem Filter tun?
Sie können eine externe CSV-Datei in Ihr Markdown einbinden, indem Sie...
...entweder durch Missbrauch derBild inklusive Syntaxso was:

...oder durch Missbrauch dereingezäunter CodeblockSyntax wie folgt:
```` {.table source="/path/to/file.csv" <list-of-attributes>} ````
...oder indem Sie Ihre CSV-Zeilen direkt in den „eingezäunten Tabellenabschnitt“ einfügen, wie folgt:
```` {.table <list-of-attributes>} one,two,three 1,2,3 100,2000,55555 ````
Durch Aufrufen des Filters in der Pandoc-Befehlszeile
--filter=pandoc-csv2table
wird die CSV-Datei in allen Ihren Ausgabeformaten in eine Tabelle konvertiert.Darüber hinaus können Sie nahezu alle von Pandoc unterstützten Formatierungen auf die Tabelle(n) anwenden:
- Verwenden Sie das Attribut,
type="multiline"
um ein zu erstellenmultiline_table
. - Verwenden Sie es
type="pipe"
, um ein zu erstellenpipe_table
. - Verwenden Sie es
type="simple"
, um ein zu erstellensimple_table
. - Zum
caption="My ***important*** caption for this table"
Hinzufügen einer Tabellenüberschrift. (Dies kann Markdown-Formatierung enthalten.) - Verwenden Sie es
header="no"
, wenn Sie eine Tabelle ohne Spaltenüberschriften wünschen (der Standardwert ist , falls nicht angegebenheader="yes"
). - Nun die gewünschte Funktion:Verwenden Sie
aligns=LRCDR
diese Option, um die Ausrichtung der Spalten (von links nach rechts) als Links, Rechts, Zentriert, Standard und erneut Rechts anzuordnen.
- Verwenden Sie das Attribut,
Beispiel
Betrachten Sie diese
my.csv
Datei:Time,"*Cash* Flow","Third column" 0,-500,loooooooooooong data field with many words 1,*100*, ***2***,`2000`,shorte **3**,30000,(second line is empty)
(Wie Sie sehen, verwende ich für einige der Datenfelder der CSV-Zeilen sogar Markdown-Markup!)
Betrachten Sie dieses Markdown
my.md
:# Überschrift ```` {.table source="./my.csv" aligns="LRCR" type="multiline" caption="Einige ***caption***"} ````
Führen Sie diesen Befehl aus, um aus Ihrer CSV-Eingabe eine mehrzeilige Markdown-Tabellenausgabe zu generieren:
pandoc my.md --filter=pandoc-csv2table -t markdown
Sehen Sie sich diese Ausgabe an:
Führen Sie diesen Befehl aus, um eine PDF-Ausgabe mit einer mehrzeiligen Tabelle aus Ihrer CSV-Eingabe zu generieren:
pandoc meine.md --filter=pandoc-csv2table -o mein.pdf
Sehen Sie sich diese Ausgabe an (Screenshot):
Wenn Sie generieren möchten"rohr tisch"Um die Syntax mit den Doppelpunkten zur Anzeige der Ausrichtung zu verwenden, müssen Sie Markdown und die Befehlszeile ein wenig modifizieren:
Markdown ändern
type="pipe"
in die Tabellenformatierungsoptionen aufzunehmen :# Überschrift ```` {.table source="./my.csv" aligns="LRCR" type="pipe" caption="Einige ***caption***"} ````
Befehlszeile ändernum eine Ausgabe anzufordern
markdown_phpextra+table_captions
:pandoc my.md --filter=pandoc-csv2table -t markdown_phpextra+table_captions
Sehen Sie sich jetzt die Ausgabe an:
Dies funktioniert natürlich auch mit allen anderen Ausgabeformaten!
Antwort2
Ich habe eine andere Lösung. Pandoc pipe_tables
erfordert das folgende Format und kann Links-, Mitten- und Rechtsausrichtungen verarbeiten.
| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
: Demonstration of pipe table syntax.
Wenn ich die Spalten durch Pipes trenne |
, dann kann ich, wenn ich fertig bin
- Richten Sie zuerst die Rohre mit dem
alignment
Paket in Sublime Text 3 aus - Fügen Sie dann die Doppelpunkte manuell wieder hinzu,
:
um die gewünschte Ausrichtung zu erhalten.
Dies ist nicht ganz so einfach wie der Filter von @Kurt (und bei weitem nicht so robust :)), aber es ist ziemlich unkompliziert.