Tabularx: Cột nhỏ hơn văn bản

Sep 28 2020

Vì vậy, đây là mã tối thiểu:

\documentclass[a4paper, 12pt]{scrartcl}
\usepackage{tabularx}
\usepackage{chemfig}

\begin{tabularx}{\textwidth}{|X|c|c|X|}
    Name & Monomer & Polymermolekül & Einsatzbeispiel\\
    \hline
    Polyethen (PE)  
            & 
            \chemfig{
                H
                -[1]C 
                    (-[3]H)
                =C 
                    ( -[1]H) 
                -[7]H
            } &
            \schemestart
                \chemleft[
                    \chemfig{
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                    }
                \chemright]$_n$
            \schemestop
            & Plastiktüten
    \\
    Polypropen (PP) 
         & \chemfig{
             H
             -C
                ( -[2]H)
                ( -[6]H)
            -C
                ( -[2]H)
            =C
                ( -[1]H)
                ( -[7]H)
         } & 
         \schemestart
            \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[2]{CH3})
                    -[0]
                }
            \chemright]$_n$
         \schemestop
         & Flaschendeckel, Brotdosen
    \\
    Polyvenylchlorid (Pvc)
        & 
        \chemfig{
            H
            -[1]C
                ( -[3]H)
            =C
                ( -[1]Cl)
            -[7]H
        } & 
        \schemestart
            \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[6]H)
                        ( -[2]{Cl})
                    -[0]
                }
            \chemright]$_n$
        \schemestop
        & Rohrleitungen, Venylböden, Schallplatten
    \\ 
    Polyethafluorethen (PTFE) 
        & 
        \chemfig{
            F
            -[1]C
                ( -[3]F)
            =C
                ( -[1]F)
            -[7]F
        }&
        \schemestart
            \chemleft[
                \chemfig{
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -[0]
                }
            \chemright]$_n$
        \schemestop
        & Pfannenbeschichtung (Tephlon),
        Funktionskleidung (Gortex) 
\end{tabularx}
\end{document}

Đó là cách nó trông giống như:

Như bạn có thể thấy, văn bản không được định dạng trong bảng. Bạn có ý tưởng làm cách nào để tôi có thể sửa lỗi này không?

Trả lời

1 leandriis Sep 29 2020 at 01:52

Đây là hai phiên bản khác của bảng của bạn. Trong cả hai, tôi đã sửa các công thức hóa học của các phân tử polyme sử dụng \polymerdelimtừ chemfiggói. Với lệnh này, các dấu ngoặc vuông được vẽ chính xác thông qua các liên kết ngoài cùng, thay vì xung quanh chúng. Tôi cũng đã sửa một số lỗi chính tả trong tên ghép và trong các ví dụ ứng dụng.

\documentclass[a4paper, 12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\usepackage{chemfig}
\usepackage{adjustbox}
\usepackage{pdflscape}
\usepackage[column=0]{cellspace}
\usepackage{makecell}

\setlength\cellspacetoplimit{8pt}
\setlength\cellspacebottomlimit{8pt}

\begin{document}
\begin{landscape}
\noindent
\begin{tabularx}{\linewidth}{|0l|0c|0c|>{\raggedright\arraybackslash}X|}
    Name & Monomer & Polymermolekül & Einsatzbeispiel\\
    \hline
    & & & \\
    \makecell[cl]{Polyethen\\ (PE)} 
            & 
            \adjustbox{valign=c}{\chemfig{
                H
                -[1]C 
                    (-[3]H)
                =C 
                    ( -[1]H) 
                -[7]H
            }} &
            \schemestart
                    \chemfig{
                        -[@{upleft,0.5},1]C
                            ( -[2]H)
                            ( -[-2]H)
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                        -[@{upright,0.5},1]
                    }
                    \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
            \schemestop
            & Plastiktüten
    \\
   \makecell[cl]{Polypropen\\ (PP)} 
         & \adjustbox{valign=c}{\chemfig{
             H
             -C
                ( -[2]H)
                ( -[6]H)
            -C
                ( -[2]H)
            =C
                ( -[1]H)
                ( -[7]H)
         }} & 
         \schemestart
                \chemfig{
                    -[@{upleft,0.5},1]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[2]{CH_3})
                   -[@{right,0.5},1]
                }
                \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
         \schemestop
         & Flaschendeckel, Brotdosen
    \\
    \makecell[cl]{Polyvinylchlorid\\ (PVC)}
        & 
        \adjustbox{valign=c}{\chemfig{
            H
            -[1]C
                ( -[3]H)
            =C
                ( -[1]Cl)
            -[7]H
        }} & 
        \schemestart
                \chemfig{
                    -[@{upleft,0.5},1]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[6]H)
                        ( -[2]{Cl})
                    -[@{right,0.5},1]
                }
                \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
        \schemestop
        & Rohrleitungen, Vinylböden, Schallplatten
    \\ 
    \makecell[cl]{Polytetrafluorethen\\ (PTFE)} 
        & 
        \adjustbox{valign=c}{\chemfig{
            F
            -[1]C
                ( -[3]F)
            =C
                ( -[1]F)
            -[7]F
        }}&
        \schemestart
                \chemfig{
                    -[@{upleft,0.5},1]C
                        ( -[2]F)
                        ( -[6]F)
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -[@{right,0.5},1]
                }
                \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
        \schemestop
        & Pfannenbeschichtung (Teflon),
        Funktionskleidung (Goretex) 
\end{tabularx}
\end{landscape}



\setlength\cellspacetoplimit{15pt}
\setlength\cellspacebottomlimit{15pt}
\renewcommand{\tabularxcolumn}[1]{m{#1}}
\noindent
\begin{tabularx}{\linewidth}{|0l|0c|0c|>{\raggedright\arraybackslash\hspace{0pt}}X|}
    Name & Monomer & Polymermolekül & Einsatzbeispiel\\
    \hline
    \makecell[cl]{Polyethen\\ (PE)} 
            & 
            \adjustbox{valign=c}{\chemfig{
                H
                -[1]C 
                    (-[3]H)
                =C 
                    ( -[1]H) 
                -[7]H
            }} &
            \schemestart
                    \chemfig{
                        -[@{upleft,0.5},1]C
                            ( -[2]H)
                            ( -[-2]H)
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                        -[@{upright,0.5},1]
                    }
                    \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
            \schemestop
            & Plastiktüten
    \\
   \makecell[cl]{Polypropen\\ (PP)} 
         & \adjustbox{valign=c}{\chemfig{
             H
             -C
                ( -[2]H)
                ( -[6]H)
            -C
                ( -[2]H)
            =C
                ( -[1]H)
                ( -[7]H)
         }} & 
         \schemestart
                \chemfig{
                    -[@{upleft,0.5},1]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[2]{CH_3})
                   -[@{right,0.5},1]
                }
                \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
         \schemestop
         & Flaschendeckel, Brotdosen
    \\
    \makecell[cl]{Polyvinyl-\\chlorid\\ (PVC)}
        & 
        \adjustbox{valign=c}{\chemfig{
            H
            -[1]C
                ( -[3]H)
            =C
                ( -[1]Cl)
            -[7]H
        }} & 
        \schemestart
                \chemfig{
                    -[@{upleft,0.5},1]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[6]H)
                        ( -[2]{Cl})
                    -[@{right,0.5},1]
                }
                \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
        \schemestop
        & Rohrleitungen, Vinylböden, Schallplatten
    \\ 
    \makecell[cl]{Polytetra-\\fluorethen\\ (PTFE)} 
        & 
        \adjustbox{valign=c}{\chemfig{
            F
            -[1]C
                ( -[3]F)
            =C
                ( -[1]F)
            -[7]F
        }}&
        \schemestart
                \chemfig{
                    -[@{upleft,0.5},1]C
                        ( -[2]F)
                        ( -[6]F)
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -[@{right,0.5},1]
                }
                \polymerdelim[delimiters ={[]}, height = 45pt, depth = 40pt, indice = n]{upleft}{upright}
        \schemestop
        & Pfannenbeschichtung (Teflon),
        Funktionskleidung (Goretex) 
\end{tabularx}

\end{document}
4 DavidCarlisle Sep 28 2020 at 16:20

TeX không thể gạch nối từ đầu tiên của đoạn văn, hãy đặt

\hspace*{0pt}

ở đầu ô X, ví dụ: bạn có thể thêm ô này vào mọi ô X bằng cách sử dụng

>{\hspace*{0pt}}X 

trong phần mở đầu bảng của bạn

nhưng nó có thể cần trợ giúp gạch nối các thuật ngữ hóa học \-tùy thuộc vào mẫu ngôn ngữ tự nhiên bạn đang sử dụng, Bạn có thể cần

\usepackage[german]{babel} %German?

Vì những từ đó sẽ không gạch nối tốt với các mẫu tiếng Anh mặc định.

Bạn cũng có thể cân nhắc sử dụng phông chữ nhỏ hơn để phù hợp hơn

3 Mico Sep 28 2020 at 17:37

Ngoài việc đặt tiền tố cho Xloại cột bằng \hspace{0pt}chỉ thị cho phép gạch nối - hãy xem thêm câu trả lời của David - bạn có thể muốn tạo danh sách các mẫu gạch nối được chấp nhận, vì sự babel/ngermankết hợp có xu hướng không được thông báo tốt về cách các từ như "Polyvenylchlorid "và" Polyethafluorethen "có thể được gạch nối có thể chấp nhận được.

\documentclass[a4paper, 12pt]{scrartcl}
\usepackage[T1]{fontenc} % to list words with Umlauts in arg. of '\hyphenation'
\usepackage[ngerman]{babel}

\usepackage{tabularx,ragged2e}
\newcolumntype{L}{>{\hspace{0pt}\RaggedRight}X}
\renewcommand\tabularxcolumn[1]{m{#1}}

\usepackage{chemfig}

% Create a list of hyphenation exceptions:
\hyphenation{plastik-tüten poly-venyl-chlorid poly-etha-fluor-ethen 
   flaschen-deckel einsatz-beispiel venyl-boden venyl-böden schall-platten}

\begin{document}
\begin{tabularx}{\textwidth}{|L|c|c|L|}
    Name & Monomer & Polymermolekül & Einsatzbeispiel\\
    \hline
    Polyethen (PE)  
            & 
            \chemfig{
                H
                -[1]C 
                    (-[3]H)
                =C 
                    ( -[1]H) 
                -[7]H
            } &
            \schemestart
                \chemleft[
                    \chemfig{
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                    }
                \chemright]$_n$
            \schemestop
            & Plastiktüten
    \\
    Polypropen (PP) 
         & \chemfig{
             H
             -C
                ( -[2]H)
                ( -[6]H)
            -C
                ( -[2]H)
            =C
                ( -[1]H)
                ( -[7]H)
         } & 
         \schemestart
            \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[2]{CH3})
                    -[0]
                }
            \chemright]$_n$
         \schemestop
         & Flaschendeckel, Brotdosen
    \\
    Polyvenylchlorid (Pvc)
        & 
        \chemfig{
            H
            -[1]C
                ( -[3]H)
            =C
                ( -[1]Cl)
            -[7]H
        } & 
        \schemestart
            \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[6]H)
                        ( -[2]{Cl})
                    -[0]
                }
            \chemright]$_n$
        \schemestop
        & Rohrleitungen, Venylböden, Schallplatten
    \\ 
    Polyethafluorethen (PTFE) 
        & 
        \chemfig{
            F
            -[1]C
                ( -[3]F)
            =C
                ( -[1]F)
            -[7]F
        }&
        \schemestart
            \chemleft[
                \chemfig{
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -[0]
                }
            \chemright]$_n$
        \schemestop
        & Pfannenbeschichtung (Tephlon),
        Funktionskleidung (Gortex) 
\end{tabularx}
\end{document}
3 Zarko Sep 28 2020 at 18:11

Một biến thể nhỏ của câu trả lời @Mico. Được sử dụng là:

  • cellspace để thêm một khoảng trắng nhỏ xung quanh nội dung ô
  • djustboxđể căn giữa theo chiều dọc của \chemfigcông thức

\documentclass[a4paper, 12pt]{scrartcl}
\usepackage[T1]{fontenc} % to list words with Umlauts in arg. of '\hyphenation'
\usepackage[ngerman]{babel}

\usepackage{ragged2e}
\usepackage{cellspace, tabularx}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\newcolumntype{L}{>{\hspace{0pt}\RaggedRight}X}

\usepackage{chemfig}
\usepackage{adjustbox}

% Create a list of hyphenation exceptions:
\hyphenation{plastik-tüten poly-venyl-chlorid poly-etha-fluor-ethen
   flaschen-deckel einsatz-beispiel venyl-boden venyl-böden schall-platten}

\begin{document}
{
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{tabularx}{\textwidth}{|L|c|Sc|L|}
Name & Monomer & Polymermolekül & Einsatzbeispiel\\
    \hline
Polyethen (PE)
    &   \adjustbox{valign=c}{\chemfig{
        H
        -[1]C
            (-[3]H)
        =C
            ( -[1]H)
        -[7]H}  } 
        &   \schemestart
                \chemleft[
                    \chemfig{
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                    }
                \chemright]$_n$
            \schemestop
            &   Plastiktüten        \\
Polypropen (PP)
    &   \adjustbox{valign=c}{\chemfig{
         H
         -C
            ( -[2]H)
            ( -[6]H)
        -C
            ( -[2]H)
        =C
            ( -[1]H)
            ( -[7]H)}   }
        &   \schemestart
              \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[2]{CH3})
                    -[0]
                }
              \chemright]$_n$
            \schemestop
            &   Flaschendeckel, Brotdosen   \\
Polyvenylchlorid (Pvc)
    &   \adjustbox{valign=c}{\chemfig{
        H
        -[1]C
            ( -[3]H)
        =C
            ( -[1]Cl)
        -[7]H}  }
        &
        \schemestart
            \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[6]H)
                        ( -[2]{Cl})
                    -[0]
                }
            \chemright]$_n$
        \schemestop
            & Rohrleitungen, Venylböden, Schallplatten
    \\
Polyethafluorethen (PTFE)
    &   \adjustbox{valign=c}{\chemfig{
        F
        -[1]C
            ( -[3]F)
        =C
            ( -[1]F)
        -[7]F}  }
        &   \schemestart
              \chemleft[
                \chemfig{
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -[0]
                }
              \chemright]$_n$
            \schemestop
        &   Pfannenbeschichtung (Tephlon), Funktionskleidung (Gortex)
\end{tabularx}
}
\end{document}
2 Bernard Sep 28 2020 at 16:30

Làm thế nào về cách bố trí khác này?

\documentclass[a4paper, 12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\usepackage{chemfig}

\begin{document}

\setlength{\tabcolsep}{4pt}
\setlength{\extrarowheight}{2pt}
\renewcommand{\tabularxcolumn}[1]{m{#1}}
\begin{tabularx}{\textwidth}{|l|c|c|X|}
    Name & Monomer & Polymermolekül & Einsatzbeispiel\\
    \hline
    \multicolumn{4}{|l|}{Polyethen (PE)} \\[1ex]
            &
            \chemfig{
                H
                -[1]C
                    (-[3]H)
                =C
                    ( -[1]H)
                -[7]H
            } &
            \schemestart
                \chemleft[
                    \chemfig{
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                        -C
                            ( -[2]H)
                            ( -[-2]H)
                    }
                \chemright]$_n$
            \schemestop
            & Plastiktüten
    \\
   \multicolumn{4}{|l|}{ Polypropen (PP)} \\[1ex]
         & \chemfig{
             H
             -C
                ( -[2]H)
                ( -[6]H)
            -C
                ( -[2]H)
            =C
                ( -[1]H)
                ( -[7]H)
         } &
         \schemestart
            \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[2]{CH3})
                    -[0]
                }
            \chemright]$_n$
         \schemestop
         & Flaschendeckel, Brotdosen
    \\
    \multicolumn{4}{|l|}{Polyvenylchlorid (Pvc)} \\[1ex]
        &
        \chemfig{
            H
            -[1]C
                ( -[3]H)
            =C
                ( -[1]Cl)
            -[7]H
        } &
        \schemestart
            \chemleft[
                \chemfig{
                    -[0]C
                        ( -[2]H)
                        ( -[-2]H)
                    -C
                        ( -[6]H)
                        ( -[2]{Cl})
                    -[0]
                }
            \chemright]$_n$
        \schemestop
        & Rohrleitungen, Venylböden, Schallplatten
    \\
   \multicolumn{4}{|l|}{ Polyethafluorethen (PTFE)}\\[1ex]
        &
        \chemfig{
            F
            -[1]C
                ( -[3]F)
            =C
                ( -[1]F)
            -[7]F
        }&
        \schemestart
            \chemleft[
                \chemfig{
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -C
                        ( -[2]F)
                        ( -[6]F)
                    -[0]
                }
            \chemright]$_n$
        \schemestop
        & Pfannenbeschichtung (Tephlon),
        Funktionskleidung (Gortex)
\end{tabularx}

\end{document}