我们使用了以下代码片段changepage
包裹:
\newcommand{\raggedouter}{%
\checkoddpage%
\ifoddpage%
\RaggedRight%
\else%
\RaggedLeft%
\fi%
}
提供一个\raggedouter
命令,受类启发tufte-latex
。请参见下图以演示双面书中的效果。
The Elements of Typographic Style
这并不罕见,Bringhurst甚至在德国的Mittelbach 和 Goosens 也做过这样的事情Der LaTeX-Begleiter
。我怀疑 这样的包中的函数ragged2e
。上面的代码片段是否涵盖了所有可能的情况?如果有好的解决方案,它是否是 的合适功能请求ragged2e
?
答案1
该命令\marginpar
已经检查了奇数页或偶数页,因此更简单的说法是
\newcommand{\mymarginpar}[1]{%
\marginpar[\raggedleft#1]{\raggedright#1}}
和 用来\mymarginpar
插入边注。当然,如果您认为它们更适合您,您也可以使用 提供的类似命令来更改\raggedright
和。\raggedleft
ragged2e
您可能也想加载mparhack
,可能。
答案2
你看过raggedrightboxes
套餐选项了吗ragged2e
?几乎实现了您所寻找的。:-)不幸的是,没有raggedboxes
选择,但这很容易解决,正如本示例的其余部分所解释的那样。
创建 的副本ragged2e.sty
(应位于 TEXHOME/texmf-dist/tex/latex/ms/ 下)并将新文件命名为(例如)newragged2e.sty
。包文件的相关行是 84 到 115(至少在我的包副本中)。首先,逐字复制并粘贴此范围的行到紧接在此范围之后。接下来,将第一行更改为
\newcommand*{\@raggedtwoe@raggedrightboxes@opt}{
到
\newcommand*{\@raggedtwoe@raggedboxes@opt}{
并改变最后一行,
\DeclareOption{raggedrightboxes}{\@raggedtwoe@raggedrightboxes@opt}
到
\DeclareOption{raggedboxes}{\@raggedtwoe@raggedboxes@opt}
三、更换指令
\RaggedRight
\@arrayparboxrestore
位于命令末尾
\raggedouter
\raggedouter
代码示例中定义了什么。(请注意,除了 OP 之外的读者:命令\checkoddpage
定义中使用的命令raggedouter
由包提供changepage
。)运行texhash
(如果需要)以使您的 TeX 系统知道新包myragged2e
。最后,myragged2e
使用raggedboxes
选项集加载包,您就可以开始工作了。:-)