把你的问题精简为mwe, 直接把所有的代码都贴出来而不自己先去排查问题也是对回答者的不尊重
把你的问题精简为mwe, 直接把所有的代码都贴出来而不自己先去排查问题也是对回答者的不尊重
使用 xelatex 编译你的代码并没有出现问题:
请尝试更新发行版和宏包
请更详细地描述你的问题, 最好可以给出mwe: 你想干什么, 你用了什么代码完成了什么, 有什么疑问
参考这个 issue: https://github.com/CTeX-org/ctex-kit/issues/315
如果使用 \ziju{2}
来增加间距的话可以发现问题所在
可以看到 \textcolor
附近的间距没有正常调整.
可以按照 issue 中提到的, 使用 lualatex
编译:
我用了 \parbox
排左边的, \raisebox
排右边的, 把公式的长度放到了 \formula
长度里, 使用时请自行修改:
\documentclass{article}
\newlength{\formula}
\settowidth{\formula}{$ X \cup (Y\cap Z) $}
\usepackage{tabularray}
\begin{document}
\begin{enumerate}
\item One
\item \parbox[t]{\formula}{\noindent $ X \cup (Y\cap Z) $ \\ $ X \cup (Y\cap Z) $}\ \raisebox{-.5\baselineskip}{text}
\item Three
\end{enumerate}
\end{document}
运行 bibtex thesis
时报错
This is BibTeX, Version 0.99d (TeX Live 2021/W32TeX)
The top-level auxiliary file: thesis.aux
The style file: bstutf8.bst
Database file #1: ref/refs.bib
-- BUPTThesis.bst version 1.0 Beta 1 (2009/05/31) by Yu Zhang.
-- http://code.google.com/p/buptthesis/
-- See the "userguide.pdf" manual for usage information.
Warning--there's neither address nor school in RN223
ptr=1, stack=
Complete numerical solution of electron-hydrogen collisions~[D]
---the literal stack isn't empty for entry RN223
while executing---line 5059 of file bstutf8.bst
Warning--there's neither address nor school in RN1043
ptr=1, stack=
正电子与基态及激发态氦原子散射的理论研究~[D]
---the literal stack isn't empty for entry RN1043
while executing---line 5059 of file bstutf8.bst
Warning--there's a publisher but no address in RN1003
@phdthesis
的字段缺失必要参数 school
使用 tabularray
宏包:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
colspec = {cccl},
column{1} = {colsep=2pt},
column{3, 4} = {mode=math},
hline{2} = {1}{solid},
hline{5},
vline{1} = {2-4}{solid}
}
& 1. & p \to q & \mathtt{A} \\
& 2. & p \land r & \mathtt{A} \\
& 3. & p & E_{\land}, 2 \\
& 4. & q & E_{\to}, 1, 3 \\
& 5. & (p\land r) \to q & I_{\to}
\end{tblr}
\end{document}
这里只给出 mwe.tex
的内容, 可以自行替换
\documentclass[a4paper]{article}
\usepackage{ctex}
\usepackage{amsmath}
\usepackage{float}
\usepackage[figuresright]{rotating}
\usepackage[margin=1in]{geometry}
\usepackage[justification=centering]{caption}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{plotmarks}
\usetikzlibrary{arrows.meta}
\usepgfplotslibrary{patchplots}
\usepackage{grffile}
\usepackage{subfigure}
\usepackage{graphicx}
\usepackage{scalefnt}
\begin{document}
\section{时间演变趋势}
\begin{figure}[H]
\centering
\begin{minipage}{4.5cm}
\centering
\resizebox{!}{\textwidth}{
\input{myfile.tex}
}
\caption{全样本}
\end{minipage}\hspace{2.5em}
\begin{minipage}{4.5cm}
\centering
\resizebox{!}{\textwidth}{
\input{s_east.tex}
}
\caption{东部地区}
\end{minipage} \hspace{2.5em}
\begin{minipage}{4.5cm}
\centering
\resizebox{!}{\textwidth}{
\input{s_middle.tex}
}
\caption{中部地区}
\end{minipage}\hspace{2.5em}
\end{figure}
\end{document}
其中去掉了 \subfigure
命令, 在 texdoc subfigure
中给了子图的格式, 如果标题不用子图样式的话, 没必要用 \subfigure
命令
并且把插入的代码块用 \resizebox
重置了大小.
在 .cls
文件中不需要 \makeatletter
和 makeatother`
把这 4 个东西注释了就ok了
我整理了一个最小工作示例
\begin{filecontents}{test.cls}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{test}
\LoadClassWithOptions{article}
\makeatother
\newcommand{\test}{\makeatletter \@title \makeatother}
\end{filecontents}
\documentclass{test}
\title{test}
\begin{document}
\test
\end{document}
原因为 \makeatletter
在 \newcommand
环境中无效,参见问题:https://tex.stackexchange.com/questions/201348/why-doesnt-makeatletter-work-inside-newcommand
latex书写过程中尽量避免使用到主 tex
文件的父目录, 这可能导致 latex 没有权限使用这些目录
我这里进行了测试,并没有复现问题,我的系统是 ArchLinux,我进行了文件的一些修改
这是我的系统信息
以及相关的 tex 版本:
XeTeX 3.141592653-2.6-0.999993
% main.tex
\documentclass{book}
\usepackage[UTF8]{ctex}
\usepackage{graphicx}
\graphicspath{{./img/}}
\begin{document}
\chapter{章}
\includegraphics[width=\textwidth]{y.pdf} %fail
%\includegraphics[width=\textwidth]{y.png} %works
\end{document}
以及我编译前的目录树
➜ tree
.
├── img
│ └── y.pdf
├── main.tex
└── test
然后我使用的编译命令为
xelatex -output-directory=test main
以及编译后的目录树
➜ tree
.
├── img
│ └── y.pdf
├── main.tex
└── test
├── main.aux
├── main.log
└── main.pdf
编译的结果:
这次编译的 log: https://pastebin.ubuntu.com/p/XYhTcVzhyt/
如果可以, 提问的时候应该贴一下报错是什么
猜一下原因, 你安装 texlive 后没有更新宏包, 需要在终端 tlmgr update -self -all
更新全部宏包, 或者在 ctex
宏包前增加选项 [fontset=windows]
, 未更新的二进制文件不能识别系统, 会导致使用 [fontset=fandol]
, 而 Fandol 字库没有 \lishu
的命令, 顺便, 把 \usepackage[T1]{fontenc}
删了, titletoc
宏包包含在 titlesec
中, 可以不重复加载.
请提供完整的示例代码
把所有的代码用代码块包起来
\documentclass{book}
\usepackage[heading=true]{ctex} % 加 heading=true 才可以调整标题格式
%正文区(文稿区)
%======设置标题的格式======
\ctexset{ % 不要用空行
section = {
% format+ = \zihao{-4} \heiti \raggedright,
name = { ,、},
number = \chinese{section},
beforeskip = 1.0ex plus 0.2ex minus .2ex,
afterskip = 1.0ex plus 0.2ex minus .2ex,
aftername = \hspace{0pt}
},
subsection = {
format+ = \zihao{5} \heiti \raggedright,
% name={\thesubsection、},
name = { ,、},
number = \arabic{subsection}, % 这里缺个逗号
beforeskip = 1.0ex plus 0.2ex minus .2ex,
afterskip = 1.0ex plus 0.2ex minus .2ex,
aftername = \hspace{0pt}
}
}
\begin{document}
\tableofcontents
\chapter{绪论}
\section{研究的目的和意义}
\section{国内外研究现状}
\subsection{国外研究现状}
\subsection{国内研究现状}
\section{研究内容}
\section{研究方法与技术路线}
\subsection{研究内容}
\subsection{技术路线}
\chapter{实验与结果分析}
\section{引言}
\section{实验方法}
\section{实验结果}
\subsection{数据}
\subsection{图表}
\subsubsection{实验条件}
\subsubsection{实验过程}
\subsection{结果分析}
\section{结论}
\section{致谢}
\end{document}
关于 heading=true
的说明在 texdoc ctex
对于中文的标题格式建议用 ctex
宏集提供的接口……
\documentclass{ctexart}
\ctexset{
appendix = {
name = {附录}
},
section = {
format = {\bfseries\zihao{4}\heiti\centering},
number = {\bfseries\arabic{section}.},
aftername = {\hspace{1em}}
},
subsection = {
format = {\bfseries\zihao{-4}},
number = {\bfseries\arabic{section}.\bfseries\arabic{subsection}},
aftername = {\hspace{1em}}
},
subsubsection = {
format = {\bfseries\zihao{-4}},
number = {\bfseries\arabic{section}.\bfseries\arabic{subsection}.\bfseries\arabic{subsubsection}},
aftername = {\hspace{1em}}
},
}
\begin{document}
\section{测试}
\subsection{测试}
\subsubsection{测试}
\appendix
\section{附录测试}
\end{document}
问 编译通过了但是提示出错,错在哪里?