LaTeXStudio.net 问答 RSS 最新问答 https://ask.latexstudio.net/addons/ask/rss/index Thu, 18 Sep 2025 10:13:12 +0800 如何选择合适的 LaTeX 编辑器 请教大家LaTeX编辑器的问题:

我最开始接触用的编辑器是texstudio,因为是软件装完后就带着的编辑器;样子不够美观,对我来说是在用,但估计很多的技巧我都不会;

请问下大佬们有没有这方面使用的资料可以引导我一下。

后来在知乎上面看到别人用 VS Code,也照猫画虎学了起来,这个编辑器倒是漂亮得紧。我一直也想像知乎上面那些大佬们设置片段,但不得其法。

另外,在texstudio中,Ctrl+B,会把文字加上加粗的标记,在 VS Code 有这样的操作方法么?

另外 VS Code 编辑 TeX,有没有学习的资料。

]]>
https://ask.latexstudio.net/ask/question/17927.html Thu, 11 Sep 2025 21:47:29 +0800
普通民办二本大二学生想做学校论文模板的问题. 我是一名大二学生,在今年2月份意外知道了你们网站,然后学着下载texlive阅读Ishort,然后进一步为备战全国大学生数学建模比赛练习小作文,然后尝试调用宏包,然后掌握了很多基本用法,到现在竞赛已经结束,比赛的时候直接按照群主老哥的.cls模板写的论文,然后现在想进一步学习LaTeX,也就是制作模板,恰巧我有写毕设的要求,而且学校没有模板,所以想尝试做做,然后各位群友已经给我了很多建议,然后我发上来自己再总结总结 我总结一下吧 各位佬们

1.精通Ishort 2.了解article类 ,然后再谈修改 3.形成改article的能力

然后 有偿发布 一经采纳 有悬赏

注意要让我知道每一步是为了什么 以及做模板需要的能力是什么 这样我就不容易迷茫了

]]>
https://ask.latexstudio.net/ask/question/17925.html Thu, 11 Sep 2025 12:24:13 +0800
How to define a custom counter for Exercises? In LaTeX’s book class, how to define a custom counter for Exercises that is tied to the current chapter (e.g., Exercise 1.1, 1.2 in Chapter 1, Exercise 2.1 in Chapter 2, etc.), and also create a separate List of Exercises (similar to a Table of Contents)?

]]>
https://ask.latexstudio.net/ask/question/17924.html Mon, 08 Sep 2025 21:32:41 +0800
如何将自定义的myframe的参数传递给frame? 我希望创建一个frame级别的环境,也就是基于frame的自定义环境。它可以使用户比较方便地调节行距,而不是每次都调用\begin{spacing}{<arg>}...\end{spacing}之类的代码,同时它要接受一些参数,并将其传递给frame环境,考虑到frame环境是一个脆弱的环境,我的尝试总是失败。

\documentclass{beamer}
\usepackage{setspace}
%\newenvironment{myframe}[2][1.5]
%    {\begin{frame}[#2]\begin{spacing}{#1}}
%    {\end{spacing}\end{frame}}
\begin{document}
%    \begin{myframe}
%        Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. 
%    \end{myframe}
    \begin{frame}
    \begin{spacing}{1.5}
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 
    \end{spacing}
    \end{frame}
\end{document}
]]>
https://ask.latexstudio.net/ask/question/17923.html Mon, 08 Sep 2025 14:23:06 +0800
行间公式与上下文的垂直间距问题 image.png 如上图,对于 $Ff(x)$ 这种不太高的行间公式,其与上下文的垂直间距比下面的 $\frac{p}{q}$ 还大,这一点让我感到别扭。

从我的测试来看,这个现象并不是 \abovedisplay(short)skip\belowdisplay(short)skip 造成的,而是因为行距。让我们看一下消除 \abovedisplay(short)skip\belowdisplay(short)skip 的效果:

\documentclass{article}
\makeatletter
\renewcommand\normalsize{%
  \@setfontsize\normalsize{10pt}{10pt}%
  \abovedisplayskip 0pt
  \abovedisplayshortskip 0pt
  \belowdisplayshortskip 0pt
  \belowdisplayskip 0pt
}
\linespread{2}
% \everydisplay{\linespread{1}\selectfont}
\usepackage{amsmath}
\begin{document}
text text text text text text text text text text text text text text text text text text text text text text text text text text text
\[
  Ff(x)
\]
text text text text text text text text text text text text text text text text text text text text text text text text text text text
\[
  \frac{p}{q}
\]
text text text text text text text text text text text
\begin{align*}
  b &= c \\
    &= d
\end{align*}

text text text text text text text text text text text text text text text text text text text text text text text text
\end{document}

image.png 为了让效果明显,我增加了行距。可以看到,高度较低的行间公式与上下文的间距看起来更大,就是行距带来的。

为了让行间公式最高处与上文的垂直间距等于行间公式最低处与下文的垂直间距,需要做以下两步:

  • 将行间公式的行距设置为 1;
  • 消除行间公式与下一行文本的“interlineskip”。
    
    \documentclass{article}
    \makeatletter
    \renewcommand\normalsize{%
    \@setfontsize\normalsize{10pt}{10pt}%
    \abovedisplayskip 0pt
    \abovedisplayshortskip 0pt
    \belowdisplayshortskip 0pt
    \belowdisplayskip 0pt
    }
    \linespread{2}
    \everydisplay{\linespread{1}\selectfont}
    \usepackage{amsmath}
    \begin{document}
    text text text text text text text text text text text text text text text text text text text text text text text text text text text
    \[
    Ff(x)
    \]\par\nointerlineskip\@doendpe
    text text text text text text text text text text text text text text text text text text text text text text text text text text text
    \[
    \frac{p}{q}
    \]\par\nointerlineskip\@doendpe
    text text text text text text text text text text text
    \begin{align*}
    b &= c \\
      &= d
    \end{align*}\par\nointerlineskip\@doendpe

text text text text text text text text text text text text text text text text text text text text text text text text \end{document}

![image.png](https://pics.latexstudio.net/uploads/20250907/3d8557b810ffc8f281e700b18ba760ad.png)
此时再设置 `\abovedisplay(short)skip` 和 `\belowdisplay(short)skip`,效果就不别扭了:

\documentclass{article} \makeatletter \renewcommand\normalsize{% \@setfontsize\normalsize{10pt}{10pt}% \abovedisplayskip 6pt \abovedisplayshortskip 0pt \belowdisplayshortskip 6pt \belowdisplayskip 6pt } \linespread{1.36} \everydisplay{\linespread{1}\selectfont} \usepackage{amsmath} \begin{document} text text text text text text text text text text text text text text text text text text text text text text text text text text text [ Ff(x) ]\par\nointerlineskip\@doendpe text text text text text text text text text text text text text text text text text text text text text text text text text text text [ \frac{p}{q} ]\par\nointerlineskip\@doendpe text text text text text text text text text text text \begin{align} b &= c \ &= d \end{align}\par\nointerlineskip\@doendpe

text text text text text text text text text text text text text text text text text text text text text text text text \end{document}


![image.png](https://pics.latexstudio.net/uploads/20250907/b83a784dba854267b5a9fb8001791e89.png)

现在我的问题总结如下:
1. 虽然可以对行间公式环境进行封装,但一个个封装起来工作量太大了,有没有便捷方法?
2. 有没有其他框架下更好的解决方案?
]]>
https://ask.latexstudio.net/ask/question/17922.html Sun, 07 Sep 2025 15:08:25 +0800
在tabular以及multirow宏包在涉及makecell共同作用时的纵向对齐问题? 该问题的tabularray方案可见这个链接

本提问只希望局限在tabular的框架内,不希望用例如tabularray宏包的方案...

希望实现合并单元格内的纵向对齐

MWE如下:

\documentclass[fontset=fandol]{ctexart}
\usepackage{array}
\usepackage{multirow}
\usepackage{amsmath,amsfonts}
\usepackage{makecell}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}

\begin{tabular}{|M{5cm}|M{5cm}|M{5cm}|}
\hline
\textbf{条件} & \textbf{方程} & \textbf{说明} \\ \hline
\multirow{2}{*}{圆心在原点} & $x^2+y^2=r^2$ & $a=b=0$ \\ \cline{2-3}
 & $x^2+y^2+F=0$ & $D=E=0$ \\ \hline
\multirow{2}{*}{圆过原点} & $(x-a)^2+(y-b)^2=a^2+b^2$ & $a^2+b^2=r^2$ \\ \cline{2-3}
 & $x^2+y^2+Dx+Ey=0$ & $F=0$ \\ \hline
\multirow{2}{*}{圆心在$x$轴上} & $(x-a)^2+y^2=r^2$ & $b=0$ \\ \cline{2-3}
 & $x^2+y^2+Dx+F=0$ & $E=0$ \\ \hline
\multirow{2}{*}{圆心在$y$轴上} & $x^2+(y-b)^2=r^2$ & $a=0$ \\ \cline{2-3}
 & $x^2+y^2+Ey+F=0$ & $D=0$ \\ \hline
\multirow{2}{*}{圆与$x$轴相切} & $(x-a)^2+(y-b)^2=b^2$ & $|b|=r$ \\ \cline{2-3}
 & \makecell{$x^2+y^2+Dx+Ey+F=0$\\$(E\neq 0,D^2-4F=0)$} & $E\neq 0,D^2-4F=0$ \\ \hline
\multirow{2}{*}{圆与$y$轴相切} & $(x-a)^2+(y-b)^2=a^2$ & $|a|=r$ \\ \cline{2-3}
 & \makecell{$x^2+y^2+Dx+Ey+F=0$\\$(D\neq 0,E^2-4F=0)$} & $D\neq 0,E^2-4F=0$ \\ \hline
 \multirow{2}{*}{圆心在$x$轴上且圆过原点} & $(x-a)^2+y^2=a^2$ & $|a|=r,b=0$ \\ \cline{2-3}
 & $x^2+y^2+Dx=0$ & $E=F=0,D\neq 0$ \\ \hline
\multirow{2}{*}{圆心在$y$轴上且圆过原点} & $x^2+(y-b)^2=b^2$ & $a=0,|b|=r$ \\ \cline{2-3}
 & $x^2+y^2+Ey=0$ & $D=F=0,E\neq 0$ \\ \hline
\multirow{2}{*}{圆与$x,y$轴都相切} & \makecell{$(x-a)^2+(y-b)^2=a^2$\\$(|a|=|b|\neq 0)$} & $|a|=|b|=r$ \\ \cline{2-3}
 & \makecell{$x^2+y^2+Dx+Ey+F=0$\\$(|D|=|E|\neq 0)$} & $D^2=E^2=4F$ \\ \hline
\end{tabular}

\end{document}

即使使用了array提供的m{<width>}格式这也并不令人满意....

image.png

本回答重点在于,希望在不改变目前代码的大框架下(i.e.必须使用原生的tabular环境)权衡好multirowmakecell的功能,试图找到tabular框架下纵向对齐的最佳实践。

]]>
https://ask.latexstudio.net/ask/question/17921.html Sat, 06 Sep 2025 13:29:12 +0800
如何调整itemize或enumerate里面项目内换行的行距? 项目内文字多时会自然换行,换行的距离怎么调整?enumerate的参数没找到哪个能控制。

8b44df28-6c9f-4956-bb25-be07468136b7.png 如下图,item内的行距比item间还要大,不太协调。 fc65fcbf-e869-4737-9630-487cb8ec9d0e.png

\documentclass[a4paper,11pt]{ctexart}
\usepackage{enumitem}
\begin{document}
列表字数多了会分行
\begin{enumerate}[label={\Alph*.},itemsep=-4mm]%
 \item 有非法关键字?
 \item 有非法关键字?
 \item 有非法关键字?
 \item 有非法关键字?
 \end{enumerate}
\end{document}
]]>
https://ask.latexstudio.net/ask/question/17917.html Wed, 03 Sep 2025 11:02:38 +0800
超链接跳转错误 https://www.latexstudio.net/LearnLaTeX/basic/01.html#latex-%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B的“下一课”页面丢失

]]>
https://ask.latexstudio.net/ask/question/17914.html Mon, 01 Sep 2025 21:15:36 +0800
超链接跳转错误 https://www.latexstudio.net/LearnLaTeX/basic/01.html#latex-%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B的“下一课”页面丢失

]]>
https://ask.latexstudio.net/ask/question/17913.html Mon, 01 Sep 2025 21:15:31 +0800
如何设计命令\noteinpar,以使用户无感地自动创建叠层? LaTeX用户在beamer文档类中设计了一个\noteinpar命令来辅助他的教学活动。该命令可以为一个汉字的下方加上一个小圆点,并在右上方加上一个上标序号,还能在其后的圆括号中突出显示加点字的含义。

\newcounter{noteinpar}
\NewDocumentCommand{\noteinpar}{ mm }{%
    \stepcounter{noteinpar}%
    \CJKunderdot{#1}\ignorespaces%
    \textsuperscript{\circledtext[basechar=x,charf=\zihao{-4},boxlinewidth=.2pt]{\thenoteinpar}}%
    {\fangsong ({\textcolor{red}{#2}})}%
}

通常看来,这个\noteinpar命令的设计没有什么大问题。他只需要在正文中按下面的格式书写正文,即可创建一个符合他的教学需要的叠层:

\noteinpar{#1}{\visible<num->{#2}}

例如:

劳仑衣\noteinpar{普}{\visible<2->{桑}},认至将指点效\noteinpar{则}{\visible<3->{机}},最你更枝。

现在,他厌倦了在正文中书写\visible<num->,(因为这句代码需要他手动指定叠层的计数,并且在教学实际中他发现这一帧中的每个叠层都是独立且连续的,绝不会有至少两个加点字的含义需要被同时展示于同一个叠层之中,)并且他希望能够不用书写\visible<num->就能自动创建符合需要的叠层!

因此,他做了如下尝试:

  1. 新建一个计数器natureframe,它将被紧跟在正文中的每一句\begin{frame}之后,也就是每一帧开始时,用来表示帧的自然序数(但是并不会打印其计数器值到正文中),虽然不知道叠层是否会对此产生影响,但他决定先试一试;
  2. 新建一个计数器naturevisible,它将在使用\visible<num->{#2}时,通过自增并打印计数器值,来代替num这个值;
  3. 每当计数器natureframe自增时,计数器naturevisible的值将被重置为1,这是因为,在教学实际中, 他需要一帧中出现的第一个\visible<num->中的num2开始,也就是说他希望:在一帧中,第1次输入\noteinpar{#1}{#2}时,自动实现\noteinpar{#1}{\visible<2->{#2}},第2次输入\noteinpar{#1}{#2}时,自动实现\noteinpar{#1}{\visible<3->{#2}},第3次输入\noteinpar{#1}{#2}时,自动实现\noteinpar{#1}{\visible<4->{#2}},……;
  4. 修改命令\noteinpar的定义。
    \newcounter{noteinpar}
    \NewDocumentCommand{\noteinpar}{ mm }{%
     \stepcounter{noteinpar}%
     \CJKunderdot{#1}\ignorespaces%
     \textsuperscript{\circledtext[basechar=x,charf=\zihao{-4},boxlinewidth=.2pt]{\thenoteinpar}}%
     {\fangsong ({\stepcounter{naturevisible}\textcolor{red}{\visible<thenaturevisible->{#2}}})}%
    }

    结果是,叠层失效,并且圆括号中突出显示加点字的含义也消失不见了。现在,他需要返回第4步,重新修改定义,或者,更换思路,另起炉灶。

最小工作示例在此。

]]>
https://ask.latexstudio.net/ask/question/17912.html Mon, 01 Sep 2025 00:35:27 +0800
请问这种表格带颜色,且色条长度反映了表格数据长度,这类表格该如何绘制 请问这种表格带颜色,且色条长度反映了表格数据长度,这类表格该如何绘制 跪求大神解答,或者绘制思路也行,谢谢谢谢谢谢谢谢

]]>
https://ask.latexstudio.net/ask/question/17911.html Thu, 28 Aug 2025 10:22:41 +0800
关于wrapstuff宏包使用时似乎无法让「被环绕的文本」中包含「enumerate」环境的疑问? 如题,该问题的MWE如下:

\documentclass[fontset=fandol]{ctexart}
\usepackage{wrapstuff}
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{wrapstuff}
\newcommand*{\mytxt}{我能吞下玻璃而不伤身体。}
\newcommand*{\mytxtt}{\mytxt\mytxt\mytxt\mytxt\mytxt\mytxt\mytxt\mytxt}
\setlength{\parindent}{0pt}
\begin{document}

\mytxtt

\bigskip

\begin{wrapstuff}[r,top=4]
\includegraphics[width=5.5cm,height=2cm]{example-image}
\end{wrapstuff}
2.(2024南宁模拟) \mytxtt(\qquad)

(A) \mytxt

(B) \mytxt

(C) \mytxt

(D) \mytxt

\wrapstuffclear

\bigskip

\mytxtt

% \bigskip

% \begin{wrapstuff}[r,top=4]
% \includegraphics[width=5.5cm,height=2cm]{example-image}
% \end{wrapstuff}
% 2.(2024南宁模拟) \mytxtt(\qquad)%
% \begin{enumerate}[label={\Alph*.}]%
% \item \mytxt
% \item \mytxt
% \item \mytxt
% \item \mytxt
% \end{enumerate}
% \wrapstuffclear

\bigskip

\end{document}

当使用笨拙

\begin{wrapstuff}[r,top=4]
\includegraphics[width=5.5cm,height=2cm]{example-image}
\end{wrapstuff}
2.(2024南宁模拟) \mytxtt(\qquad)

(A) \mytxt

(B) \mytxt

(C) \mytxt

(D) \mytxt

\wrapstuffclear

时,可以实现如下的效果:

image.png

但当使用enumerate环境时,立刻得到:

! Extra }, or forgotten \endgroup.
\vbox_set_end: ...r_group_end: \c_group_end_token

l.40 \begin{enumerate}[label={\Alph*.}]
                                       %
?

是否可以允许在wrapstuff的「文本」内部使用enumerate一类的列举环境呢?

]]>
https://ask.latexstudio.net/ask/question/17908.html Sun, 24 Aug 2025 18:34:51 +0800
在beamer的目录中,section条目如何从3开始编号? 我准备制作一个较长的演示文档。在安装为目录中的section编号的模板之后,由于section的编号是从1开始连续自增,所以没什么问题。

为了实际使用的便利,我准备将整体内容分为两个beamer文档。然而,两份文档都会从1开始为section重新编号——这是我不希望看到的。

在下面这份实际上是第二份演示文稿中,我希望目录中出现的第一个section的编号为3,但是,我在导言区使用\addtocounter{section}{2}却并不奏效。

image.png

\documentclass{beamer}
\setbeamertemplate{section in toc}[sections numbered]
\addtocounter{section}{2}
\begin{document}

\frame{
    \contentsname
    \tableofcontents
}

\section{sectionthree}
\frame{\frametitle{sectionthree}some text}

\section{sectionfour}
\frame{\frametitle{sectionfour}some text}

\end{document}
]]>
https://ask.latexstudio.net/ask/question/17902.html Fri, 22 Aug 2025 22:07:44 +0800
排版图片 排版格式问题 图片 \section{模型的建立与求解} \subsection{问题一的求解} \subsubsection{问题一的数据预处理} 由于附件2只有销售量的数据,并且附件1只有商品名称和对应类别的没有销售量的数据,所以通过单品编码关联单品表,从附件1获取「品类、单品名称」,添加到附件2。可得合并后的数据,如图图1,部分:\par \begin{figure}[!h] \centering \includegraphics[width=.6\textwidth]{hebingtu} \caption{部分合并后的数据展示} \label{fig:hebingtu} \end{figure} 第一问要求对蔬菜各品类及单品销售量的分布规律进行分析,所以为了能清晰看到每一类的每天的销售总量情况,利用python将每一类销量按照每天进行求和,然后得到每日分类销量汇总表,如表1(部分):\par \begin{table}[h] \centering \caption{分类销量求和表} \label{tab:sales_by_category} % 标签 \begin{tabular}{cc} \toprule[1.5pt] 分类名称 & 销量(千克) \\ \midrule[1pt] 水生根茎类 & 40581.353 \\ 花叶类 & 198520.978 \\ 花菜类 & 41766.451 \\ 茄类 & 22431.782 \\ 辣椒类 & 91588.629 \\ 食用菌 & 76086.725 \\ \bottomrule[1.5pt] \end{tabular} \end{table} 接下来进行异常值的检测与处理 首先我们对表\ref{tab:sales_by_category}绘制了箱线图,可以看到数据的分布情况。如图1: \begin{figure}[!h] \centering \includegraphics[width=.9\textwidth]{xiang1} \caption{蔬菜各品类中的多个数值型特征的可视化分析} \label{fig:xiang1} \end{figure} 可得知:水生根茎类箱形窄小,中位数低(接近 0),但散点分布广(延伸到 200+)。花叶类箱形宽大,中位数适中(约 100-200),散点延伸最远(超 1200)。花菜类箱形窄小,中位数低,散点少且集中在 200 以内。茄类箱形极窄,几乎压缩成线,散点极少。辣椒类箱形中等,中位数低,散点集中在 200-600 区间。食用菌箱形中等,中位数低,散点集中在 200-400 区间。\par 可以分析:水生根茎类大部分数据集中在低数值区间,花叶类高值异常点最多(尤其右侧远散点),花菜类数据最集中稳定(箱形紧凑,异常值少),茄类数据高度集中(四分位数重叠,离散度极低),辣椒类大部分数据集中在低数值,但存在中等程度的离散。食用菌数据离散度介于 “花菜类(稳定)” 和 “花叶类(离散)” 之间;

hebingtu.png xiang1.png

]]>
https://ask.latexstudio.net/ask/question/17901.html Fri, 22 Aug 2025 16:35:12 +0800
如何用foreach简化这个循环? image.png 相关链接:

  1. 问题1
  2. 问题2
  3. 问题3
    \documentclass[tikz,border=2pt]{standalone}
    \usepackage{ctex}
    \usepackage{graphicx}
    \usepackage{circledtext}
    \begin{document}
    \tikz{
     \foreach \x in {0,...,9} {
         \node 
             at (\x,0)
             [scale=2.75] 
             {\circledtext{\x}};
     }
     \foreach \x in {10,...,19} {
         \node 
             at (\x-10,1)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {20,...,29} {
         \node 
             at (\x-20,2)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {30,...,39} {
         \node 
             at (\x-30,3)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {40,...,49} {
         \node 
             at (\x-40,4)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {50,...,59} {
         \node 
             at (\x-50,5)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {60,...,69} {
         \node 
             at (\x-60,6)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {70,...,79} {
         \node 
             at (\x-70,7)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {80,...,89} {
         \node 
             at (\x-80,8)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
     \foreach \x in {90,...,99} {
         \node 
             at (\x-90,9)
             [scale=2.75] 
             {\circledtext{\scalebox{1.25}[2]{\x}}};
     }
    }
    \tikz{
     \foreach \x in {100,...,109} {
         \node 
             at (\x-100,10)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {110,...,119} {
         \node 
             at (\x-110,11)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {120,...,129} {
         \node 
             at (\x-120,12)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {130,...,139} {
         \node 
             at (\x-130,13)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {140,...,149} {
         \node 
             at (\x-140,14)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {150,...,159} {
         \node 
             at (\x-150,15)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {160,...,169} {
         \node 
             at (\x-160,16)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {170,...,179} {
         \node 
             at (\x-170,17)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {180,...,189} {
         \node 
             at (\x-180,18)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
     \foreach \x in {190,...,199} {
         \node 
             at (\x-190,19)
             [scale=2.75] 
             {\circledtext{\scalebox{1}[2]{\x}}};
     }
    }
    \end{document}
]]>
https://ask.latexstudio.net/ask/question/17898.html Fri, 22 Aug 2025 01:32:11 +0800
用\cite 生成超链接“[1]”时,只有里面的1可点击,能否让整个“[1]”点击跳转呢? 我想让\cite 生成的整个[num] 都能点击跳转到参考文献列表相应的位置,问了AI,可依然没成功。求大佬们帮我看看。

\documentclass{article}
\usepackage{ctex}
\usepackage[hidelinks]{hyperref}
\usepackage[numbers]{natbib}
\bibliographystyle{gbt7714-numerical}

% \makeatletter
% \renewcommand\NAT@open{\ifNAT@numbers\NAT@hyper@open\else( \fi}
% \renewcommand\NAT@close{\ifNAT@numbers\NAT@hyper@close\else) \fi}

% \newcommand\NAT@hyper@open{%
%   \begingroup
%   \expandafter\let\expandafter\@tempa\csname Hy@raisedlink\endcsname
%   \def\Hy@raisedlink##1{\@tempa{\hyper@linkstart{cite}{}}##1}%
%   \hyper@linkstart{cite}{}[}

% \newcommand\NAT@hyper@close{]%
%   \hyper@linkend
%   \endgroup}
% \makeatother

\makeatletter
\renewcommand\NAT@open{\hyper@linkstart{cite}{}[}
\renewcommand\NAT@close{]\hyper@linkend}
\makeatother

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{dodorico2007soil,
  title   = {On soil moisture--vegetation feedbacks},
  author  = {D'Odorico, Paolo and others},
  journal = {J. Geophys. Res.},
  volume  = {112},
  year    = {2007}
}
\end{filecontents}

\begin{document}

这是测试 \cite{dodorico2007soil}。

\bibliography{\jobname}
\end{document}
]]>
https://ask.latexstudio.net/ask/question/17896.html Wed, 20 Aug 2025 23:54:01 +0800
「未完全解决」关于首尾不相连的foreach绘图的优化问题 我的目标是绘制如下形式的17*1的相连圆点

image.png

第一版的代码如下:

\documentclass[border=6pt]{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,-.5){b0}\tkzDrawPoints[size=3pt](b0)
\foreach \x[remember=\x as \lastx (initially 0)] in {1,...,16}{
    \ifodd\x\relax
        \tkzDefPoint(\x*0.5,.5){b\x}
    \else
        \tkzDefPoint(\x*0.5,-0.5){b\x}
    \fi
    \tkzDrawSegments(b\lastx,b\x)
    \tkzDrawPoints[size=3pt](b\x)
}
\end{tikzpicture}
\end{document}

image.png

这一版有两处瑕疵: 一是

\tkzDefPoint(0,-.5){b0}\tkzDrawPoints[size=3pt](b0)

太麻烦。

二是绘制点的时机不太对,我希望点在最后绘制

要实现目的是简单的,多来一次循环即可:

\documentclass[border=6pt]{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,-.5){b0}
\foreach \x[remember=\x as \lastx (initially 0)] in {1,...,16}{
    \ifodd\x\relax
        \tkzDefPoint(\x*0.5,.5){b\x}
    \else
        \tkzDefPoint(\x*0.5,-0.5){b\x}
    \fi
    \tkzDrawSegments(b\lastx,b\x)
}
\foreach \x in {0,...,16}{
    \tkzDrawPoints[size=3pt](b\x)
}
\end{tikzpicture}
\end{document}

但这需要两个循环,也并不优雅....

对于一个「并不算太复杂的\foreach」循环目标

pgffor的现有框架下,是否容易通过:

  • 只使用一个循环
  • 不需要在循环外为端点值做特殊处理

来实现呢(换句话说我希望代码越短越好)?

Edited

「我希望代码越短越好」的具体含义是:

让代码语句的处理逻辑直观不拖沓,避免因为特殊判断而导致需要不得已而多写几行

Re-Edited

为了规避「抖机灵」的MWE:

\documentclass[border=6pt]{standalone}
\usepackage{tkz-euclide}
\pgfmathsetseed{42}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,-.5){b0}\tkzDrawPoints[size=3pt](b0)
\foreach \x[remember=\x as \lastx (initially 0)] in {1,...,16}{
    \pgfmathrandominteger{\yy}{-2}{2}
    \tkzDefPoint(\x*0.5,\yy pt){b\x}
    \tkzDrawSegments(b\lastx,b\x)
    \tkzDrawPoints[size=3pt](b\x)
}
\end{tikzpicture}
\end{document}

image.png

]]>
https://ask.latexstudio.net/ask/question/17893.html Wed, 20 Aug 2025 17:09:10 +0800
如何实现符合中文字距的下划线和下划波浪线? 我尝试使用ulem包,发现在相邻的文本加上连续的下划直线或波浪线,会出现直线或波浪线粘连在一起的问题,而手动加上空格,虽然会避免粘连的问题,但是又改变了字距。有没有符合中文字距的下划线和波浪线的方案,要求连续的下划线不能粘连,需要断开。

\documentclass{article}

\usepackage[normalem]{ulem}
\usepackage{xeCJK}

\setlength{\ULdepth}{2.4pt}

\begin{document}


    \noindent
    史记 赵世家

    \noindent
    \uwave{史记}\uwave{赵世家}

    \noindent
    \uline{史记}\uline{赵世家}

    \noindent
    \uwave{史记} \uwave{赵世家}

    \noindent
    \uline{史记} \uline{赵世家}

\end{document}

image.png

]]>
https://ask.latexstudio.net/ask/question/17892.html Tue, 19 Aug 2025 21:38:03 +0800
如何处理`tblr`环境中使用了最小支架后的垂直居中问题? 现有一张表格,需要将行的高度拉高,并确保文字处于垂直居中位置。但在使用了最小支架stretch之后,发现文字并不在垂直居中位置。以下是排版要求(大多数都已完成):

  1. 每个单元格内的文字,列格式水平居左,行格式垂直居中
  2. 每一行的高度至少有“3行那么高”,当然不一定必须是3行,也可以是3cm,5cm等,大概意思就是要很明显地看出:相邻两行的文字被分隔线隔开、存在相当高的垂直空白;
  3. 不要竖线,只要中间2条横线,线型为虚线(为了方便理解我用了hlines);
  4. 每个单元格内的文字,其行数只有1行,字数也已经限定,按照MWE中的假文理解即可;
  5. 第2列文字,比第1列文字,字号稍小;
  6. 第1列的右侧和第2列的左侧,增加稍许额外水平间距。
  7. 第1列文字,使用红色。

image.png

最小工作示例:

\documentclass[border=2pt]{standalone}
\usepackage{ctex,tabularray,color,varwidth}
\begin{document}
\begin{tblr}{
    colspec={ll},
    % hline{2,3}={dashed},
    hlines={dashed},
    column{1}={fg=red,rightsep+=.2em},
    column{2}={font=\scriptsize,leftsep+=.2em},
    stretch=3.5,
}
    \begin{varwidth}{4em}
        四个个字
    \end{varwidth}&
    \begin{varwidth}{50em}
        六个个个个字\texttt{Sixxxx}四个个字,六个个个个字
    \end{varwidth}\\
    \begin{varwidth}{4em}
        四个个字
    \end{varwidth}&
    \begin{varwidth}{50em}
        十二个个个个个个个个个字,五个个个字
    \end{varwidth}\\
    \begin{varwidth}{4em}
        四个个字
    \end{varwidth}&
    \begin{varwidth}{50em}
        八个个个个个个字,九个个个个个个个字
    \end{varwidth}\\
\end{tblr}
\end{document}
四个个字&六个个个个字\texttt{Sixxxx}四个个字,六个个个个字\\
四个个字&十二个个个个个个个个个字,五个个个字\\
四个个字&八个个个个个个字,九个个个个个个个字\\
]]>
https://ask.latexstudio.net/ask/question/17890.html Sun, 17 Aug 2025 18:15:04 +0800
在带breakable选项的tcolorbox中使用lineno宏包的`\internallinenumbers`命令,结果靠近换页处的行号出现错位,如何使得行号在正确的位置生成? 问题如题,代码如下:

\documentclass{article}
\usepackage{lipsum}
\usepackage{lineno}
\usepackage[most]{tcolorbox}

\begin{document}


\begin{tcolorbox}[left=4mm,boxsep=1mm,boxrule=0.5mm,breakable]
    \internallinenumbers
    \addtolength\linenumbersep{-2.0mm}
    \lipsum
\end{tcolorbox}


\end{document}

编译结果如图: 行号.png

]]>
https://ask.latexstudio.net/ask/question/17887.html Fri, 15 Aug 2025 17:55:33 +0800