csquotes
我在文档中使用了带有引号短语的标题的包。标题应该居中,因此它嵌套在center
环境中。LaTeX(更准确地说是 XeLaTeX)将引号作为常规字符处理,并根据它居中标题。但良好的排版原则声称标点符号应该在标题之外,并且不影响标题居中。有什么解决方案吗?
上图的 MWE:
\documentclass[a4paper,12pt]{article}
\usepackage{csquotes}
\begin{document}
\begin{titlepage}
\begin{center}
{ \Large \enquote{Some long title line \\ Some long title line} }
\end{center}
\end{titlepage}
\end{document}
答案1
该包csquotes
提供了宏\textquotedblright
和\textquotedblleft
;分别将它们包含在\phantom
第一行末尾和第二行开头的语句中。
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc} % csquotes works better with T1 encoding...
\usepackage{csquotes}
\begin{document}
\begin{titlepage}
\begin{center}
\Large \enquote{Some long title line \phantom{\textquotedblright} \\
\phantom{\textquotedblleft}Some long title line}
\end{center}
\end{titlepage}
\end{document}
答案2
以下示例测量引号字符的宽度(通过空的\enquote{}
)。然后它在标题的左侧和右侧放置一个负空格或引号字符:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[italian]{babel}
\usepackage{csquotes}
\newcommand*{\negquote}{%
\begingroup
\settowidth{\dimen0 }{\enquote{}}%
\leavevmode
\kern-.5\dimen0 %
\endgroup
}
\begin{document}
\centering
\negquote
\enquote{Some long title line\\
Some long title line}\negquote
\end{document}
该解决方案并不完美:
- 对于较长的行,引号字符可能会移出文本区域。
- 不考虑带有后续/前一个文本的引号字符的字距调整。