这是一个工作示例
\documentclass{book}
\usepackage[utf8]{inputenc}
\linewidth 150mm
\usepackage[spanish]{babel}
\usepackage{soul}
\sodef\secso{\scshape}{.125bp}{0.33em plus.1em minus.1em}{0.33em plus.1em minus.1em}
\let\secso\scshape
\usepackage{titlesec}
\newcommand{\secformat}[1]{\parbox[t]{\linewidth}{%
\Large\selectfont
\filright{{\secso{#1}}}}}
\titleformat{\section}[hang]{\filright}{}{}{\secformat}
\titlespacing*{\section}{0pt}{26pt}{13pt}
\def\thesection {\relax}
\setcounter{secnumdepth}{0}
\begin{document}
\pagestyle{plain}
\selectlanguage{spanish}
\noindent Test text.
\section{Observation}
\noindent Test text 2.
\section{Observación}
\noindent Test text 3.
\end{document}
效果很好。但是当我取出命令 \let\secso\scshape 以使用 \secso 的灵魂定义时,第二个标题不起作用。字母 ó 导致错误:
! \UTFviii@two@octets 的参数有一个额外的 }。 \par l.34 \section{Observación}
这个问题的最好/最简单的解决方案是什么?
非常感谢您的帮助。这是对我的免费 Motion Mountain Physics 书籍的西班牙语翻译,但这个问题阻碍了翻译。
PS 文件存储为UTF-8,使用的是soul最新版本。
答案1
作为达莱夫已发布,\usepackage{soulutf8}
解决问题。
答案2
您可以使用命令。\'o
针对ó
不同的口音也有类似的命令。