ラテックスで見栄えの良いテーブルを作成するにはどうすればよいでしょうか。



How Might One Create Nice Looking Table Latex



解決:

私はあなたの質問の核心に答えます:このようなテーブルを作成する方法を考えています。

実験結果から1か月の予算まで、常にテーブルを使用しています。並べ替え、書式設定、チェック、単純なデータ分析などのタスクについては、Excelで行います(2013を使用)。ファイナルテーブルは、何度も繰り返して時間をかけて最終的に出てきます。



あなたの例では、データがデータベースから出ていることは明らかです。すべてのパッチとすべての修正の垂直方向の累積結果、整合性のクロスチェックなどがあります。

LaTeXは美しいレポートを公開するためのものですが、これは年に数回行われます。非常に単純なテーブルでのみ、データをLaTeXに直接書き込むことができます。



私のExcelからLaTeXへのワークフローには3つのステップがあります。

1 Excelで、必要なスタイルでファイナルテーブルをフォーマットします。必要に応じて、色や定規などを使用してください。

並んで



  1. CTANのExcel2Latexアドインを使用してテーブルをエクスポートします。インストールは簡単で、宣伝どおりに機能します。

https://ctan.org/tex-archive/support/excel2latex?lang=en

クリップボードにコピーして、基本的なLaTeXドキュメントに貼り付けます。

クリップボードへの恥ずかしがり屋

いくつかの基本的なパッケージを追加し(私の例を参照)、結果のコードを実行する必要があります。

複数行、色、そして最も重要なこととして、コンテンツがLaTeXに正常に渡されたことがわかります。スタイルの詳細について気が変わった場合は、Excelシートを編集してLaTeXコードを再生成するのは簡単です。

3 LaTeXコマンドを使用して、フォント、ストレッチ、ハイフン、記号などの仕上げを適用します。

あなたの例のために、私は元のキャプションと一致するキャプションパッケージ、最初の行に上付き文字、2番目の行に下付き文字、必要に応じてスモールキャップスを追加しました。使ったセルを垂直方向に拡張するには、1.3からarraystretchを実行します。

この特定のケースでは、下部のセルの背景がセルの内容の一部を上書きしないように、7ポイントのオフセットを二重の灰色の行に含める必要がありました。これは、色付きのセルを操作するときによく発生します。コメント[7pt]そして何が起こるか見てください。

もちろん、背景色を1つだけ使用すると、すべてが見栄えが良くなります。しかし、代替行の色のスタイルは非常に優れており、幅の広い複数列のテーブルでは必須であることがわかりました。白黒のみを使用すると、ビーマーのプレゼンテーションは運命づけられます。

 documentclass [12pt、a4paper] {book}  RequirePackage [table] {xcolor}  RequirePackage {booktabs}  RequirePackage {multirow}  RequirePackage {caption}%キャプションの植字 captionsetup {%labelfont = {bf}、%表1 textfont = {bf}%caption font}% begin {document}%シート 'Sheet1'からExcel2LaTeXによって生成されたテーブル begin {table} [htbp]  renewcommand { arraystretch} {1.3}%行を垂直方向に展開 setlength  belowcaptionskip {8pt}  centering  caption {テスト--Java用のスイートベースのプログラム修復ツール。}  begin {tabular} {llrrr}  toprule  multicolumn {1} {c} { multirow {2} [2] {* } {Repear tool}}&Benchmark used& multicolumn {1} {r} { multirow {2} [2] {*} { #Bugs}}& multirow {2} [2] {*} { #Patched  textsuperscript {a}}& multirow {2} [2] {*} { #Fixed  textsuperscript {b}} \&in Evaluation &&& \  midrule  multicolumn {5} {l} { underline { emph {Generate--and--validate}}} \  rowcolor [rgb] {.906、.902、.902} ACS [4]&Defects4J&224&23&17 \  multirow {2} [0] {*} {ARJA [50]}&Defects4J&224&59&18 \&QuixBugs [48 ]&40&4&2 \  rowcolor [rgb] {.906、.902、.902}  multirow {2} [1] {*} { textsc {CapGen} [42]}&Defects4J&224& 25&22 \ [7pt]色付きの複数行に必要な%シフト rowcolor [rgb] {.906、.902、.902}&IntroClassJava&297&-&25 \  multirow {2} [0] {* } {Cardumen [28]}&Defects4J&356&77&-\&QuixBugs [48]&40&5&3 \  rowcolor [rgb] {.906、.902、.902} DeepRepair [43] &Defects4J&374&51&-\  multirow {2} [0] {*} { textsc {Elixir} [37]}&Defects4J&82&41&26 \&Bugs.jar&127&39 &22 \  rowcolor [rgb] {.906、.902、.902} GenProg-A&Defects4J&224&36&-\ HDRepair [18]&Defects4J&90&-&23 \  rowcolor [rgb] {.906、.902、.902}  textsc {Jaid} [2]&Defects4J&138&31&25 \  multirow {3} [0] {*} {jGenProg [27]}&Defects4J &224&29&-\&Defects4J [26]&224&27&5 \&QuixBugs [48]&40&2&0 \  ldots& ldots& ldots& ldots& ldots  %より多くの行が続きます bottomrule  multicolumn {5} {l} { footnotesize  textsuperscript {a}先週報告されたように。   textsuperscript {b} QCによって検証されました。 } \  end {tabular}% label {tab:addlabel}% end {table}% end {document}

これが最終結果です。合計時間は1〜2時間で、主にデータ入力とシートのフォーマットに使用されます。 ここに画像の説明を入力してください

最後の演習として、締め切り直前に上司から尋ねられたテーブルに別の列を追加してみてください。(Excelシートで計算された)データがまだ不足していますバグマイナスパッチマイナス修正して、すべてがどのように機能するか(そして、どれだけ時間がかかるか!)を確認してください。現実世界の状況。


テーブルの3つのバージョンは次のとおりです。

上記のコードの出力

 documentclass {article}  usepackage [table、svgnames] {xcolor}%は、 rowcolorsコマンド usepackage {caption}%を提供して、キャプションの周囲の間隔を改善します usepackage {array}%は、列指定子で> {...}を有効にしますセクション、表2および3で使用 usepackage {booktabs}%水平線の周囲の間隔を改善するため、例3で使用、垂直線と互換性がない、色と組み合わせる場合は注意してください usepackage [column = 0] { cellspace}%各セルの上下に少量のスペースを追加します。表2でのみ使用されます setlength { cellspacetoplimit} {2pt}  setlength { cellspacebottomlimit} { cellspacetoplimit}  begin {document}  begin {table} [htbp]  caption {Variable Descriptions}  label {tab:2}  centering%中央環境の代わりに centeringを使用しました。後者は、空白を追加するためです rowcolors {2} {white} {lightgray}  begin {tabular}  hline変数と説明\ hline  textit {ln(wage)}&賃金のログ\  textit {educ}&教育年数\  textit {black}&blの場合は1 ackと0(そうでない場合)\  textit {hisp}&1(ヒスパニックの場合)\  textit {exper}&経験年数\  textit {exper $ ^ {2} $}&経験年数の2乗   textit {married}&結婚している場合は1、そうでない場合は0 \ textit {union}&ユニオンに属している場合は1、そうでない場合は0 \ hline  end {tabular}  end {table}  begin {table } [htbp]  caption {変数の説明}  label {tab:2}  centering  rowcolors {2} {white} {lightgray}  begin {tabular} {> { itshape} 0l0l}  hline%使用> { itshape}は、最初の列で繰り返し発生する textitを削除できるようにするために、c列の代わりにlタイプの列を使用して見栄えを良くし、セルスペースパッケージを使用して、行の上下に小さな垂直スペースを追加しました。すべての縦線を削除 textup {Variables}&Descriptions \ hline ln(wage)&log of wage \ educ&years of Education \ black&1 if black and 0 if not \ hisp&1 if hispanic and 0そうでない場合\経験と経験年数\ exper  textsuperscript {2}&経験年数の二乗\結婚&結婚している場合は1 nd 0(not \ unionの場合)&1(unionに属する場合)および0(not \ hline  end {tabular}  end {table}  begin {table} [htbp]  caption {Variable Descriptions}  label {tab :2}  centering  begin {tabular} {> { itshape} ll}  toprule%すべての hlineコマンドをbooktabsパッケージのルールに置き換えました textup {Variables}&Descriptions \  midrule ln(wage)&log of wage \ educ&years of Education \ black&1 if black and 0 if not \ hisp&1 if hispanic and 0 if not \ exper&years of experience \ exper  textsuperscript {2}&years years squared \既婚&既婚の場合は1、そうでない場合は0 \ユニオン&ユニオンに属している場合は1、そうでない場合は0 \  bottomrule  end {tabular}  end {table}  end {document} 

述べる: この回答には、バージョン5.2(2020-08-19)が必要です。nicematrix。

OPによって提供される画像は、行が交互に色分けされていることを示しています。しかし、いくつかの行は実際にはいくつかの行の再結合です。この状態では使いにくいです rowcolors ofxcolor。の最新バージョンではnicematrix(2020-08-19のv。5.2)、組み込み命令 rowcolors(で使用されるcode-before)にはオプションがありますその問題に対処するための尊重ブロック。ブロックを含む行は、1つの行のみと見なされます。

 documentclass {article}  usepackage {nicematrix}  usepackage {multirow}  usepackage {booktabs}  usepackage {makecell}  usepackage {enumitem}  NiceMatrixOptions {notes = {para、style =  alph {#1}}}  begin {document}  begin {NiceTabular} {[email protected] { space} lrrr}%[code-before =  rowcolors {3} {gray!20} {} [respect-blocks]]  toprule修復ツール& multicolumn {2} {l} { makecell [l] {評価で使用されたベンチマーク\}}&#バグ&#パッチ付き tabularnote {注}&#修正済み tabularnote {注} \  midrule  underline {  emph {Generate-and-validate}} \ ACS [46]&Defects4J && 224&23&17 \  Block {2-1} {}  multirow {2} {*} {ARJA [50]} &Defects4J && 224&59&18 \&QuixBugs&[38]&40&4&2 \  Block {2-1} {}  multirow {2} {*} { textsc {CapGen} [42]} &Defects4J && 224&25&22 \& rlap {IntroClassJava} && 297&-&25 \  Block {2-1} {}  multirow {2} {*} {Cardumen [28]}& Defects4J && 356&77&-\&QuixBugs&[48]&40&5&3 \ DeepRepair [43]&Defects4J && 374&51&-\  Block {2-1} {}  multirow {2 } {*} { tex tsc {Elixir} [37]}&Defects4J && 82&41&26 \&Bugs.jar && 127&39&22 \ GenProg-1 [50]&Defects4J && 224&36&-\ HDRepair [ 18]&Defects4J && 90&-&23 \  textsc {Jaid} [2]&Defects4J && 138&31&25 \  Block {3-1} {}  multirow {3} {*} {jGenProg [27]}&Defects4J && 224&29&-\&Defects4J&[26]&224&27&5 \&QuixBugs&[48]&40&2&0 \  Block {3-1} {}  multirow {3} {*} {jKali [27]}&Defects4J && 224&22&-\&Defects4J&[26]&224&22&1 \&QuixBugs&[48]&40&2& 1 \  Block {2-1} {}  multirow {2} {*} {jMutRepair [27]}&Defects4J && 224&17&-\&QuixBugs&[48]&40&3&1 \ Kali-A [50]&Defects4J && 224&33&-\ LSRepair [23]&Defects4J && 395&38&19 \ PAR [17]& rlap {PARDataset} && 119&27&-   Block {2-1} {}  multirow {2} {*} {PSRepair-A [50]}&Defects4J && 224&44&-\&QuixBugs&[48]&40&4&2 \ SimFix [14]&Defects4J && 357&56&34 \  textsc {SketchFix} [13]&Defects4J && 357&26&19 \ SOFix [24]&Defects4J && 224&-&23 \ ssFix [45]&Defects4J && 357&60&20 \ xPar [18]&Defects4J && 90&-&4 \  bottomrule  end {NiceTabular}  end {document}