You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除tcolorbox末尾空行并实现内容垂直居中?

解决方案

1. 去除末尾空行

原代码中alltt环境会保留输入时的末尾空行,只需在环境结束部分添加\unskip即可移除该空白:

修改generalSrcCode环境的结束定义:

{\end{alltt}\unskip\end{tcolorbox}
 \vspace{5pt}
 }

\unskip会清除alltt环境末尾由空行产生的垂直空白。

2. 实现内容垂直居中

原代码里的valign=center是控制盒子与周围文本的基线对齐,若要让内容在盒子内部垂直居中,需调整tcolorbox的选项:

  • 添加text valign=center,确保盒子内的内容垂直居中
  • 保留原有的top=5pt, bottom=5pt内边距,为内容提供上下留白,让居中效果更明显

修改后的完整generalSrcCode环境定义:

\newenvironment{generalSrcCode}
  {\vspace{5pt}
   \begin{tcolorbox}[
   colback=lightgray,
   coltext=black,
   boxrule=0pt,
   arc=5pt,
   before skip=5pt,
   after skip=5pt,
   left=5pt,
   right=5pt,
   top=5pt,
   bottom=5pt,
   boxsep=0pt,
   text valign=center,
   baseline=0pt
  ]\begin{alltt}\color{black}\ignorespaces}
  {\end{alltt}\unskip\end{tcolorbox}
   \vspace{5pt}
 }

完整修改代码

\documentclass[11pt]{book}
\usepackage[default]{opensans}
\usepackage{alltt}
\usepackage[listings]{tcolorbox}
\usepackage{xcolor}

\newenvironment{generalSrcCode}
  {\vspace{5pt}
   \begin{tcolorbox}[
   colback=lightgray,
   coltext=black,
   boxrule=0pt,
   arc=5pt,
   before skip=5pt,
   after skip=5pt,
   left=5pt,
   right=5pt,
   top=5pt,
   bottom=5pt,
   boxsep=0pt,
   text valign=center,
   baseline=0pt
  ]\begin{alltt}\color{black}\ignorespaces}
  {\end{alltt}\unskip\end{tcolorbox}
   \vspace{5pt}
 }

 \begin{document}
 \noindent
Run the following commands in a terminal:
\begin{generalSrcCode}
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
\end{generalSrcCode}
\noindent
Once you have run the above-mentioned commands, 
\end{document}

上述修改同时满足了去除末尾空行和内容垂直居中的需求。

内容的提问来源于stack exchange,提问作者user17911

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 10:34:58