是否可以让 LaTeX 在每章末尾插入几行手写笔记?由于新章节总是从奇数页开始,因此它们应该出现在当前章节的最后一页偶数页(如何检查是否有足够的剩余空间?)。
我也对您的如何使其看起来漂亮或花哨的建议很感兴趣。
我目前的想法是:
MWE 用于生成示例:
\documentclass{scrbook}
\usepackage{blindtext}
\usepackage{pgffor, ifthen, xcolor}
\newcommand{\notes}[3][\empty]{%
\noindent \textbf{Notes}\vspace{10pt}\\
\foreach \n in {1,...,#2}{%
\ifthenelse{\equal{#1}{\empty}}
{\textcolor{gray}{\rule{#3}{0.2pt}}\\}
{\textcolor{gray}{\rule{#3}{0.2pt}\vspace{#1}}\\}
}
}
\begin{document}
\chapter{First chapter}
\blindtext[5]
\par\vfill
\notes[10pt]{5}{\textwidth}
\chapter{Second chapter}
\blindtext[8]
\par\vfill
\notes[10pt]{3}{\textwidth}
\end{document}
找到原始定义\notes
这里。
更新:线条将显示为灰色。
答案1
我在最后添加了一些代码来建议一种自动化方法。希望有人能告诉你更好的方法。
尽管如此,这还是一个可行的解决方案。请注意,我不能保证它完全没有错误。例如,我不完全确定这对于没有足够空间的章节会如何工作。
这个答案极大地启发了@MartinScharrer 的回答如何定义图形大小以使其占据页面的剩余部分?。我在他的回答中添加了一种计算页面剩余部分可以容纳多少行的方法。我还加载了该tikzpagenodes
包:这大大减少了需要编写的代码量。
\documentclass{book}
\usepackage[margin=0.5in]{geometry}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\usepackage{lipsum}
\pgfmathsetmacro\ruledheight{0.5cm}
\newcommand{\ruledNotesAtEndOfChapter}{%%
\ifdim\dimexpr\textheight-\pagetotal\relax>1.5in\relax\vspace{1in}%%
\noindent
\begin{tikzpicture}[overlay,remember picture,y=\ruledheight]
\path let
\p0 = (0,0),
\p1 = (current page text area.south)
in
\pgfextra
\pgfmathsetmacro\imgheight{\y0-\y1}%
\pgfmathparse{int(\imgheight/\ruledheight)}
\edef\mynumberoflines{\pgfmathresult}
\foreach \y in {1,2,...,\mynumberoflines}
{
\draw (0,0) ++ (0,-\y) -- (\linewidth,-\y);
}
\endpgfextra
node[anchor=south west] at (0,-1) {\large\textbf{Notes:}};
\end{tikzpicture}%%
\fi}
\makeatletter
\let\stdchapter\chapter
\renewcommand*\chapter{%
\ifnum\value{chapter}>0\relax
\ruledNotesAtEndOfChapter
\ifodd\value{page}\relax\clearpage\ruledNotesAtEndOfChapter\fi
\fi
\@ifstar{\starchapter}{\@dblarg\nostarchapter}}
\newcommand*\starchapter[1]{\stdchapter*{#1}}
\def\nostarchapter[#1]#2{\stdchapter[{#1}]{#2}}
\makeatother
\begin{document}
\chapter{hello}
\lipsum[1-9]
\chapter{middle}
\lipsum[1-15]
\chapter{ciao}
\lipsum[1-15]
\ruledNotesAtEndOfChapter
\end{document}
\ruledheight
您可以通过将宏重置为更合适的值来更改行距。请注意,我y
在此设置了比例tikzpicture
。我在使图片主体中的间距正常工作时遇到了问题。
更新页面剩余空间
我为宏添加了一个包装器\ruledNotesAtEndOfChapter
,即:
\ifdim\dimexpr\textheight-\pagetotal\relax>1.5in\relax\vspace{1in}%%
.
.
.
\fi
这会在最后一行文本后添加一点空间(按命令中的数量\vspace
)。但我还会测试页面上的剩余空间。如果空间不足,则不会绘制任何注释。
关于自动化更新
该命令的重新定义\chapter
抄袭自自定义 \chapter 定义
关于重新定义的几点\chapter
首先,请注意,我测试了章节号。这是为了防止注释在文档中过早出现。
其次,最后一章不会有任何注释;所以,您必须自动输入最后一章的注释。
第三,我已经重写了,\chapter
这样当章节在奇数页结束时,空白页也可以用于做笔记。