为什么\Huge后会有一段多出来的vspace,有无更优雅的调整垂直间距居中的方式

发布于 2024-08-01 20:44:34

想简单制作一个绘制title的命令,要求插入的文字垂直方向上居中
为何会出现多余的间距,使用vspace{1.5em}调整感觉很笨拙...有无更好的处理方式

image.png

\documentclass[12pt]{ctexart}
\usepackage{tikz}
\usepackage{lipsum}
\newcommand*{\nicetitle}[1]{
    \begin{center}
        \tikz \draw[orange!60,dashed] (.15\textwidth,0) -- +(.85\textwidth,0);\\
        %\vspace{1.5em}
        %\Huge \textbf{#1}
        \tikz \node at (.5\textwidth,0) {\Huge \textbf{#1}};
        \tikz \draw[blue!60,dashed] (.15\textwidth,0) -- +(.85\textwidth,0);
    \end{center}
}
\begin{document}
\lipsum[2]

\nicetitle{这是一个大标题}

\lipsum[2]
\end{document}

查看更多

关注者
0
被浏览
542
远方不远
远方不远 2024-08-02
这家伙很懒,什么也没写!

我是这么理解的:三个 TikZ 环境相当于三个水平盒子,由于长度问题不能放在同一行,所以该自定义命令总体是按照段落模式确定基线的,所以产生了你说的垂直空白。

以下给出一种思路以参考:mwe-1.png

以下为代码:

\documentclass[UTF8]{ctexart}
\usepackage{tikz}
    \usetikzlibrary{calc}
\usepackage{geometry}
    \geometry{showframe,margin=.5cm,papersize={16cm,20cm}}
\newcommand\nicetitleA[1]{\vskip1.5ex
    \centerline{\tikz
       {\node (#1) at (.5\textwidth,0) [align=center] {\Huge\bfseries #1};
        \draw [dashed,red,thick]  
            (.1\textwidth,0 |- #1.north west) -- 
            (#1.north east -| .9\textwidth,0);
        \draw [dashed,cyan,thick] 
            (.1\textwidth,0 |- #1.south west) -- 
            (#1.south east -| .9\textwidth,0);
       }%
    }
} 
\newcommand\nicetitleB[1]{\vskip1.5ex
    \centerline{\tikz
       {\node (#1) at (.5\textwidth,0) 
            [text width=.65\textwidth,align=center] {\Huge\bfseries #1};
        \draw [dashed,red,thick]  
            ($(.1\textwidth,0 |- #1.north west)+(0,.5cm)$) -- 
            ($(#1.north east -| .9\textwidth,0)+(0,.5cm)$);
        \draw [dashed,cyan,thick] 
            ($(.1\textwidth,0 |- #1.south west)+(0,-.5cm)$) -- 
            ($(#1.south east -| .9\textwidth,0)+(0,-.5cm)$);
       }%
    }
} 
\newcommand\zhlipsumX{劳仑衣普桑,认至将指点效则机,最你更枝。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。}
\begin{document}
\zhlipsumX

\nicetitleA{去吧,皮卡丘!}

\zhlipsumX

\nicetitleA{回来吧,皮卡丘!}

\zhlipsumX

\nicetitleB{该你上场了,妙蛙种子!}

\zhlipsumX

\nicetitleB{Come back soon!我亲爱的妙蛙种子!}

\zhlipsumX
\end{document}
1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览