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

Enhanced implementation of layout.tex.erb #617

Merged
merged 46 commits into from
May 7, 2016

Conversation

munepi
Copy link
Contributor

@munepi munepi commented Apr 29, 2016

  • review-pdfmaker は、(汎用なクラスファイルを使う前提で)(u)platex + dvipdfmx を実行するので、documentclassオプションに global で dvipdfmx を入れておいてよいと思います。
  • T1, TS1 エンコーディングを有効にしました。
  • colorパッケージからxcolorパッケージに変更しました。これにより、colortbl (upto array) が読み込まれ、tabular の出力を改善します。
  • hyperref パッケージ周りの設定を整理しました。
  • その他、「fixes to LaTeX2e」や「Latin Modern」などをコメントアウトで追加しました。これらは、標準で有効にしておいてもよいと思いますよ!

@kdmsnr kdmsnr added this to the 2.1.0 milestone Apr 29, 2016
@takahashim
Copy link
Collaborator

テストがコケてますが、手元で確認したところ、細かい差分が違っているくらいで概ね大丈夫そうでした。
xcolorパッケージってcolorパッケージの上位互換なんでしたっけ? 差し替えても大丈夫なんでしょうか(変わったことをすると違いがある、くらいであれば問題なさそうではあります)。

@takahashim
Copy link
Collaborator

あと最近の話題としては、「B5トンボ付きA4 PDFを出したい」という要望があるのですが、platexのtombowとgeometryパッケージの組み合わせが駄目そうでつらい、という話がありました。

https://twitter.com/golden_lucky/status/725860359987421185

@munepi
Copy link
Contributor Author

munepi commented Apr 29, 2016

@takahashim さん、たしかに rake のテストでこけますね、お手数をおかけしました。
xcolor パッケージは、color パッケージの上位互換で、xcolorのほうが柔軟に色指定が可能ですね。さらに table オプションを付けておくことで、表に関する色の表現も拡張できます。

@munepi
Copy link
Contributor Author

munepi commented Apr 29, 2016

@takahashim geometryパッケージは…、その程度で…、ほどほどにお付き合いするのがよいと個人的に思います。つまり、版面設計にgeometryパッケージを使うべきでないと考えます :-)

@takahashim
Copy link
Collaborator

@munepi geometryパッケージはlayout.tex.erbに入れるべきではなかった、ということですか?

geometryパッケージを使う以外で、レイアウトをうまく指定できる方法(トンボあり/なしに対応できる)ってあるんでしょうか(以前自力で\setlengthで頑張ってもうまくいかなかった記憶が…)。

@munepi
Copy link
Contributor Author

munepi commented Apr 30, 2016

@takahashim 結局のところ、標準的な日本語組版における基本版面の設計とその実装方法で決まるんですよ :D

geometryパッケージはlayout.tex.erbに入れるべきではなかった、ということですか?

んー、なんと言えばいいのでしょうか、geometry パッケージのオプション程度で折り合いがついて十分であれば、geometry パッケージを利用すればよいのではないでしょうか。
geometry パッケージは、紙面にかかわるパラメータをいろいろといじれように見えますが…、実際のところ、ざっくりとしか制御できないんです。それゆえ、少なくとも私はこれで版面設計を行いません。

現状の layout.tex.erb の標準設定から生成された下記のLaTeX文章をタイプセットとすると、以下の画像のとおり、基本版面がとしてすでに破綻しています。
(商業印刷向けでもない場合、「こんな細かいことを…」と思われても当然ですので、これを破綻と言わずに、現状のまま仕様として是とするのも一つです。)

2016-04-30 12 20 42

geometry パッケージを利用したままでこれを正すためには、必要な基本版面を計算した上で、geometry パッケージへの top, bottom, left, right オプションを適切に与える必要があると思います。

\documentclass[dvipdfmx,uplatex,oneside]{jsbook}
% %% fixes to LaTeX2e
% \usepackage{fix-cm}[2006/09/13 v1.1m]
% \usepackage{fixltx2e}[2006/09/13 v1.1m]

\usepackage[deluxe,uplatex]{otf}
\usepackage[T1]{fontenc}\usepackage{textcomp}%T1/TS1
% \usepackage{lmodern}
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx,table]{xcolor}%requires colortbl, array
\usepackage{framed}
\usepackage{wrapfig}
\definecolor{shadecolor}{gray}{0.9}
\definecolor{shadecolorb}{gray}{0.1}
\definecolor{reviewgreen}{rgb}{0,0.4,0}
\definecolor{reviewblue}{rgb}{0.2,0.2,0.4}
\definecolor{reviewred}{rgb}{0.7,0,0}
\definecolor{reviewdarkred}{rgb}{0.3,0,0}
\usepackage[utf8]{inputenc}
\usepackage{ascmac}
\usepackage{float}
\usepackage{alltt}
\usepackage{amsmath}

%% if you use @<u>{} (underline), use jumoline.sty
%%\usepackage{jumoline}

\newenvironment{shadedb}{%
  \def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolorb}}%
  \MakeFramed {\FrameRestore}}%
 {\endMakeFramed}

\usepackage[top=10zw,bottom=12zw,left=10zw,right=10zw]{geometry}
%\usepackage[top=5zw,bottom=5zw,left=1zw,right=1zw]{geometry}

\newcommand{\parasep}{\vspace*{3zh}}
\setlength{\footskip}{30pt}

%% Bookmarkの文字化け対策(日本語向け)
\usepackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true,colorlinks=true,%
     pdftitle={Re:VIEWサンプル書籍},%
     pdfauthor={Re:VIEW Writers}]{hyperref}
\usepackage[dvipdfmx]{pxjahyper}



\newenvironment{reviewimage}{%
  \begin{figure}[H]
    \begin{center}}{%
    \end{center}
  \end{figure}}

\newenvironment{reviewdummyimage}{%
  \begin{figure}[H]
    \begin{center}\begin{alltt}}{%
    \end{alltt}\end{center}
  \end{figure}}

\newenvironment{reviewemlist}{%
  \medskip\small\begin{shaded}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
  \end{alltt}\end{shaded}}

\newenvironment{reviewlist}{%
  \begin{shaded}\small\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
  \end{alltt}\end{shaded}\par\vspace*{0.5zw}}

\newenvironment{reviewcmd}{%
  \color{white}\medskip\small\begin{shadedb}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
  \end{alltt}\end{shadedb}}

\newenvironment{reviewbox}{%
  \medskip\small\begin{framed}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
  \end{alltt}\end{framed}}

\newenvironment{reviewtable}[1]{%
  \begin{center}\small\setlength{\baselineskip}{1.2zw}
    \begin{tabular}{#1}}{%
    \end{tabular}
  \end{center}}

\newenvironment{reviewcolumn}{%
     \begin{framed}
  }{%
     \end{framed}
  \vspace{2zw}}

\newcommand{\reviewcolumnhead}[2]{%
{\noindent\large ■コラム: #2}}

\newcommand{\reviewtablecaption}[1]{%
  \caption{#1}}

\newcommand{\reviewimgtablecaption}[1]{%
  \caption{#1}\vspace{-3mm}}

\newcommand{\reviewbackslash}[0]{%
  \textbackslash{}}

\newcommand{\reviewlistcaption}[1]{%
  \medskip{\small\noindent #1}\vspace*{-1.3zw}}

\newcommand{\reviewemlistcaption}[1]{%
  \medskip{\small\noindent #1}\vspace*{-1.3zw}}

\newcommand{\reviewcmdcaption}[1]{%
  \medskip{\small\noindent #1}\vspace*{-1.3zw}}

\newcommand{\reviewindepimagecaption}[1]{%
  \begin{center}#1\end{center}}

\newcommand{\reviewboxcaption}[1]{%
  \medskip{\small\noindent #1}\vspace*{-1.3zw}}

\newcommand{\reviewimageref}[2]{図 #1}
\newcommand{\reviewtableref}[2]{表 #1}
\newcommand{\reviewlistref}[1]{リスト #1}
\newcommand{\reviewbibref}[2]{#1}
\newcommand{\reviewcolumnref}[2]{コラム #1}
\newcommand{\reviewsecref}[2]{#1}

\newcommand{\reviewminicolumntitle}[1]{%
  {\large ■メモ: #1}\\}


\newenvironment{reviewminicolumn}{%
  \vspace{1.5zw}\begin{screen}}{%
  \end{screen}\vspace{2zw}}

\newcommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
\newcommand{\reviewami}[1]{\mask{#1}{A}}
\newcommand{\reviewem}[1]{\textbf{#1}}
\newcommand{\reviewstrong}[1]{\textbf{#1}}
\newcommand{\reviewunderline}{\Underline}

%% @<del> is ignored in LaTeX with default style
\newcommand{\reviewstrike}[1]{#1}

%%%% for ulem.sty:
%%\renewcommand{\reviewstrike}[1]{\sout{#1}}
%%
%%%% for jumoline.sty:
%%\renewcommand{\reviewstrike}[1]{\Middleline{#1}}

\newcommand{\reviewth}[1]{\textgt{#1}}
\newcommand{\reviewtitlefont}[0]{\usefont{T1}{phv}{b}{n}\gtfamily}
\newcommand{\reviewmainfont}[0]{}
\newcommand{\reviewcolophon}[0]{\clearpage}
\newcommand{\reviewappendix}[0]{\appendix}

\makeatletter
%% maxwidth is the original width if it is less than linewidth
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\def\maxwidth{%
  \ifdim\Gin@nat@width>\linewidth
    \linewidth
  \else
    \Gin@nat@width
  \fi
}
\makeatother

\usepackage{reviewmacro}

\begin{document}
\parindent0mm\relax

基本版面がベタ組の箱組になっていない。

現状、44文字ちょい程度の版面横幅になってしまっている。

□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□\par
□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□\par
□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□

段落において、各行44文字でjustifyされてしまっている。

□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■
□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■
□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■□□□□□□□□□■
\end{document}

geometryパッケージを使う以外で、レイアウトをうまく指定できる方法(トンボあり/なしに対応できる)ってあるんでしょうか(以前自力で\setlengthで頑張ってもうまくいかなかった記憶が…)。

はい、クラスファイルの設計と実装しだいで可能で、物理的なトンボのみならず、デジタルトンボである PDF mediaboxes なども制御できます。

とりあえず、「B5トンボ付きA4 PDFを出したい」という要望 https://twitter.com/golden_lucky/status/725860359987421185 への妥協案は、
B5で組まれたPDFファイルに対して、各頁にトンボをつけてA4へ画像と埋め込んだPDFファイルを作れば、期待値をみたせますね :-)

@takahashim
Copy link
Collaborator

B5で組まれたPDFファイルに対して、各頁にトンボをつけてA4へ画像と埋め込んだPDFファイルを作れば、期待値をみたせますね :-)

むむ、これってどうすればできるんでしょうか?

@munepi
Copy link
Contributor Author

munepi commented Apr 30, 2016

@takahashim さん、

むむ、これってどうすればできるんでしょうか?

トンボマークの処理を全部自作してもよいですね。
また、既存の pTeX のトンボ、crop パッケージの crop マークを利用した例を以下にあげてみました。

https://gist.github.com/munepi/7780258f3e3840d2517f7e35ba25f4f6

これの test-pltx-tombo-jisb5-a4.tex を使うと、pTeX のトンボをとりあえずつけられます。

@takahashim
Copy link
Collaborator

@munepi なんと、これでできるんですね。ありがとうございます!!

takahashim and others added 24 commits May 3, 2016 13:59
config.yml: add simplified sample
I18n.t: fix format_number_header
TOPBuilder: add a test for `@<comment>{}` in draft mode
check caption by using present? instead of nil? on IDGXMLBuilder.
add instruction to column headline for toc on IDGXMLBuilder.
fix missing default dc:identifier value.
…cumentclass option; We use dvipdfmx driver when running review-pdfmaker
@takahashim takahashim merged commit fc9c653 into kmuto:master May 7, 2016
@takahashim
Copy link
Collaborator

とりあえずgeometryパッケージの件は置いておいて、いただいたpull requestについてはテスト修正してマージしました。

@munepi
Copy link
Contributor Author

munepi commented May 7, 2016

👍

あ、platexuplatex 問わずに、以下のように変更して、十分だと思います。次の layout.tex.erb の改善時にでも手を入れましょうか。

-<%- if @texcompiler == "uplatex" -%>
 \usepackage[dvipdfmx]{pxjahyper}
-<%- else -%>
-\ifnum 46273=\euc"B4C1 % 46273 == 0xB4C1 == 漢(EUC-JP)
-  \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}%
-\else
-  \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}%
-\fi
-<%- end -%>

@takahashim
Copy link
Collaborator

お、そうなんですね。じゃあこれも入れちゃいましょうか。

@munepi munepi deleted the enhanced-layout-tex branch October 10, 2018 03:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants