我正在尝试排版德语-斯洛伐克语词汇表和一些语法。由于表格条目可能会很长,我使用带有 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
。