Как автоматически заставить latex не выравнивать текст, когда это неразумно?

Как автоматически заставить latex не выравнивать текст, когда это неразумно?

У меня получился следующий пример:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[brazil]{babel}

\usepackage{array,ragged2e}

\begin{document}

\section{Riscos}

    \begin{tabular}{|p{2.5cm}|p{2.5cm}|p{2.0cm}|p{2.0cm}|p{2.5cm}|p{2.5cm}|}

    \hline Riscos                       & Probabilidade & Impacto & Prioridade & Resposta            & Prevenção                    \\ \hline
    \hline Problemas com notebook       & Baixa         & Médio   & Alta       & Usar desktop        & Manutenção preventiva        \\
    \hline Problemas com o desktop      & Baixa         & Alto    & Alta       & Usar o labUFSC      & Manutenção preventiva        \\
    \hline Problemas com perda de dados & Baixa         & Alto    & Alta       & Uso do backup       & Backup periódicos            \\
    \hline Problemas de Saúde           & Baixa         & Alto    & Alta       & Tratamento adequado & Cuidados diários apropriados \\ \hline

    \end{tabular}

\end{document}

Что генерирует этот PDF-файл:

введите описание изображения здесь

Буква o, указанная на изображении, не должна быть размещена/выровнена по правому краю пробела. Я думаю, что латекс должен уметь определять такую ​​аберрацию.

У меня вопрос: есть ли способ заставить Latex автоматически не выравнивать текст по ширине, если слова слишком редки, как в примере выше?

Я долго искал и обнаружил, что могу вручную заставить некоторые слова не быть плохо выровненными, однако мне не нравится идея делать это вручную, потому что это может сделать автоматически сам latex, когда выполняются определенные условия, то есть, когда пересекаются определенные пределы интервалов.


Обновлять

Отвечая на комментарий, я бы хотел, чтобы latex не выравнивал слова, если они выходят за пределы минимальной ширины, и соответственно количеству символов в текущей строке.

Например, если строка содержит менее 50 символов и выравнивание приведет к образованию пробела размером более 30 пикселей или 6 символов, то выравнивание для этой строки применять нельзя.

решение1

Вот три версии таблицы с использованием

  • пакеты arrayи ragged2eвставлять \RaggedRightв начало каждой ячейки; это дает больше возможностей для переносов строк, что полезно для узких столбцов.

  • пакет arrayдля вставки \raggedrightв начало каждой ячейки; это приводит к меньшему количеству переносов строк, но текст выравнивается по левому краю.

  • пакеты arrayи booktabs; это похоже на вторую версию, но без вертикальных линий.


массив, ragged2e и \RaggedRight

введите описание изображения здесь

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[brazil]{babel}

\usepackage{array,ragged2e}

\begin{document}

\noindent
\begin{tabular}{|*2{>{\RaggedRight\arraybackslash}p{2.5cm}|}
                 *2{>{\RaggedRight\arraybackslash}p{2.0cm}|}
                 *2{>{\RaggedRight\arraybackslash}p{2.5cm}|}}

    \hline Riscos                       & Probabilidade & Impacto & Prioridade & Resposta            & Prevenção                    \\ \hline
    \hline Problemas com notebook       & Baixa         & Médio   & Alta       & Usar desktop        & Manutenção preventiva        \\
    \hline Problemas com o desktop      & Baixa         & Alto    & Alta       & Usar o labUFSC      & Manutenção preventiva        \\
    \hline Problemas com perda de dados & Baixa         & Alto    & Alta       & Uso do backup       & Backup periódicos            \\
    \hline Problemas de Saúde           & Baixa         & Alto    & Alta       & Tratamento adequado & Cuidados diários apropriados \\ \hline

\end{tabular}

\end{document}

массив и \raggedright

введите описание изображения здесь

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[brazil]{babel}

\usepackage{array}

\begin{document}

\noindent
\begin{tabular}{|*2{>{\raggedright\arraybackslash}p{2.5cm}|}
                 *2{>{\raggedright\arraybackslash}p{2.0cm}|}
                 *2{>{\raggedright\arraybackslash}p{2.5cm}|}}

    \hline Riscos                       & Probabilidade & Impacto & Prioridade & Resposta            & Prevenção                    \\ \hline
    \hline Problemas com notebook       & Baixa         & Médio   & Alta       & Usar desktop        & Manutenção preventiva        \\
    \hline Problemas com o desktop      & Baixa         & Alto    & Alta       & Usar o labUFSC      & Manutenção preventiva        \\
    \hline Problemas com perda de dados & Baixa         & Alto    & Alta       & Uso do backup       & Backup periódicos            \\
    \hline Problemas de Saúde           & Baixa         & Alto    & Alta       & Tratamento adequado & Cuidados diários apropriados \\ \hline

\end{tabular}

\end{document}

массив, booktabs и \raggedright

введите описание изображения здесь

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[brazil]{babel}

\usepackage{array,booktabs}

\begin{document}

\noindent
\begin{tabular}{*2{>{\raggedright\arraybackslash}p{2.5cm}}
                *2{>{\raggedright\arraybackslash}p{2.0cm}}
                *2{>{\raggedright\arraybackslash}p{2.5cm}}}
\toprule
    Riscos                       & Probabilidade & Impacto & Prioridade & Resposta            & Prevenção                    \\
\midrule
    Problemas com notebook       & Baixa         & Médio   & Alta       & Usar desktop        & Manutenção preventiva        \\
\midrule
    Problemas com o desktop      & Baixa         & Alto    & Alta       & Usar o labUFSC      & Manutenção preventiva        \\
\midrule
    Problemas com perda de dados & Baixa         & Alto    & Alta       & Uso do backup       & Backup periódicos            \\
\midrule
    Problemas de Saúde           & Baixa         & Alto    & Alta       & Tratamento adequado & Cuidados diários apropriados \\
\bottomrule
\end{tabular}

\end{document}

Связанный контент