Группировка элементов в одну строку для избежания переноса

Группировка элементов в одну строку для избежания переноса

Я создаю документ, связанный с покером, и использую следующие команды, чтобы отображать карты:

% Suit image adjustments:
\newcommand{\suit}[1]{\includegraphics[width=8pt, height=8pt]{#1}}

% Commands to display suit only.
\newcommand{\heart}{\suit{../res/heart_26x26.png}}
\newcommand{\club}{\suit{../res/club_26x26.png}}
\newcommand{\spade}{\suit{../res/spade_26x26.png}}
\newcommand{\daimond}{\suit{../res/daimond_26x26.png}}

% Commands to display both rank and suit.
\newcommand{\ofheart}[1]{\textcolor{red}{#1} \heart}
\newcommand{\ofclub}[1]{\textcolor{black}{#1} \club}
\newcommand{\ofspade}[1]{\textcolor{black}{#1} \spade}
\newcommand{\ofdaimond}[1]{\textcolor{red}{#1} \daimond}

Это работает так, как и задумано, и я доволен результатами. Однако, когда карточки переносятся на новую линию, я иногда замечаю, чтозвания отделяются от своих костюмов.

Есть ли способ «сгруппировать» элементы, чтобы они вместе переносились на новые строки?

решение1

Я предлагаю использовать существующие символы вместо изображений для мастей. Тогда вы можете просто использовать неразрывный пробел ~(EDIT: или, что еще лучше, тонкий пробел, \,который также неразрывен, как предложил @Qrrbrbirlbel), чтобы избежать переноса строки между рангом и мастью.

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

\documentclass{article}

\usepackage{xcolor}
\usepackage{arev}

\DeclareSymbolFont{extraup}{U}{zavm}{m}{n}
\DeclareMathSymbol{\varheart}{\mathalpha}{extraup}{86}
\DeclareMathSymbol{\vardiamond}{\mathalpha}{extraup}{87}

\newcommand\ofheart[1]{\textcolor{red}{#1\,$\varheart$}}
\newcommand\ofclub[1]{\textcolor{black}{#1\,$\clubsuit$}}
\newcommand\ofspade[1]{\textcolor{black}{#1\,$\spadesuit$}}
\newcommand\ofdiamond[1]{\textcolor{red}{#1\,$\vardiamond$}}

\begin{document}

\ofclub{3} \qquad \ofspade{K} \qquad \ofheart{Q} \qquad \ofdiamond{4}

\end{document}

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