请给一个完整的代码例子。
并详细描述「实际效果」和「预期效果」的差异。
hello, world!
!!!文件配置是全的,完全一样的文件在别人电脑上的运行没有问题
表述很模糊,什么文件配置,又是什么全的,怎么个全法?
\documentclass
开始到\end{document}
结束siamart220329
是什么文档类???在哪里可以获得???你要是不能描述你具体哪里不会排,这看起来更像是「请帮我完成以下排版任务」;与其如此,不如你找这个公众号的主人,给点钱让把源码发你请不要把提问区当成许愿池,提问需要基本的诚意
这个论坛上活跃答题的就那么几个,要是你总是不遵守论坛规则,估计后面没人愿意回答了
那你的最小工作示例代码呢?作为一门写代码的学问提问不给代码?没有代码让人手工给你造轮子?
要想在论坛获得满意的答案,你首先「必须」付出并展示足够的努力(试问你付出了多少时间,上面的提问看起来就像是看到一个好看的一点尝试都没做就发出来问「如何实现」),让人能看到「他确实花了很多时间,确实在某个地方遇到了障碍」,而不是直接「伸手」....
推荐阅读:提问的智慧
由于提问极不规范而且缺少诚意...
随便答了,假定你要在enumerate
内使用自定义bullet
,自己画一个即可:
\documentclass{article}
\usepackage{tikz,enumitem,lipsum}
\newcommand*\mybullet[2][cyan]{%
\tikz[baseline=(char.base)]{%
\node[rectangle, fill=#1, inner sep=2pt, minimum height = 1.3em,font=\bfseries\color{white}] (char) {#2};
\draw[#1,very thin] ([yshift=-.3ex]char.south west) -- ([yshift=-.3ex]char.south east);
}}
\begin{document}
\begin{enumerate}[label=\protect\mybullet{\arabic*},start=9]
\item \lipsum[2]
\item \lipsum[2]
\item \lipsum[2]
\end{enumerate}
\end{document}
本着「不要重复造轮子」的原则,一个比较适合的包是texdox xsim
一个简单的用例在这里
给一个更完整点的例子(注意可能要手动删除.xsim
文件以防止错误的结果):
\documentclass{article}
\usepackage{xsim}
\usepackage{lipsum}
\DeclareExerciseCollection[label=A]{A}
\DeclareExerciseCollection[label=B]{B}
\DeclareExerciseCollection[label=C]{C}
\DeclareExerciseCollection[label=D]{D}
\DeclareExerciseTagging{label}
\xsimsetup{collect}
\begin{document}
\begin{exercise}[label=C]
\textbf{C} \lipsum[2]
\end{exercise}
\begin{exercise}[label={A,B}]
\textbf{A and B} \lipsum[2]
\end{exercise}
\begin{exercise}[label={B,C,D}]
\textbf{B and C and D} \lipsum[2]
\end{exercise}
\begin{exercise}[label={D,A}]
\textbf{D and A} \lipsum[2]
\end{exercise}
\section{AAA}
\printcollection{A}
\section{CCC}
\printcollection{C}
\section{DDD}
\printcollection{D}
\end{document}
Long Long Ago:
要求不使用参数方程,仍然使用自定义函数的方式
我不太能理解原因,是希望半个柱面用colormapA,另外半个柱面用colormapB吗?如果是,你应该直接说明你的最终需求,而不是中间需求「要求不使用参数方程,仍然使用自定义函数的方式」
图中ABCD四个位置明显渲染效果面积比其它位置大,如果增加样本量,这个现象还是存在。
这是因为采用「y=±√9-x^2」的形式, pgfplots
在处理时对x domain
进行等距离的分划,可以发现在两端对应的半圆切片更大(也就是A、D、B、C面积更大)
而如果采用「{cosx,sinx,y}」的形式,被等距离分划的是圆心角,因此这样的各个子块的面积是相同的
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{colormaps,fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale=2,axis equal,
view={120}{30},samples=20,
xlabel={$X$},ylabel={$Y$}]
\addplot3[
colormap/bluered,surf,
z buffer=sort,
domain=0:2*pi,
y domain=-4:0,
]
({3*cos(deg(x))},{3*sin(deg(x))},{y});
\end{axis}
\end{tikzpicture}
\end{document}
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{colormaps,fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale=2,axis equal,
view={120}{30},samples=20,
xlabel={$X$},ylabel={$Y$}]
\addplot3[
colormap/viridis,surf,
z buffer=sort,
domain=pi:2*pi,
y domain=-4:0,
]
({3*cos(deg(x))},{3*sin(deg(x))},{y});
\addplot3[
colormap/bluered,surf,
z buffer=sort,
domain=0:pi,
y domain=-4:0,
]
({3*cos(deg(x))},{3*sin(deg(x))},{y});
\end{axis}
\end{tikzpicture}
\end{document}
使用\exp_args:Nne
对参数进行e-type
展开
\documentclass{exam-zh}
\newcommand{\foo}{a3paper}
% \def\foo{a3paper}
\ExplSyntaxOn
\RenewDocumentCommand \examsetup { m }{
\exp_args:Nne \keys_set:nn {exam-zh} {#1}
}
\ExplSyntaxOff
\examsetup{
page/size={\foo},%可展的key-value
sealline/show=true,%不可展的key-value
}
\begin{document}
花有重开日,人无再少年。花有重开日,人无再少年。
\end{document}
在ctex-kit
中,today
这一key也是由.choice
定义的:
下面的mwe也有类似的问题:
\documentclass[fontset=ubuntu]{ctexart}
\def\mytodaystyle{big}
\ctexset{
today=\mytodaystyle,
}
\begin{document}
日期: \today
\end{document}
! Class ctexart Error: Today format `big' is undefined.
For immediate help type H <return>.
...
l.8 }
「似乎」也可以做类似的「展开」,但是l3keys
默认是不进行展开的,这样做是否会造成其他的问题,我不清楚...
\documentclass[fontset=ubuntu]{ctexart}
\def\mytodaystyle{big}
\ExplSyntaxOn
\exp_args:Ne
\ctexset{
% today=big,
today=\mytodaystyle,
}
\ExplSyntaxOff
\begin{document}
日期: \today
\end{document}
始终无法点中正确区域
点击位置不够「精确」,请睁大眼睛,准确点击「待点击对象」的「正中心」。
建议不要用「让代码就像文字一样,从当前页继续,但如果当前页空间不足时自动换页」这种表述,而是用「breakable listings」
太困了,只给例子,个人觉得tcb是比较好的实践了...
tcolorbox
和listings
的文档几个关键的option为:
listing remove caption=false
caption={Rust is Genshin Impact of coding}
captionpos=t
(这是默认值,可调)label={mycode}
\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\usepackage{hyperref}
\tcbuselibrary{listings}
\newtcbinputlisting{\mylisting}[2][]{%
enhanced jigsaw,sharp corners,title={example~code},empty,left=1cm,breakable,%
listing file={#2},listing only,listing remove caption=false,
listing options={numbers=left,breaklines,basicstyle=\ttfamily,caption={Rust is Genshin Impact of coding},captionpos=t,label={mycode}},#1%
}
\begin{filecontents*}[overwrite]{temp.rs}
use std::sync::{mpsc, Arc, Mutex};
use std::thread;
use std::time::Duration;
struct ThreadPool {
workers: Vec<Worker>,
sender: mpsc::Sender<Message>,
}
impl ThreadPool {
fn new(size: usize) -> Result<ThreadPool, PoolCreationError> {
if size == 0 {
return Err(PoolCreationError::InvalidSize);
}
let (sender, receiver) = mpsc::channel();
let receiver = Arc::new(Mutex::new(receiver));
let mut workers = Vec::with_capacity(size);
for id in 0..size {
workers.push(Worker::new(id, Arc::clone(&receiver)));
}
Ok(ThreadPool { workers, sender })
}
fn execute<F>(&self, f: F)
where
F: FnOnce() + Send + 'static,
{
let job = Box::new(f);
self.sender.send(Message::NewJob(job)).unwrap();
}
}
struct Worker {
id: usize,
thread: Option<thread::JoinHandle<()>>,
}
impl Worker {
fn new(id: usize, receiver: Arc<Mutex<mpsc::Receiver<Message>>>) -> Worker {
let thread = thread::spawn(move || loop {
let message = receiver.lock().unwrap().recv().unwrap();
match message {
Message::NewJob(job) => {
job();
}
Message::Terminate => break,
}
});
Worker {
id,
thread: Some(thread),
}
}
}
enum Message {
NewJob(Box<dyn FnOnce() + Send + 'static>),
Terminate,
}
#[derive(Debug)]
enum PoolCreationError {
InvalidSize,
}
fn is_prime(n: u64) -> bool {
if n <= 1 {
return false;
}
for i in 2..=(n as f64).sqrt() as u64 {
if n % i == 0 {
return false;
}
}
true
}
fn main() {
}
\end{filecontents*}
\begin{document}
I want to ref code \ref{mycode} here.
\lipsum[1]
\mylisting{temp.rs}
\lipsum[2]
\end{document}
算是经典问题吧。
这个代码高亮是LaTeX-Workshop
提供的,所以类似的issues等是应该被关心的。
VSCode 目前存在问题, 对于识别类似left{ xxxxright.这样的代码有问题, 不认为是成对的, 导致总是无法正常显示成对的括号。我依稀记得很久以前是没有这个问题的, 不知道是从哪个版本开始变成这样了。一直没有很好的解决方法
LaTeX workshop
的话....在我这里表现良好,可能你要检查一下版本,以及关注vscode-latex-basics
相关的issues,如测试还有漏网之鱼,应该向这里报告。
注意到你还提到你安装了「HyperScopes、LaTeX Acronyms、LaTeX language support」
我都没装(我也不想装)...
TeXLive2025
windows11
一切正常
那个ishort感觉有些已经不够了 所以去哪里找比较好的学习资源呢
首先是L-short
不是I-short
.
你的这个问题是源自于"自定义表格的需求"
lshort里大致介绍了:
tabular
环境的用法tabularx
控制列宽\multicolumn
以及\multirow
控制合并单元格booktabs
也做了详细的入门讲解,关键是你没注意到红圈那里的细节...那个ishort感觉有些已经不够了
我觉得不是不够,而是你目前阅读的不是太仔细,90%的入门问题都可以通过lshort-zh-cn
解决。
所以去哪里找比较好的学习资源呢 我现在很多都不知道 都不知道某一个用法对应的宏包 很迷茫
读完入门教程之后,个人觉得合适的路径是结合自己的需求,找针对性的文档去看,例如下面:
当你需要排版斜线表头,你总可以在互联网上获知diagbox
这个包,使用texdoc diagbox
你就可以看到详细用法,学习文档并用到你的代码中
当你需要跨页表格,你可能会搜索到longtable
。同样的,使用texdoc longtable
呼出文档
你可能还会有更细致的表格排版要求,你还会听到“tabularray
优雅永不过时”这样的说法,这时你可以去了解下texdoc tabularray
看看其效果....例如下面比较fancy的表格效果...
texdoc
命令,多看文档是进一步学习LaTeX
的必由之路吧...我也是在lshort-zh-cn
中找到你这个case里的合适方法的
\documentclass[12pt]{ctexart}
% \usepackage[showframe]{geometry}
\usepackage{tabularx}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{table}[!htbp]
\centering
\begin{tabularx}{\textwidth}{*{3}{>{\centering\arraybackslash}X}}
\toprule[1.5pt]
符号 & 说明 & 单位\\
\midrule[1pt]
5 & 269.8 & 0.04089\\
10 & 421.0 & 0.04089\\
20 & 640.2 & 0.04089\\
\bottomrule[1.5pt]
\end{tabularx}
\label{tab:001}
\end{table}
\end{document}
编译查看报错信息:
! Undefined control sequence.
<inserted text> {Xcc} \toprule
[1.5pt] 符号 & 说明 & 单位\\ \midrule [...
l.15 \end{tabularx}
意思是,未定义的控制序列\toprule
为什么LaTeX
不认识\toprule
,因为需要booktabs
宏包
还有,不需要显式写出粗细[1.5pt]
等;编译中文需要ctex
宏包
\documentclass[12pt]{ctexart}
\usepackage{tabularx} % 需导入宏包
\usepackage{amsmath}
\usepackage{booktabs}
\begin{document}
\begin{table}[!htbp]
\centering
\caption{这是一个三线表}
\begin{tabularx}{\textwidth}{Xcc}
\toprule
符号 & 说明 & 单位\\
\midrule
5 & 269.8 & 0.04089\\
10 & 421.0 & 0.04089\\
20 & 640.2 & 0.04089\\
\bottomrule
\end{tabularx}\label{tab:001}
\end{table}
我要索引 表\ref{tab:001} 啊哈啊.
\end{document}
问 texshade宏包使用错误日志解答