乙醇
乙醇
这家伙很懒,什么也没写!

注册于 4年前

回答
105
文章
0
关注者
7

把你的问题精简为mwe, 直接把所有的代码都贴出来而不自己先去排查问题也是对回答者的不尊重
image.png

使用 xelatex 编译你的代码并没有出现问题:

image.png

请尝试更新发行版和宏包

请更详细地描述你的问题, 最好可以给出mwe: 你想干什么, 你用了什么代码完成了什么, 有什么疑问
image.png

参考这个 issue: https://github.com/CTeX-org/ctex-kit/issues/315

如果使用 \ziju{2} 来增加间距的话可以发现问题所在
image.png
可以看到 \textcolor 附近的间距没有正常调整.

可以按照 issue 中提到的, 使用 lualatex 编译:
image.png

我用了 \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}

image.png

运行 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
image.png

使用 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}

image.png

这里只给出 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}

image.png

其中去掉了 \subfigure 命令, 在 texdoc subfigure 中给了子图的格式, 如果标题不用子图样式的话, 没必要用 \subfigure 命令
image.png
并且把插入的代码块用 \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}

image.png

发布
问题