Sagittarius Rover
Sagittarius Rover
我要成为Typst糕手/(ㄒoㄒ)/~~

注册于 3年前

回答
325
文章
0
关注者
14

记录昨晚失败的尝试...

本意是希望改写\NewTblrDashStyle命令的样式,以便自定义[dashdot]类似的样式来,也许是最佳实践....我把它续问在了这里

但是tabularray宏包在使用solid,dotted以及dashed这些样式时使用的是手动绘制rule的方式,这使得进行类似的拓展变得比较困难...

https://pastebin.com/BrecH5My

🤨🤨🤨...


Edit:另一种workaround

必须在 overleaf (texlive 2024)上实现或下图 tabularray 版本的宏包,如不行提供 texlive 以及相关宏包的版本。

我的版本信息为2025-A,提供了更好的tikz支持,如果需要在overleaf上使用,你也可以upload最新版的tabularray.sty

 *File List*
 ctexart.cls    2022/07/14 v2.5.10 Chinese adapter for class article (CTEX)
ctexbackend.cfg    2022/07/14 v2.5.10 Backend configuration file (CTEX)
   expl3.sty    2025-03-26 L3 programming layer (loader) 
l3backend-xetex.def    2025-03-14 L3 backend support: XeTeX
ctexhook.sty    2022/07/14 v2.5.10 Document and package hooks (CTEX)
ctexpatch.sty    2022/07/14 v2.5.10 Patching commands (CTEX)
  fix-cm.sty    2020/11/24 v1.1t fixes to LaTeX
  ts1enc.def    2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
ctexopts.cfg    2022/07/14 v2.5.10 Option configuration file (CTEX)
 article.cls    2024/06/29 v1.4n Standard LaTeX document class
  size10.clo    2024/06/29 v1.4n Standard LaTeX file (size option)
ctex-engine-xetex.def    2022/07/14 v2.5.10 XeLaTeX adapter (CTEX)
   xeCJK.sty    2022/08/05 v3.9.1 Typesetting CJK scripts with XeLaTeX
xtemplate.sty    2024-08-16 L3 Experimental prototype document functions
fontspec.sty    2024/05/11 v2.9e Font selection for XeLaTeX and LuaLaTeX
  xparse.sty    2024-08-16 L3 Experimental document command parser
fontspec-xetex.sty    2024/05/11 v2.9e Font selection for XeLaTeX and LuaLaTeX
 fontenc.sty    2021/04/29 v2.0v Standard LaTeX package
fontspec.cfg
   xeCJK.cfg    2022/08/05 v3.9.1 Configuration file for xeCJK package
zhnumber.sty    2022/07/14 v3.0 Typesetting numbers with Chinese glyphs
zhnumber-utf8.cfg    2022/07/14 v3.0 Chinese numerals with UTF8 encoding
ctex-scheme-chinese-article.def    2022/07/14 v2.5.10 Chinese scheme for article (CTEX)
ctex-name-utf8.cfg    2022/07/14 v2.5.10 Caption with encoding UTF-8 (CTEX)
ctex-c5size.clo    2022/07/14 v2.5.10 c5size option (CTEX)
ctex-fontset-windows.def    2022/07/14 v2.5.10 Windows fonts definition (CTEX)
    ctex.cfg    2022/07/14 v2.5.10 Configuration file (CTEX)
tabularray.sty    2025-03-11 v2025A Typeset tabulars and arrays with LaTeX3
varwidth.sty    2009/03/30 ver 0.92;  Variable-width minipages
    tikz.sty    2023-01-15 v3.1.10 (3.1.10)
     pgf.sty    2023-01-15 v3.1.10 (3.1.10)
  pgfrcs.sty    2023-01-15 v3.1.10 (3.1.10)
pgfrcs.code.tex
 pgfcore.sty    2023-01-15 v3.1.10 (3.1.10)
graphicx.sty    2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
  keyval.sty    2022/05/29 v1.15 key=value parser (DPC)
graphics.sty    2024/08/06 v1.4g Standard LaTeX Graphics (DPC,SPQR)
    trig.sty    2023/12/02 v1.11 sin cos tan (DPC)
graphics.cfg    2016/06/04 v1.11 sample graphics configuration
   xetex.def    2022/09/22 v5.0n Graphics/color driver for xetex
  pgfsys.sty    2023-01-15 v3.1.10 (3.1.10)
pgfsys.code.tex
pgfsyssoftpath.code.tex    2023-01-15 v3.1.10 (3.1.10)
pgfsysprotocol.code.tex    2023-01-15 v3.1.10 (3.1.10)
  xcolor.sty    2024/09/29 v3.02 LaTeX color extensions (UK)
   color.cfg    2016/01/02 v1.6 sample color configuration
mathcolor.ltx
ninecolors.sty    2022-02-13 v2022D Select colors with proper color contrast
pgfcore.code.tex
pgfcomp-version-0-65.sty    2023-01-15 v3.1.10 (3.1.10)
pgfcomp-version-1-18.sty    2023-01-15 v3.1.10 (3.1.10)
  pgffor.sty    2023-01-15 v3.1.10 (3.1.10)
 pgfkeys.sty    
pgfkeys.code.tex
 pgfmath.sty    
pgfmath.code.tex
pgffor.code.tex
tikz.code.tex

下面是MWE:

\documentclass{ctexart}
\usepackage{tabularray}
\UseTblrLibrary{tikz}
\begin{document}
\begin{table}[ht]
\centering
\caption{\textbf{????}}
\begin{tblrtikzabove}
    \draw[dash dot]
    (2-2.north east) -- (16-2.south east);
\end{tblrtikzabove}
\begin{tblr}{colspec = {c|cc|c}}
\hline
\textbf{???} & \SetCell[c=2]{c}\textbf{???} && \textbf{??}\\
\hline
?? & ?? & ?? & ??\\
\hline
\SetCell[r=3]{c}??? & ?? & ?? & \SetCell[r=3]{c}???\\
\hline
& ?? & ?? & \\
\hline
& ?? & ?? & \\
\hline
?? & ?? & ?? & ??\\
\hline
\SetCell[r=6]{c}?? & ?? & ?? & \SetCell[r=6]{c}?? \\
\hline
& ?? & ?? & \\
\hline
& ?? & ?? & \\
\hline
& ?? & ?? & \\
\hline
& ?? & ?? & \\
\hline
& ?? & ?? & \\
\hline
?? & ?? & ?? & ??\\
\hline
\SetCell[r=3]{c}?? & ?? & ?? & \SetCell[r=3]{c}?? \\
\hline
& ?? & ?? & \\
\hline
& ?? & ?? & \\
\hline
\end{tblr}
\end{table}

\end{document}

image.png

maybe related: https://ask.latexstudio.net/ask/question/17595.html

  • 标签不要放一些诸如『大佬救命』的内容,适得其反...
  • 代码要用markdown语法,不然无法正确高亮
  • 可以关注一下\parindent以及\indent\noindent的作用,少用\\

如非必要,勿增实体。只用了amsthm的功能实现...

\documentclass[12pt]{ctexbook}
\usepackage[showframe]{geometry}
\usepackage{amsmath,amsthm}
% \usepackage{hyperref}
\newtheoremstyle{qaqstyle}
    {3pt} % Space above
    {3pt} % Space below
    {} % Body font
    {1cm} % Indent amount(修改间距)
    {\bfseries} % Theorem head font
    {:} % Punctuation after theorem head(冒号)
    {.5em} % Space after theorem head
    {\thmname{#1}\thmnumber{ #2}.\thmnote{ #3}} % Theorem head spec (can be left empty, meaning `normal')
\theoremstyle{qaqstyle}%切换为新样式
\newtheorem{example}{例}[section]
\setlength{\parindent}{0pt}%取消段前缩进
\begin{document}
    % 1\\%这一行的缩进是默认的\parindent

    对比

    \hspace{1cm}对比:你应该用theorem的title, 而不是自己手动输入『\texttt{\char92 textbf{椭球面:}}』
    \begin{example}[椭球面]
        $\frac{x^{2}}{a^{2}}+\frac{y^{2}}{b^{2}}+\frac{z^{2}}{c^{2}}=1$
    \end{example}
\end{document}

image.png

所以我最后打算直接把bibtex生成的列表隐藏掉,自己写一个列表上去。但是直接注释掉\bibliography{thesis-references}会导致文章中的参考文献出错,不知道怎么解决?

你想要“自己写一个列表上去”是一个非常反人类的做法。正常情况下,bibliography和正文内的\cite是一个label-ref对的引用关系,不应该“自己写一个列表上去”。你应该比较标准的比如gbt7714的样式与你目标样式的差异,再尝试修改.bst,用规范标准的bibtex工作流来实现『参考文献』.如果你想要去掉\bibliography,那你就不能在正文进行\cite...这是不规范的,也是不合理的.

打算直接把bibtex生成的列表隐藏掉

如果_一定要_实现隐藏...可以尝试用这个方法...

\documentclass[fontset=ubuntu]{ctexart}
\usepackage{bibentry}
\usepackage{gbt7714}
\bibliographystyle{gbt7714-numerical}
% https://tex.stackexchange.com/a/142845/322482
\begin{document}

Here is a cite\cite{article-full}.

这是另一处中文引用\cite{misc-full}.

\nobibliography{xampl}

\end{document}

image.png

我用item来新写一个列表,发现序号是右对齐的,查了很久不知道怎么修改

大致理解成你希望label左对齐,使用enumitem宏包的align=left选项即可:

\documentclass{ctexart}
\usepackage{enumitem}
\begin{document}

\begin{enumerate}[label={[\arabic*]},align=left,start=8]
    \item 我能吞下玻璃而不伤身体.
    \item 我能吞下玻璃而不伤身体.
    \item 我能吞下玻璃而不伤身体.
    \item 我能吞下玻璃而不伤身体.
\end{enumerate}

\end{document}

另外你这些参数{itemsep=2pt, partopsep=0pt, parsep=\parskip, topsep=5pt, itemindent = 0pt, labelindent = 10pt}都是确实需要的吗....

image.png

最后非常重要的是,你提供的代码不完整。MWE应该从\documentclass开始到\end{document}结束. BTW,一个问题应该只聚焦在一处,你有两处疑惑,正常情况下应该提两个问题.

如果修改了模板,请提供原始模板的下载链接,和你做的具体修改,否则会大大增加别人的代码阅读量

这个链接下载的文件目录结构 V.S. 你的压缩包的目录结构对比如下:

image.png

左图这几个目录是什么,令人费解。

在你的elsarticle.cls/elsarticle.cls的这个文件是哪里来的,是根目录下的elsarticle.dtx
释放出来的吗?看上去版本是不一样的,同样令人费解。

  • 你原有路径中的elsarticle.cls/elsarticle.cls的版本为2009/09/17发布的1.20b
  • 你根目录中的elsarticle.dtx对应的版本为2020/11/20v3.3

对于2009年和2020年的版本,在ubuntu下的TL2025编译均一切正常:

\documentclass[preprint,5p,times,twocolumn]{elsarticle}
\journal{Nuclear Physics B}

\begin{document}

\title{Leveraging social media news to predict stock index movement using RNN-boost}

%% main text
\section{Introduction}

Normal Case: I can eat the glass and it doesn't hurt me.

\texttt{textbf} Case: \textbf{I can eat the glass and it doesn't hurt me.}

\texttt{bfseries} Case: {\bfseries I can eat the glass and it doesn't hurt me.}

\end{document}
\endinput

image.png

请补充完整你的问题,提供一个尽可能短的只体现\textbf失效的最简代码(给一个简单的.tex文件),并明确你调用的是哪一个.cls文件,避免令人费解,要让人一点击编译立刻看到\textbf失效。

其实答案比较简单。

不需要在206行(大约)显式写出\chapter*{参考文献}

可以看book.cls中关于thebibliography环境的定义

image.png

对于长公式,不推荐在行内断行:

\documentclass[aspectratio=169]{beamer}
\usepackage{ctex}
\begin{document}
    \begin{frame}
        例1.如图,这里有一段随机文字,蚊子苹果和香蕉,\(abcdefgh=ghfedcba,dkasdfsd=dfskdf\),求证:苹果是可以吃的
    \end{frame}
    \begin{frame}
        例1.如图,这里有一段随机文字,蚊子苹果和香蕉,\(abcdefgh=ghfedcba\),\(dkasdfsd=dfskdf\),求证:苹果是可以吃的
    \end{frame}
    \begin{frame}
        例1.如图,这里有一段随机文字,蚊子苹果和香蕉:
        \[
        abcdefgh=ghfedcba,dkasdfsd=dfskdf
        \] 
        求证:苹果是可以吃的
    \end{frame}
    \begin{frame}
        例1.如图,这里有一段随机文字,蚊子苹果和香蕉:
        \begin{gather*}
            abcdefgh=ghfedcba\\
            dkasdfsd=dfskdf
        \end{gather*}
        求证:苹果是可以吃的
    \end{frame}
\end{document}

image.png

你也可以尝试自行指定\allowbreak:

\documentclass[aspectratio=169]{beamer}
\usepackage{ctex}
\begin{document}
    \begin{frame}
        例1.如图,这里有一段随机文字,蚊子苹果和香蕉,\(abcdefgh\allowbreak = \allowbreak  ghfedcba,\allowbreak dkasdfsd=dfskdf\),求证:苹果是可以吃的
    \end{frame}
\end{document}

image.png

注意:abcdefghghfedcba这种很长的变量名都是 不应该 从中间断行的。

八一老师说过:

最好的答案是自己给出

好不好我不清楚,但是比较符合我预期的答案也许是:

TL;DR

  • 对于有相对古早的『中文期刊』投稿需求的用户,只要确认其文档类为cctart,最好是“入乡随俗”,用虚拟机隔离一个CTeX套装的环境
  • 对于在2025年想学习LaTeX排版编辑的用户,只要不符合上一点的使用场景,新的TeXLive发行版具有更好的优势和兼容性。一大部分LaTeX用户使用的场景是编译某一样式优美的『LaTeX模板(例如elegantbookbeautybookvividbook)』或者『期刊模板(例如爱斯维尔elsartWileyNJD等)』,上述的模板均不能在未做修改的情况下在CTeX套装下编译

T.B.C.

关于『中文处理技术』,在这个回答的评论区中也有一些记载。

关于国内过时的『基于cctart类的模板』,在这个链接中也有一些信息(当然,要注意甄别是否过时)。

似乎有很明显的循环结构呀🧐

\documentclass{beamer} 
\usepackage{tikz}
\makeatletter
\newcommand{\Letter}[1]{\@Alph{#1}}
\makeatother
\newcommand{\myplot}[1]{
    \foreach \i[evaluate=\i as \j using (\i/(1+#1))] in {1,...,#1} {
        \node[minimum size=2cm,font=\tiny,align=center] at (\j\linewidth,0) {\Letter{\i}\\(\j,0)};
    }
}
\begin{document} 
\tikzset{every node/.style={draw,dotted,inner sep=.5cm}}
\begin{frame}
\centering%
\tikz{\myplot{1}}\medskip

\tikz{\myplot{2}}\medskip

\tikz{\myplot{3}}\medskip

\tikz{\myplot{4}}\medskip

\end{frame}
\begin{frame}
    \centering%
    \foreach \x in {4,...,1}{%
        \tikz{\myplot{\x}}\par\medskip
    }
\end{frame}
\end{document} 

image.png

Edit:

node里的内容通常是写一大段不相同的文字,怎么循环?

也许用clist会挺方便(?)可以自己设计一下syntax(例如\mydraw{C,A,V,X})

我自己写的时候没注意到\centering的重要作用😡,怀疑人生了好一会儿...

\documentclass{beamer} 
\usepackage{tikz}
\begin{document} 
\tikzset{every node/.style={draw,dotted,inner sep=.5pt}}
\ExplSyntaxOn
\NewDocumentCommand{\mydraw}{m}{%
    \clist_set:Nn \l_tmpa_clist {#1}
    % \clist_use:Nn \l_tmpa_clist {;} \par
    \int_set:Nn \l_tmpa_int { \clist_count:N \l_tmpa_clist }
    \begin{tikzpicture}
        \foreach \i in {1,...,\l_tmpa_int} {%
            \def\j{\fpeval{round(\i/(1+\l_tmpa_int),4)}}% texdoc xfp
            \node[minimum~size=1.5cm,font=\tiny,align=center] at (\j\textwidth,0) {(\j)\\ \clist_item:Nn \l_tmpa_clist {\i}};
        }
    \end{tikzpicture}
}
\ExplSyntaxOff
\begin{frame}
    \centering%
    \mydraw{ahahaha,123456,1aaa2,{some~text,hia\\hiahia},kkk}\medskip

    \mydraw{I~am~A,You~are~B,He~is~C}\medskip

    \mydraw{C,A,B,F,E,H,G}\medskip
\end{frame}
\end{document} 

image.png

此事在这个issues亦有记载。但我不太认可:

ctex+article不如ctexart

这一说法。

本问题的一个等价的mwe为:

\documentclass{article}
\makeatletter
\def\@zihao{5}
\makeatother
\usepackage[zihao=\@zihao]{ctex}
% \usepackage[zihao=5]{ctex}
\usepackage{zhlipsum}
\begin{document}

\zhlipsum[name=zhufu]

\end{document}

这是一个宏展开问题。

image.png

你做过任何尝试🤔?
你至少要把框架的代码给出来,再具体说明你遇到的难题是什么(例如求交点)。


不要提出自己没有付出任何努力的问题(from 提问的智慧)

image.png

可以试试封装度更高的tkz-euclide

\documentclass[border=5pt]{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}[line cap=round]
\tkzDefPoints{0/0/B,6.5/0/D,4/4/A,4.5/-1.5/C}
\tkzDrawSegments[thick](A,B A,C A,D B,C C,D)
\tkzDefMidPoint(A,B) \tkzGetPoint{B'}
\tkzDefMidPoint(A,C) \tkzGetPoint{C'}
\tkzDefMidPoint(A,D) \tkzGetPoint{D'}
\tkzDefMidPoint(B,D) \tkzGetPoint{G}
\tkzDefMidPoint(C,B) \tkzGetPoint{E}
\tkzDefMidPoint(C,D) \tkzGetPoint{F}
\tkzInterLL(B',F)(D',E) \tkzGetPoint{M}
\tkzDrawSegments[dashed](B,D B',F E,D')
\tkzDrawPoints[black](A,B,C,D,E,F,G,B',C',D',M)
\tkzLabelPoints[above](A)
\tkzLabelPoints[left](B,B',C',M)
\tkzLabelPoints[below](C,E,G)
\tkzLabelPoints[right](D,F,D')
\end{tikzpicture}
\end{document}

image.png

预期得到两份答案: 使用longtblr环境实现更好的内容与样式分离

我基于tabularraylongtblr也做了一个尝试:

  • Q列格式可以让你直接摆脱longtable的列格式和array宏包和valign的混合指定,我也妹弄得很明白...
  • 使用header可以实现重复标题行的功能,且该设置位于longtable的环境外,适合移植批量配置表格样式
  • 使用row{1}={font=\bfseries}也可以避免使用四次\textbf的尴尬支持
  • 似乎文档更建议用\adjustimage代替\adjustbox{\includegraphics{}}
  • tabularray!优雅永不过时~
\documentclass[fontset=fandol]{ctexart}
\usepackage[margin=1in,landscape]{geometry}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{tabularray}
\newcommand*{\inserttxt}{I can eat the glass and it doesn't hute me.}
\DeclareTblrTemplate{contfoot-text}{normal}{(见下页)}
\SetTblrTemplate{contfoot-text}{normal}
\DeclareTblrTemplate{conthead-text}{normal}{ -- 续上页表格}
\SetTblrTemplate{conthead-text}{normal}

\begin{document}
    
\section{我是一个章节章节章节}

\begin{longtblr}[
    label = {tblr:a longtblr},
    caption = {这是一个长长长长长长长长长长长长表格},
    ]{
        colspec = {Q[c,m,1cm]Q[m,4cm]Q[m,5cm]Q[c,m,5.5cm]},vlines,hlines,
        row{1} = {font=\large\bfseries,halign=c},
        row{2-5} = {ht=4cm},
        width = .6\linewidth,%自行控制
        stretch = 0,
        rowhead = 1,
    }
    No. & Content & Content & Graphs \\
    1 & \inserttxt & \inserttxt & \adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image-A}} \\
    2 & \inserttxt\inserttxt & \inserttxt\inserttxt & \adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image-B}} \\
    3 & \inserttxt\inserttxt\inserttxt & \inserttxt\inserttxt\inserttxt & \adjustbox{valign=m, margin=3pt 5pt}{\includegraphics[width=5cm,height=3.5cm]{example-image-C}} \\
    4 & Alpha & Beta & \adjustimage{valign=m, margin=3pt 5pt,width=5cm}{example-image} \\
\end{longtblr}
    
\end{document}

image.png

当代码够短时,不要上传文件。实际上长的代码就不应该发上来提问。

您的标签能不能别乱写!!!! 第N+1次了,『解1去掉1』作为tag质量十分低劣!!!

image.png


查看tcolorbox文档...

image.png

所以你的问题等价于,在\newtheorem如何去掉1?

请自行对比和思考下例:

\documentclass{ctexart}
\usepackage{amsmath}
\newtheorem{MySolution}{解}
\begin{document}
\begin{MySolution}
    \begin{equation*}
        \int_{0}^{1} \frac{1}{x} \mathrm{d}x = \int_{0}^{1} \frac{1}{x} \cdot \frac{1}{1    \mathrm{d}x} = \int_{0}^{1} \frac{1}{1} \cdot \frac{1}{x} \mathrm{d}x = \int_{0}^{1} \frac{1}{x} \mathrm{d}x.
    \end{equation*}
\end{MySolution}
为什么会有\texttt{1}呢? 这一问题实际上与\texttt{tcolorbox}毫无关系.
\end{document}

image.png

\documentclass{ctexart}
\usepackage{amsmath}
\usepackage{amsthm}
\newtheorem*{MySolution}{解}
\begin{document}
\begin{MySolution}
    \begin{equation*}
        \int_{0}^{1} \frac{1}{x} \mathrm{d}x = \int_{0}^{1} \frac{1}{x} \cdot \frac{1}{1    \mathrm{d}x} = \int_{0}^{1} \frac{1}{1} \cdot \frac{1}{x} \mathrm{d}x = \int_{0}^{1} \frac{1}{x} \mathrm{d}x.
    \end{equation*}
\end{MySolution}
\end{document}

image.png

刚看文档抄的... maybe related link by 鱼老师

\documentclass[a4paper,twoside,12pt,openany]{ctexbook}
\usepackage[margin=1in]{geometry}
\usepackage{tikz}
\usepackage[most]{tcolorbox}
\definecolor{tianyi}{HTML}{66CCFF}
\definecolor{yanhe}{HTML}{00FFCC}
\definecolor{ling}{HTML}{EE0000}
\definecolor{qingxian}{HTML}{FFFF00}
\definecolor{skyblue}{HTML}{aeeafa}
\definecolor{darkblue}{RGB}{60,0,180}
% math typesetting
\usepackage{amsmath,amsthm,amssymb}
\usepackage{lipsum,zhlipsum}
\begin{document}

\NewTColorBox[auto counter,number within=chapter]{mytcbbox}{O{black}m}{
    enhanced jigsaw,breakable,colframe=#1,top=2ex,boxrule=2pt,toprule=0pt,fonttitle=\large\bfseries,colback=white,sharp corners,attach boxed title to top left={xshift=3em,yshift=-\tcboxedtitleheight/2},coltitle=#1,title={Definition\thetcbcounter~#2},
    boxed title style={%
        empty,left=1pt,right=1pt,bottom=0pt,sharp corners,
        overlay={%
            \draw[color=#1,line width=2pt,line cap=round]
            ([yshift=-1pt]frame.west)--
            ++(-2.9em,0) ([yshift=-1pt]frame.east)--
            ++(3em,0);
        }
    },
}

\chapter{chap1}
\begin{mytcbbox}{My Def Title}
    \lipsum[2]
\end{mytcbbox}

\begin{mytcbbox}[qingxian]{My Def Title}
    \lipsum[1]
\end{mytcbbox}

\begin{mytcbbox}[tianyi]{My Def Title}
    I can eat the glass band it doesn't hurt me. I can eat the glass band it doesn't hurt me. I can eat the glass band it doesn't hurt me.
\end{mytcbbox}

\chapter{chap2}
\begin{mytcbbox}[yanhe]{My Def Title}
    我能吞下玻璃而不伤身体. 我能吞下玻璃而不伤身体. 我能吞下玻璃而不伤身体. 我能吞下玻璃而不伤身体. 我能吞下玻璃而不伤身体. 我能吞下玻璃而不伤身体. 
\end{mytcbbox}

\begin{mytcbbox}[darkblue]{My Def Title}
    \zhlipsum[2]
\end{mytcbbox}

\begin{mytcbbox}[skyblue]{My Def Title}
    \zhlipsum[name=zhufu]
\end{mytcbbox}

\end{document}

image.png

Note:

  1. 懂得使用md代码块,这非常好(!)
  2. 题目还可以改进,需要体现这个样式的特征,例如『实现boxrule断开样式』而不是泛泛的『实现某种特定的边框』,好的题目可以让本post更容易被需要的人搜到

3.

上边框仅绘制两端长度为 3 em (可调整)的部分

因为一些原因,我不想暴露出控制这个长度的接口,如果确有需要修改,你可以自行试试修改以下绘制横线的长度(-2.9em3em):

overlay={%
    \draw[color=#1,line width=2pt,line cap=round]
    ([yshift=-1pt]frame.west)--++(-2.9em,0) 
    ([yshift=-1pt]frame.east)--++(3em,0);
}

我希望的效果:

  • 整个表格除了苹果二字,都出现在第一帧,直至结尾;
  • 苹果二字在第二帧出现,直至结尾.

我不明白为什么你需要嵌套\visible,本身就是可见的呀。写得更tabularray-style一点,以下就可以满足你的需求:

\documentclass{beamer}
\usepackage{tabularray}
\begin{document}

\begin{frame}{frametitle}
    Hello!\par
    \begin{tblr}{hlines,vlines,colspec={*{2}{Q[c,3cm]}},cell{2}{2}={cmd=\visible<+->}}
        1 & 2 \\
        3 & apple
    \end{tblr}
    
    \visible<+->{something else}
\end{frame}

\end{document}

image.png


这是为什么?

Claim:以上并不是不是完整的回答,提供一些层次递进的探索结果:

\documentclass{beamer}
\usepackage{tabularray}
\begin{document}
\begin{frame}{frametitleA}
    \visible<+->{%
        visible stuff

        \visible<+->{invisible stuff}
    }
\end{frame}

\begin{frame}{frametitleB}
    \visible<+->{%
        \begin{tabular}{|c|c|}
            \hline
            1 & 2 \\
            \hline
            3 & \visible<+->{invisible stuff}\\
            \hline
        \end{tabular}
    }
\end{frame}

\begin{frame}{frametitleC}
    \visible<+->{%
        \begin{tblr}{hlines,vlines}
            1 & 2 \\
            3 & \visible<+->{invisible stuff}
        \end{tblr}
    }
\end{frame}

\begin{frame}{frametitleD}
    \visible<+->{%
        \begin{tblr}{hlines,vlines,colspec={*{2}{Q[c,3cm]}}}
            1 & 2 \\
            3 & \visible<+->{invisible stuff}
        \end{tblr}
    }
\end{frame}
\end{document}

1.不使用任何环境,只做overlay specification的嵌套:

image.png

2.在tabular环境中嵌套使用:

image.png

3.在tblr中但不指定colspec={*{2}{Q[c,3cm]},此时beamerpauses递增了五次...:

image.png

4.在tblr中且指定colspec={*{2}{Q[c,3cm]},正如OP所述,递增了三次:

image.png


Edited:

Thanks to samcarter_is_at_topanswers.xyz:

If you don't set a colspec yourself, tabularray needs to first count how many columns there are, before it can start its normal doings.

要想解决上述由于tabularray造成beamerpauses计数错误的问题,调用counter子库即可(texdoc tabularray sec5.3),这将只产生两页slides:

\documentclass{beamer}
\usepackage{tabularray}
\UseTblrLibrary{counter}
\begin{document}
\begin{frame}
\frametitle{frametitle}
    \visible<+->{%
        \begin{tblr}{hlines,vlines,colspec={*{2}{Q[c,3cm]}}}
            1 & 2 \\
            3 & \visible<+->{invisible stuff}
        \end{tblr}
    }
\end{frame}
\end{document}

image.png

发布
问题