如何在LaTeX海报标题中换行?XeLaTeX编译报错求助
解决XeLaTeX海报标题换行编译报错的方案
首先得说,直接在标题里瞎用\\换行确实容易踩XeLaTeX的坑,尤其是海报类文档(比如beamerposter、tikzposter)对标题的排版逻辑和普通文档不一样。给你几个亲测有效的解决办法:
方法1:用\protect\\强制换行
很多时候报错是因为XeLaTeX会提前解析标题里的命令,把普通的\\换成\protect\\就能让换行命令“逃过”提前解析,比如:
\title{超长海报标题第一部分\protect\\ 标题第二部分}
这个方法适配绝大多数海报文档类,是最省心的方案。
方法2:用\parbox包裹标题做精准控制
如果第一种方法不管用,把整个标题塞进\parbox里,手动控制宽度和对齐方式,里面的\\就能正常生效:
\title{\parbox{\linewidth}{\centering 超长海报标题第一行\\ 标题第二行}}
\centering是为了保证标题居中,和海报的整体排版风格匹配,你也可以换成\raggedright或者\raggedleft调整对齐方向。
方法3:针对特定海报类的适配方案
- 如果你用的是
beamerposter:其实直接在\title里用\\就行,但要注意别在标题里嵌套太多复杂命令,要是还是报错,试试加上短标题参数(用来在页眉显示):\title[短标题]{超长海报标题第一行\\ 标题第二行} - 如果你用的是
tikzposter:它的标题默认支持\\换行,要是报错大概率是标题里有未转义的特殊字符(比如&、%),记得把这些字符改成\&、\%。
最后再排查下有没有其他低级错误:比如标题括号没配对、中文标点是不是全角(XeLaTeX支持全角,但有些宏包可能敏感),这些小问题也容易导致莫名其妙的编译报错哦。
内容的提问来源于stack exchange,提问作者Yingqiang Gao
相关产品推荐
相关产品推荐

