如何禁用包括 tabularx 环境在内的整个文档的右对齐?

如何禁用包括 tabularx 环境在内的整个文档的右对齐?

我正在尝试禁用 Latex 中文本的右对齐,因为它会导致太多连字符,从而让人分心。

我尝试\raggedright如下操作。

\documentclass{article}
\usepackage{helvet}
\usepackage{tabularx}
\raggedright
\begin{document}
\section*{Foo}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras commodo
eleifend nisl, in finibus massa ullamcorper in. Integer a maximus nunc,
consequat porta lorem. Mauris bibendum blandit felis, in mollis dui
aliquet id. Donec non velit facilisis, maximus lorem a, hendrerit erat.
Donec sagittis nisl nec mauris aliquet, cursus sodales leo gravida. Duis
ac bibendum leo. Mauris scelerisque venenatis enim, in suscipit libero
mattis ac. Sed ac mi efficitur, sagittis risus vitae, rhoncus est. Nunc
nibh leo, bibendum sed massa ac, finibus pulvinar nibh. Sed a tempus
ligula. Integer vel auctor lacus, eu consectetur diam. 

\section*{Bar}
\begin{tabularx}{\linewidth}{l X}
RowA & Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras
commodo eleifend nisl, in finibus massa ullamcorper in. Integer a
maximus nunc, consequat porta lorem. Mauris bibendum blandit felis, in
mollis. \\
RowB & Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras
commodo eleifend nisl, in finibus massa ullamcorper in. Integer a
maximus nunc, consequat porta lorem. Mauris bibendum blandit felis, in
mollis. \\
\end{tabularx}
\end{document}

这导致以下输出。

在此处输入图片描述

您可以在输出中看到,虽然在普通段落中禁用了右对齐,但环境内部仍然存在右对齐tabularx,并且单词的连字符仍然出现。如何在包括tabularx环境在内的整个文档中禁用右对齐?

答案1

您必须使用包更改列array。您可以为此定义一个新的列类型:

% arara: pdflatex

\documentclass{article}
\usepackage{helvet}
\usepackage{tabularx}
\usepackage{array}
\raggedright
% if you find some solution like \renewcolumntpye{X}{...} it would be even nicer
\newcolumntype{R}{>{\raggedright\arraybackslash}X}

\begin{document}
    \section*{Foo}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras commodo
    eleifend nisl, in finibus massa ullamcorper in. Integer a maximus nunc,
    consequat porta lorem. Mauris bibendum blandit felis, in mollis dui
    aliquet id. Donec non velit facilisis, maximus lorem a, hendrerit erat.
    Donec sagittis nisl nec mauris aliquet, cursus sodales leo gravida. Duis
    ac bibendum leo. Mauris scelerisque venenatis enim, in suscipit libero
    mattis ac. Sed ac mi efficitur, sagittis risus vitae, rhoncus est. Nunc
    nibh leo, bibendum sed massa ac, finibus pulvinar nibh. Sed a tempus
    ligula. Integer vel auctor lacus, eu consectetur diam. 

    \section*{Bar}
    \begin{tabularx}{\linewidth}{l R}
        RowA & Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras
        commodo eleifend nisl, in finibus massa ullamcorper in. Integer a
        maximus nunc, consequat porta lorem. Mauris bibendum blandit felis, in
        mollis. \\
        RowB & Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras
        commodo eleifend nisl, in finibus massa ullamcorper in. Integer a
        maximus nunc, consequat porta lorem. Mauris bibendum blandit felis, in
        mollis. \\
    \end{tabularx}
\end{document}$

作为印刷上的妥协,我建议使用

\usepackage[<your language>]{babel}
\usepackage{ragged2e}
\usepackage{microtype}
\RaggedRight

代替

\raggedright

相关内容