具有固定列宽和语言切换的表格

具有固定列宽和语言切换的表格

我正在尝试排版德语-斯洛伐克语词汇表和一些语法。由于表格条目可能会很长,我使用带有 p 列的表格。为了正确连字符,我想使用 babel 在相应列中切换到斯洛伐克语。为了做到这一点,我定义了

\newcommand{\slk}[1]{\selectlanguage{slovak}#1\selectlanguage{ngerman}}

它会切换到斯洛伐克语,然后切换回德语。但是,如果表格是用 tabular-environment 编码的,则右列中会出现额外的换行符。如果我对 longtable 执行同样的操作,则不会出现额外的换行符。有没有办法修复 tabular 问题?

\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[slovak,ngerman]{babel}
\usepackage{droid}
\usepackage{tipa}
\usepackage{array,longtable}
\newcommand{\slk}[1]{\selectlanguage{slovak}#1\selectlanguage{ngerman}}
\begin{document}
\begin{center}
\begin{tabular}{|p{2cm}|p{2cm}|}
Nom.&\slk{môj, tvoj, náš, váš}\\
Gen.&\slk{-ho}
\end{tabular}
\begin{longtable}{|p{2cm}|p{2cm}|}
Nom.&\slk{môj, tvoj, náš, váš}\\
Gen.&\slk{-ho}
\end{longtable}
\end{center}
\end{document}

症状与使用 tabularx 和 datatool 从 csv 文件创建表格但 NoHyper 环境无法解决我的问题。(是的,hyperref 也会出现在我的最终文档中。)

答案1

\selectlanguage在文档中明确使用的情况应该非常少见。

对于您来说,正确的命令是\foreignlanguage

\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[slovak,ngerman]{babel}

\usepackage{droid}
\usepackage{tipa}
\usepackage{array,longtable}

\newcommand{\slk}[1]{\foreignlanguage{slovak}{#1}}

\begin{document}

\begin{center}
\begin{tabular}{|p{2cm}|p{2cm}|}
Nom.&\slk{môj, tvoj, náš, váš}\\
Gen.&\slk{-ho}
\end{tabular}
\end{center}

\begin{longtable}{|p{2cm}|p{2cm}|}
Nom.&\slk{môj, tvoj, náš, váš}\\
Gen.&\slk{-ho}
\end{longtable}

\end{document}

请注意,longtable默认情况下居中。另外我不会使用utf8x,而是使用utf8

在此处输入图片描述

相关内容