如何去除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
相关产品推荐
相关产品推荐

