Tabularx: столбец меньше текста

Sep 28 2020

Итак, вот минимальный код:

\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}

Вот как это выглядит:

Как видите, текст в таблице не отформатирован. У тебя есть идеи, как я могу это исправить?

Ответы

1 leandriis Sep 29 2020 at 01:52

Вот еще две версии вашего стола. В обоих случаях я исправил химические формулы молекул полимера, используя \polymerdelimиз chemfigупаковки. С помощью этой команды квадратные скобки правильно рисуются через самые внешние связи, а не вокруг них. Я также исправил некоторые опечатки в названиях соединений и в примерах применения.

\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 не может переносить первое слово абзаца, поставьте

\hspace*{0pt}

в начале ячеек X, например, вы можете добавить это в каждую ячейку X, используя

>{\hspace*{0pt}}X 

в вашей табличной преамбуле

но может потребоваться помощь в расстановке дефисов между химическими терминами, в \-зависимости от того, какие шаблоны естественного языка вы используете, вам может потребоваться

\usepackage[german]{babel} %German?

Поскольку эти слова не будут хорошо переноситься с английскими шаблонами по умолчанию.

Вы также можете использовать шрифт меньшего размера, чтобы он лучше подходил

3 Mico Sep 28 2020 at 17:37

В дополнение к префиксу Xтипа столбца с \hspace{0pt}директивой, разрешающей расстановку переносов - см. Также ответ Дэвида - вы можете создать список приемлемых шаблонов переноса, поскольку babel/ngermanкомбинация , как правило, не очень хорошо осведомлена о том, как такие слова, как «Поливенилхлорид» "и" Polyethafluorethen "могут быть перенесены через дефис.

\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

Небольшой вариант ответа @Mico. Используются:

  • cellspace для добавления небольшого вертикального пространства вокруг содержимого ячеек
  • djustboxдля вертикального центрирования \chemfigформулы

\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

Как насчет этого другого макета?

\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}