我正在用 Latex 写一本书(显然)。实际上是 Xetex。我制作了很多表格,\parbox
表格单元格中有 es。最后有很多重复,结果代码看起来很糟糕(很难找到树的内容~)。我隐约相信我已经看到了一些建议,建议使用某种列表环境以及自定义(模块化?)命令和长度来重构代码并使其更精简。这可能吗?那会怎样?
我将十分感激您的帮助。
我的 MWE 写在书里,如下
\documentclass{scrartcl}
\usepackage{fontspec} % for the Swedish chars
\usepackage{booktabs}
\begin{document}
\begin{table}[tb]
\centering
\begin{tabular}{@{}lll@{}}
\toprule
Lager & Vävnad & Syfte\\
\midrule
\parbox[t][][t]{.15\textwidth}{\raggedright\em
Tunica intima
} &
\parbox[t][][t]{.25\textwidth}{\raggedright\em
Tunt lager av endotelceller på insidan av ett lager av
epitel- och bindvävsceller.
} &
\parbox[t][][t]{.4\textwidth}{\raggedright\em
Endotelet har flera viktiga funktioner.
} \\
\parbox[t][][t]{.15\textwidth}{\raggedright\em
Tunica medica
} &
\parbox[t][][t]{.25\textwidth}{\raggedright\em
Smidig muskelvävnad och bindväv.
} &
\parbox[t][][t]{.4\textwidth}{\raggedright\em
Genom att kontrahera musklerna minskar lumen och blodtrycket
höjs.
} \\
\parbox[t][][t]{.15\textwidth}{\raggedright\em
Tunica externa
} &
\parbox[t][][t]{.25\textwidth}{\raggedright\em
Yttre, skyddande bindvävslager.
} &
\parbox[t][][t]{.4\textwidth}{\raggedright\em
Skyddar och håller kärlet i läge.
} \\
\bottomrule
\end{tabular}
\caption[Kärlväggarnas tre lager]{De tre lagren som kärlväggarna
består av.\label{tab:tunica}}
\end{table}
\end{document}
干杯
答案1
LaTeXp{length}
为此提供了一个说明符。使用array.sty
,您可以通过定义新的列说明符来减少重复代码量:
\documentclass{scrartcl}
\usepackage{fontspec} % for the Swedish chars
\usepackage{array,booktabs,ragged2e}
\newcolumntype{N}[1]{>{\hspace{0pt}\RaggedRight\itshape}p{#1\textwidth}}
\begin{document}
\begin{table}[tb]
\centering
\begin{tabular}{@{}N{.15}N{.25}N{.4}@{}}
\toprule
Lager & Vävnad & Syfte\\
\midrule
Tunica intima
& Tunt lager av endotelceller på insidan av ett lager av
epitel- och bindvävsceller.
& Endotelet har flera viktiga funktioner. \\
Tunica medica
& Smidig muskelvävnad och bindväv.
& Genom att kontrahera musklerna minskar lumen och blodtrycket
höjs. \\
Tunica externa
& Yttre, skyddande bindvävslager.
& Skyddar och håller kärlet i läge.\\
\bottomrule
\end{tabular}
\caption[Kärlväggarnas tre lager]{De tre lagren som kärlväggarna
består av.\label{tab:tunica}}
\end{table}
\end{document}
答案2
我提出了一个解决方案tabularx
。我还使用cellspace
包在行之间(自动)添加了一些垂直填充:
\documentclass[11pt]{scrartcl}
\usepackage{fontspec} % for the Swedish chars
\usepackage{polyglossia}
\setmainlanguage{swedish}
\usepackage{fontspec} % for the Swedish chars
\setmainfont{Minion Pro}
\usepackage{array,booktabs,ragged2e, tabularx}
\newcolumntype{L}{>{\RaggedRight\itshape\arraybackslash\hsize=.18\hsize}X}
\newcolumntype{M}{>{\RaggedRight\itshape\arraybackslash\hsize=.32\hsize}X}
\newcolumntype{R}{>{\RaggedRight\itshape\arraybackslash\hsize=.5\hsize}X}
\usepackage{cellspace}
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
\addparagraphcolumntypes{L, M, R}
\begin{document}
\begin{table}[tb]
\centering
\begin{tabularx}{\linewidth}{@{}S{L}S{M}S{R}@{}}
\toprule
Lager & Vävnad & Syfte\\
\midrule
Tunica intima
& Tunt lager av endotelceller på insidan av ett lager av
epitel- och bindvävsceller.
& Endotelet har flera viktiga funktioner. \\
Tunica medica
& Smidig muskelvävnad och bindväv.
& Genom att kontrahera musklerna minskar lumen och blodtrycket
höjs. \\
Tunica externa
& Yttre, skyddande bindvävslager.
& Skyddar och håller kärlet i läge.\\
\bottomrule
\end{tabularx}
\caption[Kärlväggarnas tre lager]{De tre lagren som kärlväggarna
består av.\label{tab:tunica}}
\end{table}
\end{document}