从 \@title 中删除换行符

从 \@title 中删除换行符

我正在使用命令将文档标题写入文件\immediate\write\myfile{\@title},但如果标题包含换行符,则会失败\\

我怎样才能从中删除换行符(或者更好的是,~包括任何类型的格式)\@title?我尝试过类似的解决方案这个这个,但没有成功。

提前感谢任何线索。

答案1

更多的事情将会失败\immediate\write

我建议获取以下“即时”版本\protected@write

\documentclass{article}
\usepackage{xpatch}

\makeatletter
% get a copy of `\protected@write
\let\protected@iwrite\protected@write
% patch the copy to add \immediate
\xpatchcmd{\protected@iwrite}{\write}{\immediate\write}{}{}
\makeatother

\newwrite\titlefile


\begin{document}

\author{A. Uthor}
\title{A title with \'accent \\ and new~line}

\immediate\openout\titlefile=\jobname.title
\makeatletter
\protected@iwrite\titlefile{\def\\{--}\def~{ }}{\@title}
\immediate\closeout\titlefile
\makeatother

\maketitle

\end{document}

https://tex.stackexchange.com/a/110885/4427了解更多信息。

通过此设置,文件\jobname.title将包含

A title with \'accent -- and new line

相关内容