Mavjud LaTeX jadvalidagi ustun tartibini tahrir qilish usullari?

Mavjud LaTeX jadvalining eng yaxshi usuli qanday? Men ikki ustun tartibini almashtirishim kerak va buning samarali usulini o'ylamayman.

Mening jadvalim quyidagi strukturaning uzoq ijodidir:

A &     -0.523 &      26.94 &     0.8243 &     0.0000 &     -12.67 \\
B &     -0.614 &      30.02 &     0.8509 &     0.0000 &     -13.12 \\
C &     -0.630 &      32.92 &     0.9254 &     0.0000 &     -21.45 \

Qiymatlarni o'zgartirish kerak:

A &     26.94 &      -0.523 &     0.8243 &     0.0000 &     -12.67 \\
(etc)

The thoughts that I had were to import it into Excel and to drag columns around, and then use the concatenate() function to produce the number & number structure. I feel like there might be a better way of doing this that I am unaware of.

38
Men savolning nomini atrofida harakatlanadigan ustunlar uchun yanada aniqroq bo'lishini tavsiya qilaman. Bu o'z-o'zidan turishi va bu googling uchun foydali bo'lishini ta'minlaydi.
qo'shib qo'ydi muallif Ruthvik Vaila, manba
Bu yaxshi ko'rinadi. Bu, albatta, juda ko'p e'tiborni tortdi! Men buni ilgari ko'rgan bo'lardim va SED-ni ham taqdim qilmoqchi edim. ;)
qo'shib qo'ydi muallif Ruthvik Vaila, manba
O'ylaymanki, bu to'g'ri.
qo'shib qo'ydi muallif Alan Munn, manba
Saytda ko'plab shunga o'xshash savollar mavjud: tanlashni ko'rish uchun "jadval muharriri" ni qidirish: masalan. LaTeX jadvallarini (HTMLni LaTeX) manipulyatsiya qilish vositasi va LaTeX jadvallarini yaratish jarayonini soddalashtirilgan vositalarning keng qamrovli ro'yxati
qo'shib qo'ydi muallif Alan Munn, manba
@AlanMunn Ushbu qobiliyatni eslatib o'tilgan asboblardan hech ko'rmayapman. Men ulardan ba'zilarini yaxshi bilaman, lekin odatda ular jadvalni yaratish uchun foydaliroq ko'rinadi, balki mavjud Latex stolini tahrir qilish uchun emas (garchi ehtimol etarlicha tuyulmagan bo'lsa ham).
qo'shib qo'ydi muallif Alex Ames, manba
Xristian @ MarkS.Everitt Men uni faqat tahrir qildim - buni aniqroq deb hisoblasangiz, uni o'zgartirishga qodir bo'lamiz. Men bu savolga javob beradigan barcha ajoyib takliflarga hayronman.
qo'shib qo'ydi muallif Alex Ames, manba
Texmaker'da ustunlarni tanlash uchun Alt + Shift-dan foydalanishingiz mumkin. Keyin nusxa ko'chiring va joylashtiring.
qo'shib qo'ydi muallif leo, manba

11 javoblar

sed 1-liner uchun David, lekin barcha hurmat bilan AWK dan jadvallar bilan ishlash uchun yaxshi vosita yo'q. Bu yuqoridagi muammoning echimi!

awk  'BEGIN {FS="&";OFS="&"}{print $1,$3,$2,$4,$5}' file.csv > newfile.csv
42
qo'shib qo'ydi
Katta javob, rahmat! To'g'ri, bu ishni qilish uchun yana bitta maslahatim kerak. FS ayracıni belgilashini tushunaman, lekin har bir satr oxirida \\ oxirgi satrning bir qismi emas, balki satrning oxiri ekanligini tushunish uchun qanday qilib uxlashim mumkin?
qo'shib qo'ydi muallif Lupe, manba

Kelajak uchun bir maslahat:

Katta jadvallarni yaratishda men qatorni kodlash buyrug'i beraman.

\newcommand{\resultrow}[4]{#1 & #2 & #3 & #4 \\}

Keyin buyurtma tartibini o'zgartirishni xohlasangiz, faqat buyruq ta'rifini o'zgartirishingiz kerak.

Buyruqni iloji boricha tavsiflashda ehtiyot bo'lishingiz kerak va argumentlar jadvalga emas buyruqlar uchun mantiqiy tartibda bo'lishlari kerak. Bu esa, buyurtmani keyinroq o'zgartirishni yanada osonlashtiradi.

As per request, an example. Take this table:

\begin{tabular}{l l l l}
  a & b & c & d \\
  2.33 & 4.55 & 5.66 & 7.88 \\
  3.44 & 5.66 & 6.77 & 9.00 \\
  .......
\end{tabular}

Agar siz ustunlar tartibini o'zgartirishni xohlasangiz, bu savolning boshqa javoblarini yaxshi ko'rib chiqing. Men bunga o'xshash narsani hal qilaman:

\newcommand{\abcdresults}[4]{ #1 & #2 & #3 & #4 \\}
\begin{tabular}{l l l l}
  a & b & c & d \\
  \abcresults{2.33}{4.55}{5.66}{7.88}
  \abcresults{3.44}{5.66}{6.77}{9.00}
  .......
\end{tabular}

If you then want to change the order, you can just simply change the body of \abcdresults to for instance: {\textbf{#3} & #1 & #2 & #4 \\}

40
qo'shib qo'ydi
+1: ma'lumotlar tartibida taqdimot buyrug'ini dekompilyatsiya qilish uchun oddiy, ammo chiroyli yondoshuv uchun!
qo'shib qo'ydi muallif Ovesh, manba
@DavyLandman Iltimos, batafsilroq ma'lumot bera olasizmi? Muammoni hal qilish uchun maslahatingizni qanday ishlatishni tushunmayapman (garchi jadvallarni juda tez ishlataman). Rahmat!
qo'shib qo'ydi muallif Aurelius, manba
@KeksDose O'yinni kechiktirsam ham, kelgusida mehmonlar uchun tushuntirish kerak. Davy nima qilmoqda, satr yozish uchun buyruqni belgilash, abcdresults buyrug'i. Ushbu 4 ustunli misol uchun buyruqlar to'rtta parametrni oladi va ularni ketma-ketlikda va oxirida yangi satrni qo'yib qo'yish uchun ularni chiqaradi.
qo'shib qo'ydi muallif tpgould, manba

Muntazam iboralarni o'z ichiga olgan har qanday tahrirchi osongina ustunlarni almashtirishlari mumkin. Masalan, tab.tex agar siz buyruq satriga kiritilgan bo'lsa, bu regexp 2 va 3-ustunlarni o'zgartiradi. (Foydalanishda bo'lgan buyruqlar satrini qobig'iga qarab, regexpda bir nechta orqa chiziqlarga kerak bo'lishi mumkin)

 sed -e "s/^\([^\&]*\)\&\([^\&]*\)\&\([^\&]*\)/\1\3\2/" tab.tex 
A       26.94      -0.523 &     0.8243 &     0.0000 &     -12.67 \\
B       30.02      -0.614 &     0.8509 &     0.0000 &     -13.12 \\
C       32.92      -0.630 &     0.9254 &     0.0000 &     -21.45 \
32
qo'shib qo'ydi
@David: lol, sizning so'nggi sharhingiz sizning avvalgi «... regexp haqiqatan ham ...» qanday yaxshi tasavvuridir. Men faqat regexlarni faqat kerak bo'lganda foydalanadi. Agar ularni har kuni ishlatmasangiz, sintaksisni eslash va o'nglash juda qiyin.
qo'shib qo'ydi muallif Stormenet, manba
Sizga \ 1 & \ 3 & \ 2 soniga kerak bo'lgan uzr so'rayman & & zgartirishga yoki ehtimolga \ & \ va \ 3 \ & \ 2 \ va qarab joylashtirish.
qo'shib qo'ydi muallif David Carlisle, manba
regexp, albatta, faqat uch ([^ &]) & guruhlari, ya'ni ketma-ketlikda emas & &. Faqat qobiqdagi maxsus belgilarni yashirish uchun (bash qobig'ini ishlatgan edim, boshqa buyruq satrlari boshqacha bo'lishi mumkin)
qo'shib qo'ydi muallif David Carlisle, manba
Bu holatda regexp sintaksisi emas, lekin bu ayniqsa qiyin, ammo (biron-bir noma'lum) buyruq qatorni sintaksisi. & kodi regexp uchun maxsus emas, shuning uchun & mos keladigan oson, lekin & buyruq satriga maxsus bo'lishi mumkin & kodini o'tish uchun sintaksisni \ & bo'lishi mumkin, lekin qaysi buyruq qatori protsessoridan foydalanayotganingizga bog'liq emas. Regex faylini faylga qo'yib, so'ng faylni ( -f parametr bilan) qo'yib berib qo'yasiz, lekin keyinchalik u bir martalik emas, kamroq kulgili emas :-)
qo'shib qo'ydi muallif David Carlisle, manba
Dovudga rahmat - men uni sinab ko'raman. Bu aql-idrokning muntazam ifodasidir.
qo'shib qo'ydi muallif Alex Ames, manba
Men buni tushuna boshladim; yana bir bor rahmat. regexp men bir necha marta o'rganishga harakat qilgan narsa. Bu ish (hatto & ning bir qismini chiqarib tashlagan bo'lsa ham) ishladi.
qo'shib qo'ydi muallif Alex Ames, manba

Bu erda yaxshi javoblar bor, ammo mana shu ma'noni anglatuvchi axloqiy zarurat bor, albatta, bu muntazam so'zlarni ishlatmasdan emacs (yoki xemacs) da buni qilishning eng oson usuli mavjud. copy-rectangle-to-register nusxa ko'chirish-rectangle-to-register dan foydalangan holda bir ustunni nusxa ko'chirishingiz mumkin, uni insert-register yordamida yangi ustunga o'tkazing va so'ngra kiruvchi ustuni delete-rectangle . Bu muntazam ifodalardan foydaliroq emas, lekin bir vaqtning o'zida bir qadamni osonroq bajarish uchun, u siz xohlagan narsani qilayotganiga ishonch hosil qilish.

To'liq to'rtburchakning bir burchagini belgilash uchun to'liqlik uchun C-Space dan foydalaning va teskari tomonga o'ting. Keyin ikki burchak tomonidan belgilangan to'rtburchakda kerakli buyruqni chaqirishingiz mumkin.

21
qo'shib qo'ydi
@DavidCarlisle Sizning regexp javobi aniq zippier biri, lekin har bir kishi emacs ishlatmaydi g'alati mish tarqalish degan ma'noni anglatadi?
qo'shib qo'ydi muallif Mike Thompson, manba
@PhilHirschhorn Bundan tashqari, LaTeX o'rniga "Microsoft Word" deb nomlangan bir nechta g'alati odamlar borligini eshitaman. Dunyo hech qachon ajablantirmaydi.
qo'shib qo'ydi muallif Seamus, manba
Shu bilan bir qatorda, ma'lumotlarni (org-table-create-or-convert-from-region) bilan bir jadvalga aylantirish uchun Emac ning Org rejimidan foydalanishingiz mumkin va ustunlarni M- < chap> va M- . Keyin uni LaTeX formatida eksport qilishingiz yoki matnli fayl sifatida saqlashingiz mumkin.
qo'shib qo'ydi muallif AidanO, manba
@DavidCarlisle, emacs da, agar kirish MWE-da bo'lgani kabi yaxshi mos bo'lmasa, align va align-current yaxshi ishlaydi va bunga e'tibor berishi mumkin.
qo'shib qo'ydi muallif AidanO, manba
Ha, deyarli bir emacs to'rtburchagiga javob bermadi, shuning uchun ham, kimdir boshqa bir savolga bergan javobga javob bergan bo'lsa-da, har bir kishi ham emacs ishlatmaydi, shuningdek, to'rtburchak kombinatsiyalari ham kiritishni yoqimli tarzda joylashtirishni talab qiladi MWE-da, sed yoki awk maydoniga asoslangan versiyalar kiritilgan fayllarni kiritish uchun kamroq yaxshi to'ldirilgan bo'lsa ham maydonlarga mos keladi.
qo'shib qo'ydi muallif David Carlisle, manba
Ha ha emacs sizga g'amxo'rlik qiladi deb umid qilish kerak :-)
qo'shib qo'ydi muallif David Carlisle, manba
Matn tahrirlashda "ustunni tahrirlash rejimi" ni ishlatish uchun aniq +1. Ustun tartibga solish tartibi awk/sed-regex-dan tezroq bo'lishi kerak, deb o'ylayman, chunki u yuqoridagi regexdan noldan yaratilish uchun kamida 5 daqiqa vaqt olishi kerak ... ustunni tahrirlash 2 daqiqada bajarilishi kerak.
qo'shib qo'ydi muallif Henry Aloni, manba

Ba'zi TeX tahrirlovchilari, masalan. WinEdt va TeXnicCenter hamda matn muharrirlari, masalan. Notepad ++, jadvallarni tahrirlash uchun juda foydali bo'lgan to'rtburchaklar tanlovi xususiyatini taklif qiladi.

WinEdt foydalanuvchilar uchun bu yaxshi va tez-tez e'tibordan chetda qoladigan funksiya Status Line da.

enter image description here

Agar siz LINE tugmachasini bosgan bo'lsangiz, u Block holiga keladi va u to'rtburchak rejimiga o'tadi. Bu esa, foydalanuvchining odatdagidek to'rtburchaklar mintaqalarini tanlashiga va nusxa ko'chirish moslamalarini moslashtirishga imkon beradi.

enter image description here

This is especially useful to fill in the missing & columns to tabular data imported from Excel, MATLAB etc. via copying one column of & and pasting it between columns.

TeXnicCenter 2 makes rectangular selections if keys ALT + SHIFT are pressed while selecting. The same is true for Notepad++.

14
qo'shib qo'ydi
@dgs Qo'shimcha uchun bir guruhga rahmat. TC2 ning bu variantga ega ekanligini bilmasdim.
qo'shib qo'ydi muallif percusse, manba
Bundan tashqari, bilish juda foydali! Ko'rinib turibdiki, buni TextWrangler-da "code-ni" Option-drag yoki shift-variantni bosish buyrug'i bilan "to'rtburchaklar tanlov" funksiyasi yordamida amalga oshirishingiz mumkin ).
qo'shib qo'ydi muallif Alex Ames, manba
Salomat bo'ling. Aslida, TC2 hali ham alfa-versiyasi bo'lsa-da, TC1-ni chiqarib tashlaganman.
qo'shib qo'ydi muallif Mohamad-jaafar, manba

In Excel you don't need to use concatenate to keep the table structure. If you import the table as in your MWE, you should be able to keep the & separators and the \\ line breaks in separate columns. Once you swap the columns, you can save it as a tab-delimited .txt file and you are done. The & and \\ will be separated from the data by a tab, but that shouldn't be an issue.

4
qo'shib qo'ydi
Import qilishda bo'shliq va yorliqdan foydalanaman; eng muhimi, Excel import-oynasida qanday ma'lumotlarni import qilinishini bildiradigan ingl. belgilarini izlayman va shunga ko'ra, chegaralarni tanlashingiz kerak.
qo'shib qo'ydi muallif AidanO, manba
Bu bilish juda foydali. Import qilinayotganda, siz chegarachi sifatida bo'sh joyni tanlaysizmi?
qo'shib qo'ydi muallif Alex Ames, manba

In TeXShop (for Mac Users)
(1) Hold the

and
(3) Paste
to place it as a new column of your table where desired.

enter image description here

4
qo'shib qo'ydi

Emacs singari, Vim da ustunlarni tanlashga va ularni ko'chirishga imkon beradigan ustun tanlash rejimiga (^ V) ega. Ya'ni, ^ v {ustunni tanlash} D {yangi joyga ko'chiring} p . Va jadvallarni osonlikcha qayta formatlash imkonini beruvchi kengaytma mavjud.

3
qo'shib qo'ydi

Bundan tashqari, Sam Franke tomonidan ajratilgan matnli fayllarni, CSVed va uniCSVed manipulyatsiyasi uchun ajoyib vositalardan ham foydalanishingiz mumkin. Bu haqiqiy grafik interfeys. Ushbu veb-sahifada dasturlarini topasiz.

2
qo'shib qo'ydi

Jadval tarkibini lateksga eksport qilish uchun Excel makros jadval. Bu mukammal emas, lekin katta jadvallarni prototiplashda va ustunlarni qayta tartibga solishda bu juda foydali.

1
qo'shib qo'ydi
excel2latex rasmiy veb-saytiga ctan.org/pkg/excel2latex yoki launchpad.net/excel2latex
qo'shib qo'ydi muallif matth, manba

Buni bir shell skriptida qilish mumkin, masalan:

#!/bin/sh
ed tab.tex <
1
qo'shib qo'ydi
TeX.SX ga xush kelibsiz!
qo'shib qo'ydi muallif egreg, manba