Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

脚注之间的间距与脚注样式 #50

Closed
Ranqumn opened this issue Jul 29, 2019 · 10 comments
Closed

脚注之间的间距与脚注样式 #50

Ranqumn opened this issue Jul 29, 2019 · 10 comments

Comments

@Ranqumn
Copy link

Ranqumn commented Jul 29, 2019

问题 1:修正脚注与正文之间的间距

有关参考:

脚注与正文文字之间的空格间距看上去不协调。

英文的脚注看起来很舒服,然而中文的脚注看上去与标点之间的间距就是有点过大了。

样例

\documentclass{ctexart}

\begin{document}


正文\footnote{}。正文。

Text\footnote{}. Text.

正文\footnote{}正文。

正文\footnote{} 正文。

Text\footnote{} Text.

正文。\footnote{}正文。

正文。\footnote{} 正文。

Text.\footnote{} Text.

\end{document}

issue-footnote-syle-1

不过,这依然与不同的加空格习惯有关系。

正文。\footnote{}正文。

正文。\footnote{} 正文。

这两者最后距离也是不一样的。

@muzimuzhi
Copy link
Collaborator

这里的交流是围绕「问和答」的,发帖时请清晰描述你的问题。这则帖子,看起来更像是一份个人尝试的记录,看不到「问题」。

@Ranqumn
Copy link
Author

Ranqumn commented Jul 31, 2019

@muzimuzhi

呃,我改改。


呃,由于之前没有找到很好的答案,所以来问了……然后昨天花了很久,把它魔改完成了……所以,原本可能是疑问帖,现在可能是个人尝试帖子。

@Ranqumn
Copy link
Author

Ranqumn commented Jul 31, 2019

问题 2:自定义脚注样式的实现方法?

前阵子找的时候,还没有……

不过,呃,现在好像已经有了一种实现是带圈数字的。

@muzimuzhi 呃,我可以问一下为什么要下调 \lower .3ex?是为了与英文适配吗?那么如果脚注里面有中文不是会有点奇怪……

@Ranqumn
Copy link
Author

Ranqumn commented Jul 31, 2019

问题 3(一个大概不算是脚注问题的兼容问题):强制调整 Fandol 字体基线的兼容性问题

该问题会分拆到另一个 issue 中。

这段由 @RuixiZhang42 给出的代码可以强制调整 Fandol 字体的基线

\usepackage{etoolbox}

\makeatletter
\newcommand*\original@CJKsymbol{}
\newcommand*\original@CJKpunctsymbol{}
\let\original@CJKsymbol\CJKsymbol
\let\original@CJKpunctsymbol\CJKpunctsymbol
\newcommand*\raise@Fandol@CJK[1]{\raise0.08\ccwd\hbox{#1}}
\appto\itshape{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\kaishu{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\fangsong{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\upshape{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
\makeatother

不过,如果在这里面有脚注(因为这种脚注的括号是中文的)的话,脚注这个标注本身也会被上调基线,脚注内的中文也会被整体上调基线。

示例:

\documentclass{ctexart}

\usepackage{etoolbox}

\makeatletter
\newcommand*\original@CJKsymbol{}
\newcommand*\original@CJKpunctsymbol{}
\let\original@CJKsymbol\CJKsymbol
\let\original@CJKpunctsymbol\CJKpunctsymbol
\newcommand*\raise@Fandol@CJK[1]{\raise0.08\ccwd\hbox{#1}}
\appto\itshape{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\kaishu{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\fangsong{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\upshape{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
\makeatother



\setCJKmainfont{Noto Serif CJK SC}[
  BoldFont=Noto Serif CJK SC Bold,
  ItalicFont=FandolKai-Regular,
  Script=CJK Ideographic,Language=Chinese Simplified
]

\newfontfamily\footnotefont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\newCJKfontfamily[footnotecjk]\footnotecjkfont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\renewcommand{\thefootnote}{{\footnotecjkfont\footnotefont\arabic{footnote}〕}}

\begin{document}

正文。\footnote{正文注释}正文。

{\kaishu  引文。\footnote{引文注释}引文引文。}

\end{document}

issue-footnote-fandol-1

issue-footnote-fandol-2

最小工作示例:

\documentclass{ctexart}

\newCJKfontfamily[notocjk]\notocjk{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\usepackage{etoolbox}

\makeatletter
\newcommand*\original@CJKsymbol{}
\newcommand*\original@CJKpunctsymbol{}
\let\original@CJKsymbol\CJKsymbol
\let\original@CJKpunctsymbol\CJKpunctsymbol
\newcommand*\raise@Fandol@CJK[1]{\raise0.08\ccwd\hbox{#1}}
\appto\kaishu{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\makeatother

\begin{document}

{\kaishu 引文。{\notocjk 文字文字文字}引文。引文。引文。引文。引文。}

{\kaishu 引文。}{\notocjk 文字文字文字}{\kaishu 引文。引文。引文。引文。引文。}

\end{document}

issue-footnote-fandol-3

@Ranqumn
Copy link
Author

Ranqumn commented Jul 31, 2019

问题 1 的可行方案?

根据 如何固定 latex 脚注上标的字号,压缩标点和脚注上标的距离? 这个回答的提供的思路。

TeX 没有「向回看」的功能。判断脚注前面的内容是否为标点,就需要前面内容的配合。比如要求 CJK 包的 \CJKpunctsymbol 等宏设置一些标记,或者修改内部定义来使用 \lastkern 技巧。这些技巧都比较难做到完整,而且也很可能与其他标点压缩之类机制冲突。比较实际的做法,可以定义两套 \footnote 命令,一套专门用来调整间距。最后通过查找替换统一将句号、逗号标点后的 \footnote 命令换成调整间距的版本,这样稳妥一些,也容易操作。

呃,专门调整间距……

那么就这样喽:

正文。\hspace{-0.5em}\footnote{}正文。

然后创建个标记,统一修改方便点。

\newcommand{\footnotespacefix}{\hspace{-0.5em}}
正文。\footnotespacefix\footnote{}正文。

然后,上正则表达式。

把常见的右标点找出来。

查找:

([])\\footnote\{

替换:

$1\\footnotespacefix\\footnote{

还有,这个脚注与后面的距离无论是汉字、标点还是英文,都距离过大了……

魔改一下

\newfontfamily\footnotefont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\newCJKfontfamily[footnotecjk]\footnotecjkfont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\renewcommand{\thefootnote}{{\footnotecjkfont\footnotefont\arabic{footnote}〕\hspace{-0.5em}}}

好像就显示正常了??

这样这个不优雅的处理就结束了……

嗯,这样结束了?

呃……仅作抛砖。

@Ranqumn
Copy link
Author

Ranqumn commented Jul 31, 2019

问题 3 的解决方法?

可以想到的一种临时方法是,把 \footnotecjkfont 加到修正基线的命令里面去。

\makeatletter
\newcommand*\original@CJKsymbol{}
\newcommand*\original@CJKpunctsymbol{}
\let\original@CJKsymbol\CJKsymbol
\let\original@CJKpunctsymbol\CJKpunctsymbol
\newcommand*\raise@Fandol@CJK[1]{\raise0.08\ccwd\hbox{#1}}
\appto\itshape{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\kaishu{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\fangsong{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\upshape{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
\appto\footnotecjkfont{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
\makeatother

不过,也有第二种临时方法。由于只是需要暂时解决脚注的问题,而这个问题来源自 xeCJK,所以在脚注中把它关掉就没事了……

所以,代码变成这样:

\newfontfamily\footnotefont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\renewcommand{\thefootnote}{{\footnotefont\makexeCJKinactive\arabic{footnote}〕\hspace{-0.5em}\makexeCJKactive}}

这样的话,就会有空格问题。

前面多出了空格,那就把它就减回去

\renewcommand{\thefootnote}{{\footnotefont\makexeCJKinactive\hspace{-0.5em}〔\arabic{footnote}〕\hspace{-0.5em}\makexeCJKactive}}

然后再修一遍 \footnotespacefix

呃?这样看上去就好了?

甚至前面的汉字与脚注之间的距离不那么贴着了……


好吧,上面这种方法还是有问题的,因为脚注里的文字也被提升基线了……

所以……

还是得临时加进去。

\usepackage{etoolbox}

\makeatletter
\newcommand*\original@CJKsymbol{}
\newcommand*\original@CJKpunctsymbol{}
\let\original@CJKsymbol\CJKsymbol
\let\original@CJKpunctsymbol\CJKpunctsymbol
\newcommand*\raise@Fandol@CJK[1]{\raise0.08\ccwd\hbox{#1}}
\appto\itshape{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\kaishu{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\fangsong{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\upshape{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
% 修正包裹在 Fandol 字体中的脚注 另见 latex.ltx 6403 行
\appto\reset@font{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
\makeatother

@Ranqumn
Copy link
Author

Ranqumn commented Jul 31, 2019

可工作示例

本人在生产环境(排书)中所使用的(并不是最小)可工作示例。

(由于有一大堆相关环境配置,所以不是最小)

\documentclass{ctexart}

\usepackage{xpatch}

\defaultfontfeatures{Ligatures=TeX}

\XeTeXgenerateactualtext=1 % 让复制文本正确

% 将 U+2014 破折号合字 暴力修正
% via: https://github.com/CTeX-org/ctex-kit/issues/382#issuecomment-430873626

\ExplSyntaxOn
\xeCJK_new_class:n { PoZheHao }
\__xeCJK_save_CJK_class:n { PoZheHao }
\xeCJK_declare_char_class:nn { PoZheHao } { "2014 }
\seq_map_inline:Nn \g__xeCJK_class_seq
  {
    \str_if_eq:nnF {#1} { PoZheHao }
      {
        \xeCJK_copy_inter_class_toks:nnnn { PoZheHao } {#1} { FullRight } {#1}
        \xeCJK_copy_inter_class_toks:nnnn {#1} { PoZheHao } {#1} { FullRight }
      }
  }

% via: https://github.com/CTeX-org/ctex-kit/issues/382#issuecomment-491951413

\prg_set_conditional:Npnn \__xeCJK_punct_if_right:N #1 { p , T , F , TF }
  {
    \if_int_compare:w \xeCJK_token_value_class:N #1 =
                      \xeCJK_class_num:n { FullRight }
      \prg_return_true:
    \else:
      \if_int_compare:w \xeCJK_token_value_class:N #1 =
                        \xeCJK_class_num:n { PoZheHao }
        \prg_return_true:
      \else:
        \prg_return_false:
      \fi:
    \fi:
  }
\ExplSyntaxOff

% 正文字体配置

\setmainfont{lmroman10-regular.otf}[
  ItalicFont=lmroman10-italic.otf,
  BoldFont=lmroman10-bold.otf,
  BoldItalicFont=lmroman10-bolditalic.otf,
  SmallCapsFont=lmromancaps10-regular.otf,
  SlantedFont=lmromanslant10-regular.otf,
  Scale=1.1
]

\setsansfont{lmsans10-regular.otf}[
  ItalicFont=lmsans10-oblique.otf,
  BoldFont=lmsans10-bold.otf,
  BoldItalicFont=lmsans10-boldoblique.otf,
  Scale=1.1
]

\setmonofont{lmmono10-regular.otf}[
  ItalicFont=lmmono10-italic.otf,
  SmallCapsFont=lmmonocaps10-regular.otf,
  Scale=1.1
]

\setCJKmainfont{Noto Serif CJK SC}[
  BoldFont=Noto Serif CJK SC Bold,
  ItalicFont=FandolKai-Regular,
  Script=CJK Ideographic,Language=Chinese Simplified
]

\setCJKsansfont{Noto Sans CJK SC DemiLight}[
  BoldFont=Noto Sans CJK SC Medium,
  Script=CJK Ideographic,Language=Chinese Simplified
]

% 暴力修正 Fandol 基线
% via: https://github.com/clerkma/ptex-ng-dist/issues/5

\usepackage{etoolbox}

\makeatletter
\newcommand*\original@CJKsymbol{}
\newcommand*\original@CJKpunctsymbol{}
\let\original@CJKsymbol\CJKsymbol
\let\original@CJKpunctsymbol\CJKpunctsymbol
\newcommand*\raise@Fandol@CJK[1]{\raise0.08\ccwd\hbox{#1}}
\appto\itshape{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\kaishu{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\fangsong{%
  \let\CJKsymbol\raise@Fandol@CJK
  \let\CJKpunctsymbol\raise@Fandol@CJK
}
\appto\upshape{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
% 修正包裹在 Fandol 字体中的脚注 另见 latex.ltx 6403 行
\appto\reset@font{%
  \let\CJKsymbol\original@CJKsymbol
  \let\CJKpunctsymbol\original@CJKpunctsymbol
}
\makeatother

% 脚注样式调整

\newfontfamily\footnotefont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\newcommand{\footnotespacefix}{\hspace{-0.5\ccwd}}

\usepackage{scrextend} % 提供 \deffootnote

% 样式:默认

% \deffootnote[0em]{0em}{2\ccwd}{{\footnotesize\thefootnotemark\hspace{\ccwd}}}

% 样式:[1]

% \renewcommand{\thefootnote}{{\footnotefont[\arabic{footnote}]}}
% \deffootnote[0em]{0em}{2\ccwd}{{\footnotesize\thefootnotemark\hspace{\ccwd}}}

% 样式:〔1〕

\renewcommand{\thefootnote}{{\footnotefont\makexeCJKinactive\hspace{-0.5\ccwd}〔\arabic{footnote}〕\hspace{-0.5\ccwd}\makexeCJKactive}}
\deffootnote[0em]{0em}{2\ccwd}{{\footnotesize\thefootnotemark\hspace{\ccwd}}}

% 样式:[1]

% \renewcommand{\thefootnote}{{\footnotefont\makexeCJKinactive\hspace{-0.5\ccwd}[\arabic{footnote}]\hspace{-0.5\ccwd}\makexeCJKactive}}
% \deffootnote[0em]{0em}{2\ccwd}{{\footnotesize\thefootnotemark\hspace{\ccwd}}}

% 样式:带圈数字
% via: https://stone-zeng.github.io/2019-02-09-circled-numbers

% \usepackage{xunicode-addon}

% % XeLaTeX 下需要把全体带圈数字都设置成 Default 类
% \xeCJKDeclareCharClass{Default}{"24EA, "2460->"2473, "3251->"32BF}

% % 放置钩子,只让带圈字符才需更换字体

% \AtBeginUTFCommand[\textcircled]{\begingroup\footnotefont}
% \AtEndUTFCommand[\textcircled]{\endgroup}

% \renewcommand{\thefootnote}{\textcircled{\arabic{footnote}}}
% \deffootnote[0em]{0em}{2\ccwd}{\footnotesize\thefootnotemark\hspace{\ccwd}} % 需要留空


% 调整脚注的分割线 via:https://github.com/muzimuzhi/latex-examples/blob/master/footnote-chinese-style.tex

\xpatchcmd\footnoterule
  {.4\columnwidth}
  {1in}
  {}{\fail}

\newcommand{\chinesetexttest}{
  正文\footnote{注释注释。text text \par 注释注释。}正文

  正文,\footnotespacefix\footnote{}正文
  
  正文\footnote{},正文
  
  正文、\footnotespacefix\footnote{}正文
  
  正文\footnote{}、正文
  
  正文。\footnotespacefix\footnote{}正文
  
  正文\footnote{}。正文
  
  正文\footnote{}!正文
  
  正文!\footnotespacefix\footnote{}正文
  
  正文\footnote{}?正文
  
  正文?\footnotespacefix\footnote{}正文
  
  「正文」\footnote{}。
  
  「正文」\footnotespacefix\footnote{}。
  
  「正文\footnote{}」。

  ‘正文’\footnote{}。

  ‘正文’\footnotespacefix\footnote{}。
  
  “正文”\footnote{}。
  
  “正文”\footnotespacefix\footnote{}。
  
  “正文\footnote{}”。
  
  (正文)\footnote{}正文
  
  (正文)\footnotespacefix\footnote{}正文
  
  《正文》\footnote{}正文
  
  《正文》\footnotespacefix\footnote{}正文
  
  《正文\footnote{}》正文
  
  正文\footnote{}……正文
  
  正文……\footnote{}正文
  
  正文——\footnote{}正文
  
  正文\footnote{}——正文
  
  正文~~\footnote{}正文
}

\newcommand{\englishtexttest}{
  Text\footnote{} text.

  Text\footnote{}.
  
  Text.\footnote{} Text.
  
  Text,\footnote{} text.
  
  Text\footnote{}, text.
  
  Text\footnote{}! Text.
  
  Text!\footnote{} Text.
  
  Text\footnote{}? Text.
  
  Text?\footnote{} Text.

  ``Text''\footnote{} text.

  `Text'\footnote{} text.

  Text\dots\footnote{} text.

  Text\footnote{} text.
  
  Text---\footnote{}text.
  
  Text\footnote{}---text.

  Text\~{}\footnote{} text.
}

\begin{document}

\section{中文:思源宋体}

\subsection{Regular}

\chinesetexttest

\subsection{Bold}

{\bfseries

\chinesetexttest

}

\section{中文:思源黑体}

\subsection{DemiLight}

{\sffamily

\chinesetexttest

}

\subsection{Medium}

{\sffamily \bfseries

\chinesetexttest

}

\section{中文:Fandol Kai}

{\kaishu  

\chinesetexttest
}

\section{中文:Fandol Fang}

{\fangsong 

\chinesetexttest
}

\section{中文:Fandol Hei}

{\heiti

\chinesetexttest
}


\section{English: Latin Mondern Roman}

\subsection{Regular}

\englishtexttest

\subsection{Italic}

{\itshape

\englishtexttest

}

\subsection{Bold}

{\bfseries

\englishtexttest

}

\subsection{BoldItalic}

{\itshape \bfseries

\englishtexttest

}

\subsection{SmallCaps}

{\scshape

\englishtexttest

}

\subsection{Slanted}

{\slshape

\englishtexttest

}


\section{English: Latin Mondern Sans}

\subsection{Regular}

{\sffamily
\englishtexttest
}

\subsection{Italic}

{\sffamily \itshape
\englishtexttest
}

\subsection{BoldItalic}

{\sffamily \itshape \bfseries
\englishtexttest
}

\section{English: Latin Mondern Mono}

\subsection{Regular}

{\ttfamily
\englishtexttest
}

\subsection{Italic}

{\ttfamily \itshape
\englishtexttest
}

\subsection{SmallCaps}

{\ttfamily \scshape
\englishtexttest
}

\end{document}

呃……仅作抛砖。

@muzimuzhi
Copy link
Collaborator

muzimuzhi commented Jul 31, 2019

呃,我可以问一下为什么要下调 \lower .3ex?是为了与英文适配吗?那么如果脚注里面有中文不是会有点奇怪……
from #50 (comment)

具体数值可随意修改。


在贴非常长的例子时,可以考虑使用 html tag <summary>,参考 w3schools

@muzimuzhi
Copy link
Collaborator

一个小问题:

考虑到,我们希望「禁止出现在行首的标点 + 脚注」这个整体不出现在行首,#50 (comment) 里的问题 1 的可行方案中,需要禁止在 \hspace 前后换行。

@Ranqumn
Copy link
Author

Ranqumn commented Aug 2, 2019

@muzimuzhi 谢谢。


呃,这不是个小问题,这是个大问题……

测试的导言区代码
\documentclass{ctexart}

\usepackage[
textwidth=346.5bp, % 每行 33 个字
]{geometry}

\newfontfamily\footnotefont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\setCJKmainfont{Noto Serif CJK SC}[Script=CJK Ideographic,Language=Chinese Simplified]

\renewcommand{\thefootnote}{{\footnotefont\makexeCJKinactive\hspace{-0.5\ccwd}〔\arabic{footnote}〕\hspace{-0.5\ccwd}\makexeCJKactive}}

\newcommand{\footnotespacefix}{\hspace{-0.5\ccwd}}

\begin{document}

如果这个脚注前后只是汉字的话,效果是可以自动避头。

issue-footnote-style-4-1

然而如果有标点了……

正文正文正文正文正文正文正文正文正文正文正文正文正文正文。\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文。\footnotespacefix\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正。\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正。\footnotespacefix\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文。\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文。\footnotespacefix\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正。\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正。\footnotespacefix\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文。\footnote{}正文

issue-footnote-style-4-2

呃,这就很麻烦。

如果要修的话,可能要把整个脚注归类为 xeCJK 中的右标点或者类似这种奇怪的操作。

然而,我看不懂源码(xeCJK 宏包手册 5.7 节)……


如果临时补救的话,我可以想到的是把标点符号与脚注整体建个空箱 \mbox,然后强制断行。

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正。\footnote{}正文 % 此处 \footnotespacefix 不加

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文。\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文\mbox{。\footnotespacefix\footnote{}}\\正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文』」。\footnote{}正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文\mbox{』」。\footnotespacefix\footnote{}}\\正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文』」\footnote{}。正文

正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文\mbox{』」\footnotespacefix\footnote{}。}\\正文

issue-footnote-style-4-3

效果还可以,不过没有标点压缩了。

要自动实现的话,中途把 xeCJK 关掉这个操作,估计是不行了……

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants