LaTeX备忘——tcolorbox宏包应用示例集

tcolorbox宏包可以为我们提供更好看的文本框,这里列出一些应用例子方便以后查询使用。


操作系统:Ubuntu 20.04

编辑工具:TeXstudio 2.12.22

编译方式:LuaLaTeX


完整源代码如下:

% 开源中国,陆巍的博客
\documentclass[oneside]{article}%

% 注意宏包顺序,有可能会报错
\usepackage{ctex}% 中文支持
\usepackage{geometry}% 用于页面设置
\usepackage[dvipsnames, svgnames, x11names]{xcolor} % 颜色支持
\usepackage{graphics}% 图形支持
\usepackage[
  colorlinks=true,
  linkcolor=Navy,
  urlcolor=Navy,
  citecolor=Navy,
  anchorcolor=Navy
]{hyperref}
\usepackage{enumerate}% 枚举支持
\usepackage{tcolorbox}% 支持更好的文本框
\tcbuselibrary{skins, breakable}% 支持文本框跨页
\usepackage[english]{babel}% 载入美式英语断字模板
\usepackage[cache=false]{minted}% 支持更好的代码显示

% 设置为A4纸,边距适中模式(永中office)
\geometry{%
  width = 210mm,%
  height = 297mm,
  left = 19.1mm,%
  right = 19.1mm,%
  top = 25.4mm,%
  bottom = 25.4mm%
}

\hyphenpenalty = 1000% 断字设置,值越大,断字越少。
\setmainfont{Ubuntu Mono}% 设置全局英文字体
\setlength{\parindent}{2em}% 缩进
\setlength{\parskip}{2ex} % 段间距
\setcounter{secnumdepth}{3} % 显示到第3级section的编号


\begin{document}

\section{示例一:跨页的文本框}
默认的tcolorbox文本框是不会跨页显示的,在本例中演示如何实现。

……

……

……

……

……

……

……

……

……

……


\begin{minted}[linenos=true, frame=single, breaklines=true]{c++}
#include "gmock/gmock.h"
TEST(SoundexEncoding, RetainSoleLetterOfOneLetterWord) {
Soundex soundex;
}
\end{minted}

\begin{tcolorbox}[enhanced, colback=GhostWhite, colframe=LightGray, coltitle=black, title=测试列表, fonttitle=\bfseries\Large, bottomrule=3ex, breakable=true]
  \qquad 在TDD过程中,你编写并通过的第一个测试,都代表新加入到系统中的一种行为。除了完成整个功能外,通过的测试数目是衡量进度的最佳指标,每个测试都代表系统中的一个小的行为。
  
  \qquad 虽然不能事先知晓所有需要编写的测试,但需要对将要处理的事务有一些初步的认识。许多使用TDD方法的开发者将他们想到的测试记录到\textbf{测试列表}中(测试列表在\textit{Test Driven Development: By Example}[Bec02]中首次提出)。这个列表包含测试的名称,或在需要做代码清理时提示。
  
  \qquad 可以把测试列表写在工作台边上的写字板上(也可以把它作为注释写入测试文件,只要在提交代码前删掉就行)。这个列表仅属于你自己,所以如果喜欢的话,大可以使用简要或隐晦的表达方式。
  
  \qquad 在做测试驱动开发并思考新的测试用例时,记得把它们加到测试列表里。当添加一些你认为将来需要清理的代码时,也在这个列表中加一个提醒项。在完成一个测试或任务时,把它从列表中删除即可,就这么简单。如果在编码结束后,发现仍有没完成的任务项,可以把它们加入到下一个编码阶段的列表。
  
  \qquad 可以把测试列表作为初始设计的一部分。它能帮助说明你认为自己需要构建什么,它也可以启发你去思考其他需要做的事情。
  
  \qquad 不要被这个列表束缚,它决定不了你要做什么,也决定不了你做事的顺序。但是,TDD是一个自然的流程,通常要顺着测试指引的方向去做下一件事。
  
  \qquad 在学习TDD时,管理测试列表非常管用。试一试吧!
\end{tcolorbox}


\section{示例二}
\begin{tcolorbox}[
  colback=MistyRose,
  coltext=red,
  colframe=LightGray,
  boxrule=0.5mm
  ]
  \begin{verbatim}
  <!-- Not recommended: omits the protocol -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  
  <!-- Not recommended: uses HTTP -->
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>\end{verbatim}
\end{tcolorbox}

\begin{tcolorbox}[
  colback=white,
  coltext=ForestGreen,
  colframe=LightGray,
  boxrule=0.5mm
  ]
  \begin{verbatim}
  <!-- Recommended -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>\end{verbatim}
\end{tcolorbox}

\begin{tcolorbox}[
  colback=MistyRose,
  coltext=red,
  colframe=LightGray,
  boxrule=0.5mm
  ]
  \begin{verbatim}
  /* Not recommended: omits the protocol */
  @import '//fonts.googleapis.com/css?family=Open+Sans';
  
  /* Not recommended: uses HTTP */
  @import 'http://fonts.googleapis.com/css?family=Open+Sans';\end{verbatim}
\end{tcolorbox}

\begin{tcolorbox}[
  colback=white,
  coltext=ForestGreen,
  colframe=LightGray,
  boxrule=0.5mm
  ]
  \begin{verbatim}
  /* Recommended */
  @import 'https://fonts.googleapis.com/css?family=Open+Sans';\end{verbatim}
\end{tcolorbox}

\end{document}
示例一:跨页的文本框

默认情况下,tcolorbox文本框不会跨页,要实现这一功能需要加入

\tcbuselibrary{skins, breakable}

然后在使用时,加入参数:breakable=true。为了更好的显示,最好加入enhanced参数,否则在第一页显示的文本框下面会出现边框。

以上代码的执行效果如下:

tcolorbox宏包应用示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章