问题

当使用 hyperref 宏包时,在标题中使用 \bm 为数学符号加粗会出现错误

\documentclass{article}
\usepackage{bm}
\usepackage{hyperref} \begin{document} \section{$\bm{x^2}$} \end{document}

报错信息为

ERROR: TeX capacity exceeded, sorry [input stack size=5000].

原因是,使用 hyperref 创建的书签信息中不能含有特殊格式。

解决方法

有如下的几种解决方法

  1. 使用标题的可选项
    \section[$x^2$]{$\bm{x^2}$}
  1. 使用 hyperref\texorpdfstring 命令
    \section{\texorpdfstring{$\bm{x^2}$}{$x^2$}}
  1. 使用 hyperref\pdfstringdefDisableCommands 命令抑制命令作用在PDF字符串上
    \documentclass{article}
\usepackage{bm}
\usepackage{hyperref}
\pdfstringdefDisableCommands{%
\renewcommand*{\bm}[1]{#1}%
% any other necessary redefinitions
} \begin{document}
\section{$\bm{x^2}$} \end{document}

最后一种方法使用起来比较方便,因为不需要改变正文。


参考信息

LaTeX 标题中使用 \bm 命令与 hyperref 的冲突的更多相关文章

  1. HTML5中的execCommand命令

    HTML5中的execCommand命令 在html5中,可以通过execCommand方法来运行一条命令,每一条命令都将对用户通过鼠标所选取的内容执行一些操作. 1. execCommand方法 浏 ...

  2. WPF MVVM模式中,通过命令实现窗体拖动、跳转以及显隐控制

    原文:WPF MVVM模式中,通过命令实现窗体拖动.跳转以及显隐控制 在WPF中使用MVVM模式,可以让我们的程序实现界面与功能的分离,方便开发,易于维护.但是,很多初学者会在使用MVVM的过程中遇到 ...

  3. Linux中通过grep命令检索文件内容和指定内容前后几行

    原文链接: https://www.linuxidc.com/Linux/2017-11/148390.htm Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命 ...

  4. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  5. 在脚本中使用sudo命令,将密码保存在脚本中,不需要手动输入密码

    在脚本中使用sudo命令,将密码保存在脚本中,不需要手动输入密码. #!/bin/bash echo 'xxx密码xxx'|sudo -S service mysql start echo 'xxx密 ...

  6. 在程序中执行shell命令

    在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识. 用 ...

  7. 常见linux命令释义(第九天)—— Bash Shell 的操作环境Shell 中的管道命令一些管道命令

    最近好懒好懒.连写文章都写不好了.于是只能写读一点书,记一点读书笔记了.太懒了,没办法.慢慢恢复自己的状态吧. 管道命令仅会处理strandard output 的内容,对于strandard err ...

  8. Linux中的历史命令

    Linux中的历史命令一般保存在用户    /root/.bash_history history 选项 历史命令保存文件夹 选项     -c:清空历史命令     -w :把缓存中的历史命令写入历 ...

  9. Google Chrome浏览器中如何使用命令

    Google Chrome浏览器中如何使用命令 | 浏览:2974 | 更新:2014-02-23 23:12 | 标签:chrome 1 2 3 分步阅读 Google Chrome浏览器有很多的特 ...

随机推荐

  1. Oracle 常用符号CHR

    select  chr(92)||chr(102) from dual; \f select  chr(92)||chr(110) from dual; \n select  chr(92)||chr ...

  2. Android 线程优先级

    对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程 ...

  3. Android 动画-alpha(渐变透明度动画效果)

    今天苦于思索应用如何美观,首先从载入页面的第一眼开始,Android动画分为四种:alpha(渐变透明度),scale(渐变尺寸伸缩),translate(画面转换位置移动),rotate(画面转移旋 ...

  4. 设置oracle11g空表exp导出

    1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是 ...

  5. ifconfig命令

    许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...

  6. FZU2232 炉石传说 最大匹配

    思路:正好是二分图,自己敌人,符合条件的随从二人组建边,最大匹配为n是符合要求 #include <cstdio> #include <cstring> #include &l ...

  7. 《C程序设计语言现代方法》第5章 编程题

    1 编写一个程序,确定一个数的位数. #include <stdio.h> int main() { ; ) { cnt++; } printf("%d\n", cnt ...

  8. POJ3461–Oulipo(KMP)

    题目大意 给定一个文本串和模式串,求模式串在文本串中出现的次数 题解 正宗KMP 代码: #include<iostream> #include<cstring> #inclu ...

  9. Installing your app on your Windows RT device

    Alright… so my app is almost finished and I want to install it for real on my Surface tablet. How do ...

  10. 利用stdin stdout stderr及POSIX-linux机制重定向写日志

    由open返回的文件描述符一定是该进程尚未使用的最小描述符.由于程序启动时自动打开文件描述符0.1.2,因此第一次调用open打开文件通常会返回描述符3,再调用open就会返回4.可以利用这一点在标准 ...