制作带有文本的框,停止在单独行上显示文本

制作带有文本的框,停止在单独行上显示文本

我想插入一个矩形后跟一些文本,例如如果破折号表示矩形的位置,我想实现如下效果:

---- 一些文本

我正在使用文章文档类。我尝试过:

\begin{color}[cmy]{0.7, 0.5, 0.3}
\noindent
\makebox[\linewidth][l]{\rule{2cm}{4pt}}
\fontsize{14}{0}\fontfamily{cmss}\selectfont\textbf{Experience}
\end{color}

这会产生一个蓝色矩形框,但文本会出现在下面,而不是相邻。如果我删除\makebox\fontsize行之间的换行符,文本会出现在与蓝色矩形相同的行上,但中间有大量空白。
任何想法都将不胜感激。

答案1

环境color不存在。虽然\begin{color}没有出现错误,但正如您所发现的,其影响是相当难以预测的。

解决方法是将颜色变化放入盒子中。

不要使用明确的字体大小或字体系列设置;抽象命令更好。另外给颜色命名也更好,因为它有助于抽象事物并在应该的地方获得相同的颜色。

\documentclass{article}
\usepackage{xcolor}

\usepackage{showframe} % just for the example

\definecolor{cventry}{cmy}{0.7, 0.5, 0.3}

\begin{document}

\section{Wrong}

The following is wrong because the \texttt{color} environment
does not exist and using \verb|\begin{color}| leads to
unexpected results

\bigskip

\begin{color}[cmy]{0.7, 0.5, 0.3}
\noindent
\makebox[\linewidth][l]{\rule{2cm}{4pt}}
\fontsize{14}{0}\fontfamily{cmss}\selectfont\textbf{Experience}
\end{color}

\section{Right}

The solution is to put everything in the box.

\bigskip

\noindent\makebox[\linewidth][l]{%
  \color{cventry}%
  \Large\sffamily
  \rule{2cm}{4pt} \textbf{Experience}%
}

\end{document} 

在此处输入图片描述

showframe包绘制了文本区域的边框;不要在文档的生产版本中使用它。

实际上,错误不是由于color环境不存在,而是由于您将规则放在了\linewidth宽框中,因此文本必然会进入下一行。但我更愿意强调 的错误用法\color

答案2

将文本放入框中,并使字体改变如下:

\documentclass{article}%
\usepackage[showframe]{geometry}%
 \usepackage{xcolor}

\begin{document}

\begin{color}[cmy]{0.7, 0.5, 0.3}
  \noindent
  \fontsize{14}{0}\fontfamily{cmss}\selectfont
  \makebox[\linewidth][l]{\rule{2cm}{4pt}\textbf{Experience}}
\end{color}

\end{document} 

在此处输入图片描述

相关内容