LaTeXStudio.net 问答 RSS 最新问答 https://ask.latexstudio.net/addons/ask/rss/index Tue, 12 Aug 2025 00:32:16 +0800 如何为自然段设置计数器? 在下面的代码中,命令\noteinpar被用于在一个自然段中,为某些内容加粗并给出随文的括号型注释(属正文内容,非代码中的百分号注释之类),即把注释放在段落中。当遇到下一个段落时,希望可以实现自动重新编号。

为此,只需要得到自然段的计数器,然后将代码\newcounter{noteinpar}改为\newcounter{noteinpar}[<paragrahph counter>]即可。

\documentclass{ctexart}
\usepackage[scale=0.85,centering,showframe]{geometry}
\newcounter{noteinpar}
\NewDocumentCommand{\noteinpar}{ mm }{%
    \textbf{#1}\,\ignorespaces${}^{\stepcounter{noteinpar}\thenoteinpar}${\fangsong (#2)}%
}
\begin{document}

    劳仑衣\noteinpar{普}{桑},认至将指点效\noteinpar{则}{机},最你\noteinpar{更}{枝}。想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴。用阶千样响领交出,器程办管据家元写,名其直金团。化达书据始价算每百青,金低给天济办作照明,取路豆学丽适市确。

    如提单各样备再成农\noteinpar{各}{政},设头律走克美技\noteinpar{说}{没},体交才路此\noteinpar{在}{杠}。响育油命转处他住有,一须通给对非交矿今该,花象更面据压来。与花断第然调,很处己队音,程承明邮。常系单要外史按机速引也书,个此少管品务美直管战,子大标蠢主盯写族般本。农现离门亲事以响规,局观先示从开示,动和导便命复机李,办队呆等需杯。见何细线名必子适取米制近,内信时型系节新候节好当我,队农否志杏空适花。又我具料划每地,对算由那基高放,育天孝。派则指细流金义月无采列,走压看计和眼提问接,作半极水红素支花。果都济素各半走,意红接器长标,等杏近乱共。层题提万任号,信来查段格,农张雨。省着素科程建持色被什,所界走置派农难取眼,并细杆至志本。

\end{document}

image.png

]]>
https://ask.latexstudio.net/ask/question/17880.html Mon, 11 Aug 2025 16:47:07 +0800
如何让自定义标签右对齐? 如何让数学公式自定义标签右对齐?

如图:image.png 想要:image.png 尝试的努力:

\documentclass[12pt]{ctexart}
\usepackage{amsmath,amsthm,amssymb,amsfonts}

\begin{document}

\begin{align*}
        \left\{\begin{array}{l}
            equation1, \hspace{5em} a\\
            equation2, \hfill b\\
            equation3 .\hfill c
        \end{array}\right.
    \end{align*}

\end{document}
]]>
https://ask.latexstudio.net/ask/question/17878.html Mon, 11 Aug 2025 10:11:10 +0800
如何在graypara中使用缩进? 在对latex的使用中,我遇到了一个问题就是我需要在使用graypara的情况下对其中的一部分段落进行缩进,请问有没有大佬可以解决我的困惑。谢谢

]]>
https://ask.latexstudio.net/ask/question/17877.html Sun, 10 Aug 2025 19:35:14 +0800
如何确定树图的“动态中点”? A

如何保证上图中红字所在的结点,处在上下相邻的两个cyan小圆点的绝对中间位置?

当更改level distance后,由于红字结点的位置是一个绝对位置(A.south)的绝对偏移量(-.55cm),要保证它处在绝对中间位置,应当使用相对位置,或者说红字所在的结点很有可能是一个预定义的结点。

因太久没看文档,(如果存在,)我忘记了它的名字了。感觉如果能找出来,就可以用两定点的中点语法($(A)!.5!(B)$)来表示红字结点的位置。重点在于观察这个树状图的连接线是如何在向下后分别向左和向右拐弯。

如果并不存在这样的预定义结点,请问应该如何使之实现?

\documentclass[border=2pt,tikz]{standalone}
\usetikzlibrary{trees}
\tikzset{
    every node/.style={draw,inner sep=2pt},
    level/.style={level distance=1.5cm},
    level 1/.style={sibling distance=4.5cm},
    level 2/.style={sibling distance=2cm}
}
\begin{document}
\begin{tikzpicture}
    \node (A) {A} 
    [edge from parent fork down]
    child {node {A.1} 
           child {node {A.1.1}}
           child {node {A.1.2}}
          }
    child {node {A.2}
           child {node {A.2.1}}
           child {node {A.2.2}}
          }
    ;
    \fill [blue] 
          ([yshift=-.275cm]A.south) circle (1pt);
    \fill [cyan]     
          (A.center)                circle (1pt)
          (A.south)                 circle (1pt)
          ([yshift=-.55cm]A.south)  circle (1pt);
    \node at ([yshift=-.275cm]A.south) 
          [scale=.375,font=\ttfamily,draw=none,text=red] 
          {hello};
\end{tikzpicture}
\end{document}
]]>
https://ask.latexstudio.net/ask/question/17875.html Wed, 06 Aug 2025 02:14:22 +0800
关于wileyNJDv5模板报\reserveinserts{28}未定义的控制序列问题? Description:

在如下官方链接下载到「WileyNJDv5_Template.zip模板」文件

image.png

其目录结构大致为:

image.png

其中的主文件原本为「wileyNJDv5_AMA.tex」,但这并非最小示例

要想复现问题,可以在根目录下新建main.tex文件:

% main.tex
\documentclass[AMA,Times1COL]{WileyNJDv5}
\begin{document}

Hello, world!

\end{document}

在命令行使用xelatex编译会得到:

Package etex Warning: Extended allocation already in use.
(etex)                etex.sty code will not be used.
(etex)                To force etex package to load, add
(etex)                \RequirePackage{etex}
(etex)                at the start of the document.

)
! Undefined control sequence.
<recently read> \reserveinserts

l.356 \reserveinserts
                     {28}% included etex package and \reserveinserts{...} to...

?

Question:

在2025年的现在,要想顺利编译该模板最佳实践是什么?

(maybe) related references:

]]>
https://ask.latexstudio.net/ask/question/17874.html Tue, 05 Aug 2025 21:55:27 +0800
如何解决Beamer数学公式中字母更偏向右侧括号的问题? 在Beamer中,输入数学公式时,小括号内的公式更偏向右侧括号,要如何解决。

\documentclass{beamer}
\usepackage[noindent]{ctexcap}
\usetheme{Berkeley}
\usefonttheme{serif}
\usecolortheme{spruce}
\begin{document}
    \begin{frame}
        \begin{align*}
            & F(x) \\
            & F \left( \frac{1}{x} \right) \\
            & |x| \\
            & \left| \frac{1}{x} \right|
        \end{align*}
    \end{frame}
\end{document}

1.png

]]>
https://ask.latexstudio.net/ask/question/17873.html Mon, 04 Aug 2025 16:15:47 +0800
如何不自动跳过第一页,而且使得图片看起来舒服 \documentclass{article} \usepackage{graphicx} % Required for inserting images \usepackage{ctex} \title{层次分析法暑期练习} \author{qiao xinkai} \date{\today} \begin{document} \maketitle \section{模型建立} \subsection{建立系统的递阶层次结构} \begin{figure} \centering \includegraphics[width=1.2\textwidth,height=0.9\textwidth]{photo/层次分析法图1.jpg} \caption{图1.1.饲养地选择层次结构图} \label{fig:cengci} \end{figure} \end{document} ```![层次分析法图1.jpg](https://pics.latexstudio.net/uploads/20250802/c66134dfe2d56ead98c49dfa8b21bf65.jpg) ]]> https://ask.latexstudio.net/ask/question/17870.html Sat, 02 Aug 2025 09:58:16 +0800 如何画图中的阶梯形矩阵?虚线得画上喔 hu01png.png

]]>
https://ask.latexstudio.net/ask/question/17861.html Tue, 29 Jul 2025 15:18:20 +0800
first / top / bottom mark 是什么,如何理解 如题。在研究 titleps问题时我看到

image.png

image.png

由于我对 LaTeX 的学习不好,不是很了解 first / top / bottom mark 的机制,希望有大神能帮忙简单讲解,谢谢。

]]>
https://ask.latexstudio.net/ask/question/17859.html Tue, 29 Jul 2025 10:21:59 +0800
~~titlesec~~ titleps \newpagestyle 中 subsection 相关内容在奇数页失效 使用 \newpagestyle 定义页面样式时,于 \clearpage 后的新 \section 如果自奇数页开始,则第一页无法正确反映 \thesubsection 以及 \subsectiontitle

如图,第四页的 header 可以正常加载,而第十一页的 header 不正确:

image.png image.png

%!TEX program = pdflatex
\documentclass[a4paper, twoside]{article}
\usepackage[explicit]{titlesec}
\usepackage[extramarks]{titleps}
\usepackage{titletoc}
\usepackage{lipsum} 

\title{header testing}
\author{test}
\date{\today}

% formats header and footer
\newpagestyle{main}{
    \sethead[\thepage]%
    []%
    [\thesubsection \quad \sectiontitle\ -\ \subsectiontitle]%
    {\thesubsection \quad \sectiontitle\ -\ \subsectiontitle}%
    {}%
    {\thepage}%
    \setheadrule{0.3pt}
    \setfoot[][][]{}{}{}
}

\begin{document}

\maketitle

\pagestyle{plain}

\tableofcontents

\clearpage

\section{Preface}

\lipsum[1-6]

\clearpage

\pagestyle{main}

\section{First section}

\subsection{First subsection}

\lipsum[1-20]

\subsection{Second subsection}

\lipsum[1-20]

\clearpage

\section{Second section}

\subsection{Third subsection}

\lipsum[1-10]

\end{document}
]]>
https://ask.latexstudio.net/ask/question/17858.html Mon, 28 Jul 2025 09:07:26 +0800
如何正确使用原语`\jot`来修改数学公式的行距?下面的例子中对`\jot`的修改为何失效? 描述

如题,在texbook中关于\jot的描述如下:

image.png

texdef \jot
\jot:
\dimen14
\the\jot:
3.0pt

image.png

默认值为\jot=3pt

稍微搜一下源码:

我猜大致修改原理是plain内核在处理「某些环境」内部间距时通过\openup\jot来增加间距,对于这些环境,手动改大\jot可以实现增大间距。

image.png

例子

来看两个例子

\documentclass{ctexart}
\usepackage{amsmath,amsfonts}
\jot=10ex
\begin{document}
    \begin{align}
        a^2 + b^2 &= c^2 \\
        a^2 + b^2 &= c^2 
    \end{align} 
\end{document}

这有效。

image.png

\documentclass{ctexart}
\usepackage{amsmath,amsfonts}
\jot=10ex
\begin{document}
\[
\begin{cases}
    a^2 + b^2 = c^2 \\
    a^2 + b^2 = c^2 
\end{cases} 
\]
\end{document}

很遗憾...这无效。

image.png

问题

  1. 哪些环境的距离可以通过\jot批量修改
  2. 如有我有5个cases环境,希望批量增加其公式内的间距,除了follow this写5次\\[10ex]之外是否有基于\jot的方法
\documentclass{ctexart}
\usepackage{amsmath,amsfonts}
% \jot=10ex 
\begin{document}
\[
\begin{cases}
    \dfrac{1}{1} + \dfrac{2}{2} \neq \dfrac{3}{3} \\[10ex]
    \dfrac{1}{1} + \dfrac{2}{2} = \dfrac{3}{3}
\end{cases}
\]
\[
\begin{cases}
    \dfrac{1}{1} + \dfrac{2}{2} \neq \dfrac{3}{3} \\
    \dfrac{1}{1} + \dfrac{2}{2} = \dfrac{3}{3}
\end{cases}
\]
\[
\begin{cases}
    \dfrac{1}{1} + \dfrac{2}{2} \neq \dfrac{3}{3} \\
    \dfrac{1}{1} + \dfrac{2}{2} = \dfrac{3}{3}
\end{cases}
\]
\[
\begin{cases}
    \dfrac{1}{1} + \dfrac{2}{2} \neq \dfrac{3}{3} \\
    \dfrac{1}{1} + \dfrac{2}{2} = \dfrac{3}{3}
\end{cases}
\]
\[
\begin{cases}
    \dfrac{1}{1} + \dfrac{2}{2} \neq \dfrac{3}{3} \\
    \dfrac{1}{1} + \dfrac{2}{2} = \dfrac{3}{3}
\end{cases}
\]
\end{document}

image.png

]]>
https://ask.latexstudio.net/ask/question/17856.html Sat, 26 Jul 2025 17:51:03 +0800
使用\underline对中文下划线,其后会自动产生空格;而英文不产生额外空格? 代码很短

\documentclass{ctexart}
\begin{document}
你\underline{好}世界
\end{document}

image.png

\documentclass{ctexart}
\begin{document}
hello\underline{word}helloword
\end{document}

image.png

英文不会发生

]]>
https://ask.latexstudio.net/ask/question/17855.html Sat, 26 Jul 2025 09:49:19 +0800
enlargethispage命令在paracol环境所在页为什么会失效? 我想使用\enlargethispage命令定义一个新的chapter命令,使得chapter标题所在页的文字高度缩短一定长度,但是在chapter之后立刻使用paracol环境时,我发现\enlargethispage没有生效,是什么原因导致的?应该如何解决?

附代码:

\documentclass{book}
\usepackage{lipsum}
\usepackage[showframe]{geometry}
\usepackage{paracol}

\newcommand{\Chapter}[1]{%
\chapter{#1}%
\enlargethispage{-2.0cm}
}

\begin{document}

    %%使用paracol环境,可以发现文字高度没有变化
    \Chapter{title}
    \begin{paracol}{2}
        \lipsum[1-2]
    \end{paracol}

    %%不使用paracol环境,文字高度变化
    \Chapter{title}
        \lipsum[1-5]

\end{document}

以下分别是使用paracol和不用paracol的结果:

1.png

2.png

]]>
https://ask.latexstudio.net/ask/question/17853.html Fri, 25 Jul 2025 23:01:38 +0800
在subequations内使用empheq时,当遇到长公式需要折行时,如何去掉多余的编号? 大括号中每个公式都需要加标号,有的公式很长需要换行,换行后又多增加一个标号1f(其实是一个公式),需要如何去掉1f呢?

\documentclass[twocolumn]{IEEEtran}
\usepackage{mathrsfs}
\usepackage{flafter}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{empheq}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{float}
\usepackage{cases}
\usepackage[font={small,rm}]{caption}
\DeclareGraphicsRule{.jpg}{eps}{.bb}{}
\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}
\newtheorem{definition}{Definition}
\newtheorem{lemma}{Lemma}
\newtheorem{proposition}{Proposition}
\newtheorem{algorithm}{Algorithm}
\newtheorem{assumption}{Assumption}
\newtheorem{remark}{Remark}
\renewcommand{\baselinestretch}{1.0}
\allowdisplaybreaks

\begin{document}

\begin{subequations}\label{op1}
\begin{empheq}
[left={\textbf{OP1}:\empheqlbrace}]{align}
&\underset{u}{\min}~ \psi                        \label{op51}\\
&\mathrm{s.t.}~~J_{\infty}(s) \leq \psi             \label{op52}\\
&\underset{p}{\max}\left|\left[u(s)\right]_p\right|\leq \bar{u},     \label{op53} \\
&\underset{q}{\max}\left|\left[x(s+1|s)\right]_q\right|\leq \bar{x},  \label{op54}\\                                     
& \mathscr{E}\{V(\phi(s))\}-V(\phi(s))\\     \label{op55}
& \leq  -z^{\mathrm{T}}(s)z(s)+\rho d^{\mathrm{T}}(s)d(s).
\end{empheq}
\end{subequations}

\end{document}

最后两行其实是同一个公式,想要去掉1f.

image.png

]]>
https://ask.latexstudio.net/ask/question/17852.html Fri, 25 Jul 2025 22:40:06 +0800
\vspace*遇到换页距离不够导致奇怪间距?如何实现可跨页的\vspace? 这是我的MWE:

\documentclass[twocolumn,12pt]{ctexart}
\usepackage{showframe}
\usepackage[type=lowerleft]{fgruler}
\usepackage[paperwidth=42cm,paperheight=29.7cm,top=3cm,bottom=1cm,left=1.7cm,right=1.7cm,bindingoffset=0.5cm]{geometry}
\setlength{\columnsep}{35pt}%设置两栏之间的间距
\raggedbottom
\begin{document}
        (1) *********************  
        \vspace*{8cm}

        (2) ********************* 
        \vspace*{8cm}

        (3) 已知齐次线性方程组  
        \[
        *******************
        \]  
        同解,求 $a,b,c$ 的值. \par
        \vspace*{8cm}

        (4) 已知齐次线性方程组 
\end{document}

这将得到

image.png

预期目标效果是 image.png

]]>
https://ask.latexstudio.net/ask/question/17850.html Fri, 25 Jul 2025 16:28:25 +0800
如何高效优雅地从mathabx宏包中偷出来\measuredangle的符号? 背景介绍

这个链接中有一些「偷」符号的信息。但是似乎没有介绍如何寻找cmex这样的字体族名对「偷」的思路介绍,所以再开一个问题。

texdoc comprehensive得到的symbols-a4.pdf中有: image.png

为了让代码尽可能「轻」,减少与其他宏包如amssymb的定义重复,我想把这个符号「偷出来」:

我使用了如下的思路:

CTAN下载mathabx包的.zip文件,文件的目录结构如下:

image.png

./texinput/mathabx.dcl中:

% line 202
\DeclareMathSymbol{\measuredangle} {0}{mathb}{"3E}

同时 一通乱点乱搜 可以找到在./texinput/mathabx.sty中:

% line 51
\mathabx@mathb
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}
\end@mathabx

然后或许得到了一个可行的MWE:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}%必须放前面...
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}
\DeclareMathSymbol{\measuredangle} {0}{mathb}{"3E}
\begin{document}

\[ a \measuredangle b \quad \mathbb{E}(X) \]

\end{document}

image.png

问题:

  1. 如何找到并熟悉常见的如cmexAMSa类似的“字体族名”?
  2. 上面的操作是正确的吗?一次正确的优雅的高效的的「偷字符操作」是不是总是要找到宏包中对字符定义的这一段?\DeclareFontFamily\DeclareFontShape\DeclareSymbolFont\DeclareFontSubstitution\DeclareMathSymbol一个不能少?
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareMathSymbol{\measuredangle} {0}{mathb}{"3E}
\DeclareFontSubstitution{U}{mathb}{m}{n}

Side-Notes: 基于unicode-math是否有XeTeX的(或许更便捷的)方案来偷mathabx中的\measuredangle呢?

]]>
https://ask.latexstudio.net/ask/question/17849.html Fri, 25 Jul 2025 15:46:10 +0800
请教如何在elsevier官方模板下将整个参考文献设置成可点击的超连接形式 b336dbcc1fac0d8f0929c15ed1747f1d.png

]]>
https://ask.latexstudio.net/ask/question/17847.html Tue, 22 Jul 2025 11:26:27 +0800
`cleveref` 引用名称不正确 操作系统:Windows 11

TeX 发行版:Tex Live 2025

描述问题: 使用 amsthm 定义和 thm 环境同计数器的 lem 环境,而后用 cleveref\cref 引用,发现在本地 TeX Live 2025 编译后,定理名称全显示 thm 名称。

最小工作示例(MWE)

\documentclass{article}
\usepackage{amsthm}
\usepackage{cleveref}
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\crefname{lem}{lemma}{lemmas}
\Crefname{lem}{Lemma}{Lemmas}

\begin{document}
  \begin{thm}\label{thm}
    foo
  \end{thm}
  \begin{lem}\label{lem}
    foo
  \end{lem}
  \cref{lem}, \Cref{lem}
\end{document}

在 texpage 和 overleaf 上测试上述代码,\cref{lem} 均可显示名称为 lemma,然而在本地 texlive 2025 上测试上述代码,结果如图所示 b6a28aa5c6b0c2cc0c6b3cfef857d38e.png

]]>
https://ask.latexstudio.net/ask/question/17845.html Mon, 21 Jul 2025 16:29:17 +0800
给曲线加箭头,但是连接效果极差,寻找更优的解决方法 曲线上的箭头仍然是直的,并且连接效果极差,这里与线重叠了

有没有好的方法以实现曲线箭头,目的是想实现箭头和线一样宽的样式

image.png image.png

\documentclass[tikz,border=5pt]{standalone}
\usepackage[UTF8]{ctex} % 加载中文支持
\usepackage{pgfplots} % 核心绘图库
\usepackage{bm} % 或 
\usepackage{amsmath}
\usepackage{silence}
\usepackage{mathrsfs}
\usetikzlibrary{arrows}
\pagestyle{empty}

\definecolor{ccqqqq}{rgb}{0.8,0,0}
\definecolor{ududff}{rgb}{0.30196078431372547,0.30196078431372547,1}
% 定义 Times New Roman 字体命令


\WarningFilter{latexfont}{} % 过滤所有字体警告
\pgfplotsset{compat=1.18} % 版本兼容性设置
\usetikzlibrary{positioning,arrows.meta,angles,quotes,matrix,calc,fillbetween,patterns,patterns.meta}
\usetikzlibrary{decorations.markings,intersections,spath3}
\usepgfplotslibrary{fillbetween}

\usepackage{newtxtext, newtxmath}       % Times 风格字体
\usepackage{bm}                         % 加粗数学符号
\newcommand{\bt}[1]{\bm{\mathit{#1}}}   % 自定义加粗倾斜命令


\newcommand{\axisarrow}
{axis line style = {-{Triangle[length=8pt, width=3pt]}},}   % 修正箭头语法


\pgfplotsset{
    tick_empty/.style={
        xtick=\empty,
        ytick=\empty,
        tick style={draw=none},
        major tick length=0pt
    }
}


\tikzset{axisarrow1/.tip = {Triangle[length=8pt, width=3pt]}}

\begin{document}


\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
xlabel =  $x$,  
ylabel =  $y$,
xlabel style={at={(ticklabel* cs:1)}, anchor=north, below=1pt},
ylabel style={at={(ticklabel* cs:1)}, anchor=east, left=1pt},
tick_empty,
xmin=-1,
xmax=20,
ymin=-1,
ymax=20,
x=1cm,
y=1cm,
\axisarrow
]
\draw[-Triangle Cap,line width=.2cm,blue](0,0)--(1.5,1);
% \draw[line width=2pt, smooth, samples=50, domain=2:8] plot(\x,{0.5*(\x - 5)^(2)});
\draw[-{Triangle Cap[green,width=.2cm]}, line width=.2cm, blue, domain=3:4] plot(\x,{0.5*(\x - 5)^(2)});
\node[below left] at (axis cs:0,0) {$\bt{O}$};%原点
\end{axis}

\end{tikzpicture}

\end{document}
]]>
https://ask.latexstudio.net/ask/question/17844.html Mon, 21 Jul 2025 11:10:35 +0800
如何实现章节标题后根据是否直接接正文自动插入额外垂直间距? 在使用 ctexbook 文档类编写中文文档时,我希望实现如下逻辑:当某级标题(如 \chapter、\section、\subsection)后紧跟的是下一级标题,则正常渲染,不插入额外间距;但若标题后直接接正文内容(普通段落),则在标题和正文之间自动插入一段自定义的垂直距离(如\vspace{2em})。这个需求不能通过简单设置 afterskip 解决,因为它会作用于所有情况,无法区分是否有子标题。请问如何优雅地实现该自动判断逻辑,并与 \CTEXsetup 设定的章节样式兼容?

附上最小可复现示例代码:

\documentclass[UTF8,oneside,a4paper,12pt]{ctexbook}
\usepackage{ctex}
\CTEXsetup[
    name={},
    break = ,
    number={\arabic{chapter}}, % 章节编号设置为阿拉伯数字格式
    format+={\zihao{-2}\heiti},
    aftername={\,\,\,},
    beforeskip={-1.5em},
    afterskip={1.3em}
]{chapter}

\CTEXsetup[
    format={\zihao{4}\heiti},
    nameformat+={\zihao{4}\heiti},
    aftername={\,\,\,},
    titleformat={\zihao{4}\heiti},
    beforeskip={0.3em},
    afterskip={0.1em}
]{section}

\CTEXsetup[
    format={\zihao{-4}\heiti},
    nameformat+={\zihao{-4}\heiti},
    aftername={\,\,\,},
    titleformat={\zihao{-4}\heiti},
    beforeskip={0em},
    afterskip={0.62em}
]{subsection}

\CTEXsetup[
    format={\zihao{-4}\heiti},
    nameformat+={\zihao{-4}\heiti},
    aftername={\,\,\,},
    titleformat={\zihao{-4}\heiti},
    beforeskip={0ex},
    afterskip={0ex}
]{subsubsection}

\setcounter{secnumdepth}{3}

\begin{document}

\chapter{这是章标题这是章标题这是章标题}
\section{SECTION-SECTION-SECTION-SECTION}
\subsection{SUBSECTION-SUBSECTION-SUBSECTION-SUBSECTION}
\subsubsection{SUBSUBSECTION-SUBSUBSECTION-SUBSECTION-SUBSECTION}

\vspace{3em}

\chapter{这是章标题这是章标题这是章标题}
正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文
\section{SECTION-SECTION-SECTION-SECTION}
正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文
\subsection{SUBSECTION-SUBSECTION-SUBSECTION-SUBSECTION}
正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文
\subsubsection{SUBSUBSECTION-SUBSUBSECTION-SUBSECTION-SUBSECTION}
正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文
\end{document}
]]>
https://ask.latexstudio.net/ask/question/17843.html Sun, 20 Jul 2025 16:44:41 +0800