LaTeX 的使用 —— 参考文献

初级

LaTeX技巧22:LaTeX文档中的参考文献初级

\documentclass{article}
\usepackage{CJK}

\begin{document}
\begin{CJK}{UTF8}{gkai}
%我是在linux下用使用latex的, window用户将上一行改为\begin{CJK}{GBK}{kai}

引用一篇文章\cite{article1} \\
引用一本书\cite{book1}\\
等等

\renewcommand\refname{参考文献}

\begin{thebibliography}{99}
\bibitem{article1}文章标题 作者 期刊 年代 页码
\bibitem{book1}书标题 作者 出版社 年代
\end{thebibliography}

\end{CJK}
\end{document}

参考文献分为两部分,

  • (1)\cite{}
  • (2)\bibitem{}

注意要用 LaTeX 编译两次才能产生正常的引用标号!

其中\begin{thebibliography}{99}, 这个数字99 指的是参考文献的项目按照数字进行编号, 并且最多为99个, 如果你有更多的项目, 把这个数字改大一点就行了. 如何你想用对参考文献的项目进行其他类型的编号, 你可以将上面例子中的 thebibliography 环境替换成

\begin{thebibliography}{ABCDEFGHIJK}
\bibitem[authour1]{article1}文章标题 作者 期刊 年代 页码
\bibitem[authour2]{book1}书标题 作者 出版社 年代
\end{thebibliography}
  • 如果文档类(documentclass)是article之类的, 用

    \renewcommand\refname{参考文献}

  • 如果文档类是book之类的,

    \renewcommand\bibname{参考文献}

<think>好的,用户遇到了LaTeX中CJK宏包导致的段落结束错误,具体是“Paragraph ended before \CJK@XX was complete”。我需要先分析这个问题的常见原因,然后给出解决方案。 首先,回忆一下CJK宏包在处理中文时的机制。CJK需要将中文字符包裹在特定的环境中,比如\begin{CJK*}{UTF8}{...}和\end{CJK*}。如果用户在文档中漏掉了结束环境标签,或者标签的位置不正确,就会导致这个错误。例如,可能在某个环境(如figure、equation)内部没有正确闭合CJK环境,导致LaTeX在解析时提前结束了段落,从而报错。 接下来,检查用户提供的引用信息。引用[1]提到丢失了\end{figure}或\end{equation}等环境结束标签,这会导致段落提前结束。引用[2]提到使用XeLaTeX编译解决了问题,这可能是因为XeLaTeX原生支持Unicode,不需要依赖CJK宏包,从而避免了相关错误。因此,推荐用户使用XeLaTeX编译可能是一个有效的解决方案。 另外,引用[3]和[4]虽然涉及表格和字体颜色,但可能与当前问题关联不大。不过,用户提到的\usepackage{xcolor}可能提示用户文档中使用了其他宏包,可能存在宏包冲突的情况,需要检查。 可能的解决方案包括: 1. 确保所有CJK环境正确闭合,特别是在其他环境内部使用时。 2. 使用XeLaTeX代替PDFLaTeX,结合fontspec和xeCJK宏包,避免CJK宏包的兼容性问题。 3. 检查是否有特殊字符(如%、\、{})未正确转义,尤其是在CJK环境中。 4. 确保宏包加载顺序正确,例如CJK宏包应在其他依赖宏包之后加载。 5. 更新宏包到最新版本,或考虑迁移到更现代的解决方案如ctex宏包,它集成了CJK功能并简化了配置。 需要将这些步骤详细解释给用户,并提供具体的代码示例,比如如何设置XeLaTeX编译环境,如何替换CJK宏包为ctex等。同时,提醒用户注意检查文档中的特殊符号和环境闭合情况,避免遗漏。 最后,根据用户的问题,生成相关问题,帮助用户深入理解和解决类似问题。</think>### LaTeX CJK宏包段落结束错误解决方案 当使用CJK宏包处理中文时出现`Paragraph ended before \CJK@XX was complete`错误,通常由**未闭合的CJK环境**或**特殊符号未转义**导致。以下是具体解决方案: --- #### 1. 检查CJK环境闭合 CJK宏包要求中文内容必须包裹在`\begin{CJK*}{编码}{字体}`和`\end{CJK*}`中。若在`figure`/`equation`等环境内使用中文,需确保嵌套正确: ```latex \begin{figure} \begin{CJK*}{UTF8}{gbsn} % 字体设为宋体 \caption{中文标题} % 中文内容 \end{CJK*} \end{figure} ``` **错误示例**:若漏写`\end{CJK*}`,LaTeX会因段落提前结束报错[^1]。 --- #### 2. 使用XeLaTeX替代PDFLaTeX XeLaTeX原生支持Unicode,可避免CJK宏包的兼容性问题: - **步骤1**:改用`xelatex`编译命令。 - **步骤2**:在导言区加载`fontspec`和`xeCJK`宏包: ```latex \usepackage{fontspec} \usepackage{xeCJK} \setCJKmainfont{SimSun} % 设置中文字体 ``` 引用[2]表明用户通过切换至XeLaTeX成功解决了同类问题。 --- #### 3. 转义特殊字符 CJK环境中若出现`%`、`\`、`{}`等符号需转义: ```latex \begin{CJK*}{UTF8}{gbsn} 百分比需转义:50\% 反斜杠需转义:\textbackslash \end{CJK*} ``` --- #### 4. 检查宏包加载顺序 确保`CJK`宏包在依赖它的宏包**之后**加载。例如: ```latex \usepackage{graphicx} \usepackage{CJK} % 放在其他宏包之后 ``` --- #### 5. 升级至ctex宏包(推荐) `ctex`宏包封装了CJK功能,简化配置且兼容性更好: ```latex \documentclass{ctexart} % 直接支持中文 \begin{document} 无需额外环境包裹,直接输入中文 \end{document} ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值