我不知道为什么,但是当我将一些句子放在 with 里面时tcolorbox
,halign=center
如果我改变字体大小(使用 lualatex),那么单词之间的间距就是在环境之前定义的间距......所以它看起来很尴尬,因为我无法真正改变里面的字体大小:
\documentclass{article}
\usepackage{fontspec}
\usepackage{luatex85}
\usepackage[most]{tcolorbox}
\tcbuselibrary{raster,skins,breakable}
\begin{document}
\fontsize{50pt}{50pt}\selectfont
Here is a 50pt text.
\begin{tcolorbox}[halign=center]
{\fontsize{10pt}{10pt}\selectfont
Look my spacing.} % Too big spacing
{\fontsize{20pt}{20pt}\selectfont
And mine.} % Too big spacing
{\fontsize{50pt}{50pt}\selectfont
And mine.} % Good
\end{tcolorbox}
% Why does this line change the spacing, even if I use fontsize later?
\fontsize{10pt}{10pt}\selectfont
\begin{tcolorbox}[halign=center]
{\fontsize{10pt}{10pt}\selectfont
Look my spacing.} % Good
{\fontsize{20pt}{20pt}\selectfont
And mine.} % Too small spacing
{\fontsize{50pt}{50pt}\selectfont
And mine.} % Too small spacing
\end{tcolorbox}
\end{document}
知道问题是什么吗?我想将文本居中,仅在 tcolorbox 内更改字体大小,最终能够在同一个 tcolorbox 中使用多种尺寸。
谢谢!
\begin{center}...\end{center}
-- 编辑 -- 我找到了一个使用而不是...的解决方案halign=center
,但我仍然不明白 有什么问题halign=center
。我之所以问这个问题,是因为现在 lua 脚本正在生成一些 latex 代码,它实际上使用了halign=center
。
答案1
tcolorbox
文档(第 30 页) 建议使用halign=flush center
option 而不是halign=center
。它还会重定向到第 234 至 238 页中的相应解释pgfmanual
。
\documentclass{article}
\usepackage{fontspec}
\usepackage{luatex85}
\usepackage[most]{tcolorbox}
\tcbuselibrary{raster,skins,breakable}
\begin{document}
\begin{tcolorbox}
{\fontsize{10pt}{10pt}\selectfont
Look my spacing.} % Too big spacing
{\fontsize{20pt}{20pt}\selectfont
A larger font should show a larger spacing.} % Too big spacing
{\fontsize{50pt}{50pt}\selectfont
And even a larger one if font size is larger.} % Good
\end{tcolorbox}
\begin{tcolorbox}[halign=center]
{\fontsize{10pt}{10pt}\selectfont
Look my spacing.} % Too big spacing
{\fontsize{20pt}{20pt}\selectfont
A larger font should show a larger spacing.} % Too big spacing
{\fontsize{50pt}{50pt}\selectfont
And even a larger one if font size is larger.} % Good
\end{tcolorbox}
\begin{tcolorbox}[halign=flush center]
{\fontsize{10pt}{10pt}\selectfont
Look my spacing.} % Too big spacing
{\fontsize{20pt}{20pt}\selectfont
A larger font should show a larger spacing.} % Too big spacing
{\fontsize{50pt}{50pt}\selectfont
And even a larger one if font size is larger.} % Good
\end{tcolorbox}
\end{document}
答案2
我遇到了和你一样的问题。你可以通过在相应的框选项中替换halign=center
来轻松解决它。before upper*=\centering
\documentclass{article}
\usepackage{fontspec}
\usepackage{luatex85}
\usepackage[most]{tcolorbox}
\tcbuselibrary{raster,skins,breakable}
\begin{document}
\fontsize{50pt}{50pt}\selectfont
Here is a 50pt text.
\begin{tcolorbox}[before upper*=\centering]
{\fontsize{10pt}{10pt}\selectfont
Look my spacing.}\\
{\fontsize{20pt}{20pt}\selectfont
And mine.}\\
{\fontsize{50pt}{50pt}\selectfont
And mine.}
\end{tcolorbox}
\end{document}