仅在 \chapter 内替换 \\ 命令

仅在 \chapter 内替换 \\ 命令

我正在将 .tex 文件转换为 .epub。我需要选择性地将 chapters 命令中的字符串“\\”替换为单个空格。

例子:

\chapter{My title \\ on two rows}

变成:

\chapter{My title on two rows}

是否可以?

答案1

是的,这是可能的!只需使用正则表达式即可。

例如,(\\chapter\{.*)\\\\然后$1调用该组。如果您有多个 \,请使用更多组。((\\chapter\{.*)\\\\(.*)\\\\然后$1$2等等。

答案2

这是一个基于LuaLaTeX的解决方案。如果您不想\\从的参数中删除项目\chapter,只需注释掉与lua相关的代码即可。

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{book}
\usepackage{luacode}

\begin{luacode}
function strike_double_backslash ( line )
   if string.find ( line, '\\chapter') then
      return ( string.gsub ( line, '\\\\', ' ') )
   end
end
luatexbase.add_to_callback ( "process_input_buffer", 
   strike_double_backslash, "strike_double_backslash" )
\end{luacode}

\begin{document}
\chapter{Title (no \\ longer!) on 2 rows}
\end{document}

相关内容