始终无法点中正确区域
点击位置不够「精确」,请睁大眼睛,准确点击「待点击对象」的「正中心」。
始终无法点中正确区域
点击位置不够「精确」,请睁大眼睛,准确点击「待点击对象」的「正中心」。
建议不要用「让代码就像文字一样,从当前页继续,但如果当前页空间不足时自动换页」这种表述,而是用「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}
不知道你是不是在找「section」如何设置pagebreak
的惩罚(?)
我尝试找了下:
$ article.cls, line302
\newcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
以及:
% latex.ltx, line 15606:
\def\@startsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
\par
\@tempskipa #4\relax
\@afterindenttrue
\ifdim \@tempskipa <\z@
\@tempskipa -\@tempskipa \@afterindentfalse
\fi
\if@nobreak
\everypar{}%
\else
\addpenalty\@secpenalty\addvspace\@tempskipa
\fi
\@ifstar
{\@ssect{#3}{#4}{#5}{#6}}%
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
其中
\if@nobreak
\everypar{}%
\else
\addpenalty\@secpenalty\addvspace\@tempskipa
\fi
似乎 设置了\section
后的惩罚。可惜,我不懂TeX
....
可能有关:https://github.com/CTeX-org/ctex-kit/issues/434#issuecomment-493402258
注:「source-han」和「noto-serif-CJK-SC(实际上就是fontset=ubuntu
调用的)」均为「思源字体」,只是分发的公司不同而已。
那么这些汉字支持是怎么实现的?
感觉问的有点泛了...我不懂字体....
也许有关: https://liam.page/2016/12/11/LaTeX-traditional-font-scheme/
是不是依靠...\texlive\2024\texmf-dist\tex\generic\ctex\zhmap下的ctex-zhmap-founder.tex
文件实现的?
是。在sec4.3
中,zhmap=true
时默认行为调用了zhmetrics
读取ctex-zhmap- #4 .tex
中的配置:
源码可参见ctex
文档的sec14.3.2:ctex-engine-pdftex.def
:
% \ctex_load_zhmap:nnnn
% 载入 zhmetrics 的字体映射文件,同时设置 \CJKrmdefault 等。
512 \cs_new_protected:Npn \ctex_load_zhmap:nnnn #1#2#3#4
513 {
514 \tl_set:Nn \CJKrmdefault {#1}
515 \tl_set:Nn \CJKsfdefault {#2}
516 \tl_set:Nn \CJKttdefault {#3}
517 \ctex_set_zhmap:n { \ctex_file_input:n { ctex-zhmap- #4 .tex } }
518 }
519 \@onlypreamble \ctex_load_zhmap:nnnn
520 }
附:
在v2.5的changlog中提到:
General: ubuntu 改用思源(Noto CJK)和文鼎字库,不再支持使用 pdfLATEX
编译。
这个修改的代码内容可见这个链接,也许研究下修改之前的配置可以部分回答你的原问题. 粗看上面的修改,之前的fontset=ubuntu
是因为使用的是「文泉驿」字体(支持pdftex
),修改为「Noto」之后不支持了。
后者似乎是texhigh
用的方式:
% texhigh.prelude.ths Line101
\@ifpackageloaded{tikz}{\@texhighload@tikztrue}{}
\newbox\texhigh@picturebox
\if@texhighload@tikz
\RequirePackage{tikz}
\usetikzlibrary{shadings}
\usetikzlibrary{fill.image}
\protected\def\texhigh@shadetext#1#2{%
\setbox\texhigh@picturebox=\hbox{{\texhigh@pdfliteral{7 Tr }#2}}%
\tikz[baseline=0,line width=0pt]\path\pgfextra{\rlap{\copy\texhigh@picturebox}}
[#1] (0,-\dp\texhigh@picturebox) rectangle (\wd\texhigh@picturebox,\ht\texhigh@picturebox);}
\tikzset{texhigh/.is family,
texhigh/gradient primitive/.style={left color=blue,right color=cyan},
texhigh/gradient ?/.style={left color=red,right color=blue},
texhigh/gradient-style/.style={texhigh/gradient #1}}
\THSaveStyle{tikz.gradient}{%
\THSetClassCS{latex}{\texhigh@underline{\THcolor{purple}\bfseries#1#2}}
\THSetClassCS{primitive}
{\texhigh@shadetext{texhigh/gradient-style=primitive}{\bfseries #1#2}}%
\THSetClassCS{?}{\texhigh@shadetext{texhigh/gradient-style=?}{#1#2}}%
}
看上去是浮点误差所致(?)
\documentclass{standalone}
\usepackage{tikz}
% \usepackage{xfp}%
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def\a{0.1}
\def\t{65}
\def\l{0.2}
\def\w{1.4}
\def\ws{0.8}
\foreach \i in{1,2,...,7}
{
\pgfmathparse{\i*0.20+13.35}
\let\s=\pgfmathresult
\node[anchor=north,inner sep=2pt] at (0,\i) {$\s$ and $\fpeval{\i*0.20+13.35}$};
}
\end{tikzpicture}
\end{document}
是最小工作示例代码...
并非最小。
xe
编译才会出现『无法加粗』的现象,啸行的回答老师才是更好的正解。如果非用xelatex
不可:
learnt from here
ieeetrans
的投稿需求,或者换言之,这是不是最佳实践,我不清楚。% main.tex
% https://tex.stackexchange.com/a/495519/322482
\renewcommand{\encodingdefault}{OT1}
\documentclass[journal]{IEEEtran}
\begin{document}
\section{Introduction}
For peer review papers
\textbf{creates the second title.}
{\bfseries aaaaa}
\end{document}
附件一直上传不上来,就只好贴链接了
论坛传输文件有大小限制。实际上,当你触及这一限制时,说明你并没有做MWE,而是把调试大段代码的任务直接甩手交给别人...
模板编译报错,不知道具体原因
当你遇到报错,务必贴报错信息。
注意项目的文件结构和上述信息判断:
找不到./font/
下的字体呗...
1.方法一,『为所有人安装』上述路径下的字体后刷新缓存
2.方法二,注意到:
% cumcmthesis.cls % Line 128
\RequirePackage{fontspec}
\newfontfamily\yaheiconsola{YaHei.Consolas.1.11b.ttf}
\newfontfamily\monaco{MONACO.TTF}
\setmonofont[
Contextuals={Alternate},ItalicFont = Fira Code Retina Nerd Font Complete.otf % to avoid font warning
]{YaHei.Consolas.1.11b.ttf}
使用Path
选项指定路径。
\RequirePackage{fontspec}
\newfontfamily\yaheiconsola[Path = ./font/,]{YaHei.Consolas.1.11b.ttf}
\newfontfamily\monaco[Path = ./font/]{MONACO.TTF}
\setmonofont[
Path = ./font/,
Contextuals={Alternate},
ItalicFont = Fira Code Retina Nerd Font Complete.otf% to avoid font warning
]{YaHei.Consolas.1.11b.ttf}
之后编译又报错
! LaTeX Error: Unknown option `classicReIm' for package `kpfonts-otf'.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.80
我不懂字体,参考这个
将
%五一模板.tex %Line9
\usepackage[classicReIm]{kpfonts}
替换为xe
友好的
\usepackage[fancyReIm]{kpfonts-otf}
如发现其他问题,请⌈补充问题⌋,并具体指明效果差异。并尽可能给更短的MWE,过长的代码0人想看。
请提供你的操作系统(是否是windows?)
同时你需要提供你所说的『ctex做的tex文件』的.tex
文件内容,或者测试如下的最简代码:
\documentclass{ctexart}
\begin{document}
你好 \LaTeX\ 世界!
\end{document}
看看问题是否存在。有可能是安装时提前关闭了安装界面,进而没有做好字体配置所致(?)
问 无法绑定手机号。