表の長方形のセルに斜線を書く方法。

表の長方形のセルに斜線を書く方法。

- 鳩 場土 の投稿
返信数: 19
 プリアンブルに\usepackage{slashbox}と書きました。
 表のセルに斜線を書くために、そのセルに\slashboxと書き込んだところ、そのセルの形状が正方形になってしまいました。

 セルの形状を長方形に保ったまま、セルに斜線を書く方法を教えてください。
 よろしくお願い致します。
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- aminophen の投稿
表組みで斜線を入れた経験がなかったのですが実験:

とりあえず \slashbox[3cm]{}{} や \backslashbox[5zw] のように [ ] で
オプションを指定すると、斜線の横幅が広がります。

\documentclass{jsarticle}
\usepackage{slashbox}
\begin{document}
\begin{table}[htb]
  \begin{tabular}{|l||c|r|r|} \hline
    \backslashbox[6zw]{}{} & 値段 & カロリー \\ \hline \hline
    牛丼並盛 & 500円 & 600 kcal \\
    牛丼大盛 & 1,000円 & 800 kcal \\
    牛丼特盛 & 1,500円 & 1,000 kcal \\ \hline
    牛皿並盛 & 300円 & 250 kcal \\
    牛皿大盛 & 700円 & 300 kcal \\
    牛皿特盛 & 1,000円 & 350 kcal \\ \hline
  \end{tabular}
\end{table}
\end{document}

私も全く知らない状態で検索したら熊澤さんのサイトがヒットして
http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/slashbox.html
そちらでも紹介されていたので、ここで質問するまでもないのでは? とも思うなど。
aminophen への返信

Re: 表の長方形のセルに斜線を書く方法。

- 鳩 場土 の投稿
To: アセト アミノフェンさん

 早速の返信、ありがとうございます。
 実は、熊澤さんのサイトは、既に読んでいますが、上手く行かないので、こちらで質問させていただきました。

 あるセルに\slashuboxを入れると、セルの高さが勝手に高くなってしまい、セルの形状が正方形になります。
 その状態で、オプションを付けると、セルの高さが高いまま横幅が増えてしまいます。

 セルの高さを変えずに、セルに斜線を書くには、どうしたら良いでしょうか?
 度々すいませんが、よろしくお願い致します。

 上手く行かない表のソースは、下記の通りです。

\documentclass [b5paper, fleqn, papersize] {jsarticle}

\usepackage{amsmath}
\usepackage{newtxtext, newtxmath}
\usepackage{slashbox}

\pagestyle{empty}

\begin{document}
%
\begin{center}
\begin{tabular} {|c|c|c|c|c|c|c|c|c|c|} \hline
$x$ & … & $\gamma$ & … & $-1$ & … & $0$ & … & $1$ & … \\ \hline
$f_n'(x)$ & + & $0$ & $-$ & \slashbox & $-$ & $0$ & + & \slashbox & + \\ \hline
$f_n(x)$ & $\nearrow$ & & $\searrow$ & \slashbox & $\searrow$ & $1$ & $\nearrow$ & \slashbox & $\nearrow$ \\ \hline
\end{tabular}
\end{center}
%
\end{document}


P.S.
emathTを使おうとしましたが、上手く行きませんでした。
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 匿 名 の投稿
> 実は、熊澤さんのサイトは、既に読んでいますが、上手く行かないので、こちらで質問させていただきました。
> あるセルに\slashuboxを入れると、セルの高さが勝手に高くなってしまい、セルの形状が正方形になります。
> その状態で、オプションを付けると、セルの高さが高いまま横幅が増えてしまいます。
> セルの高さを変えずに、セルに斜線を書くには、どうしたら良いでしょうか?
> 度々すいませんが、よろしくお願い致します。

いやいやいやいや…
そうならそうと最初から質問時に書かないとダメでしょう?

アセトアミノフェンさんの回答で既に「セルを長方形に保つこと」はできています。
そしてそれが納得いかないとまた質問する。これでは回答者への失礼にあたります。

いま Google 検索したらふつうに昔の Q&A スレッドの回答がでてきました。ちゃんと検索する努力をしていますか?
そして、このフォーラムでは「上手くいきませんでした」「上手くいきました」という表現は厳禁にしましょう。
「何をどうしたらこんなエラーが出た」あるいは「何をどうしたら期待していたのはこうだったのにこんなふうになった」
という情報がなければ回答せずスルーする方針が、お互いのためではないかと。
匿 名 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 鳩 場土 の投稿
 ググって見つかったありとあらゆる方法を真似してみましたが、何を試しても、斜線を書いたセルは、必ず正方形または高さの高い長方形になってしまうのでした。
 検索しても、未だに、これを回避する方法が見あたりません。
 どうか、お助け願います。

鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 匿 名 の投稿
> ググって見つかったありとあらゆる方法を真似してみましたが、何を試しても、斜線を書いたセルは、必ず正方形または高さの高い長方形になってしまうのでした。

ググって試したのはどこですか? URL を貼るか引用してください。
さっきから情報が不足していることを注意しているのです。
匿 名 への返信

Re: 表の長方形のセルに斜線を書く方法。

- aminophen の投稿
> 情報が不足していることを注意しているのです。

これは全くそのとおりで、私がこれ以上検索して回答しても「それはもう試しました」と言われそうなので、
私は必要な情報が提示されない限り回答を控えようと思います。

このフォーラムでの質問のしかたについては最近気になることが多いので、何度も言われていることですが。

TeX Forum は技術系フォーラムの一種で、そこは後から来た人が新たな質問をせずとも検索すれば役に立つ「データベース」としての役割が大きいです。
質問者・回答者の別なく、各人が一方的なサポートセンターではなく互助会であるという意識を持つべきです。
TeX Wiki の「質問のしかた」や結城さんのサイトも参考に。
aminophen への返信

Re: 表の長方形のセルに斜線を書く方法。

- 鳩 場土 の投稿
 度々、すいません。

http://www.yamamo10.jp/yamamoto/comp/latex/make_doc/table/table.php#HEIGHT_COLUMN

を見て、先のソース・ファイルにて、行の最後に\rule[0mm]{0mm}{5mm}というコマンドを付け加えてみたのですが、行の高さは、高いままでした。

 お助け願います。
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 匿 名 の投稿
mathtips.sty
http://mixedmoss.com/mathtips/Japanese/tex.html
を利用されて、下記のようにするのは如何でしょうか。
\documentclass [b5paper, fleqn, papersize] {jsarticle}
\usepackage{amsmath}
\usepackage{newtxtext, newtxmath}
\usepackage{slashbox}

\usepackage{eepic,mathtips}

\pagestyle{empty}
\begin{document}
$$
\zogen{<br /> {x , \cdots , \gamma , \cdots , -1 , \cdots , 0 , \cdots , 1 , \cdots }
{f_n'(x) , + , 0 , - , \Slash , - , 0 , + , \Slash , + }
{f_n(x) , \nearrow , , \searrow , \Slash , \searrow , 1 , \nearrow , \Slash , \nearrow}
}
$$

\end{document}
匿 名 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 匿 名 の投稿
本題とは無関係ですが、上の匿名さんの回答について。
$$ … $$ は LaTeX では使うべきでないです。
実際、上のソース例で fleqn を指定していますが、$$ … $$ で囲んだ数式は左寄せになりません。
-https://twitter.com/zr_tex8r/status/597749305164759041
-https://twitter.com/zr_tex8r/status/597766041196867586

l2tabu で取り上げられているものの中でもとりわけ $$ … $$ は使うべきではありません。
\[ … \] や \begin{align*} … \end{align*} に置き換えてください。
-http://ichiro-maruta.blogspot.jp/2013/03/latex.html
匿 名 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 鳩 場土 の投稿
 mathtips.styを使うことによって、セルの高さを変えずに斜線の入った増減表を書くことができました。
 有益なアドバイスを頂き、大変感謝しております。
 どうもありがとうございました。
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 匿 名 の投稿
> mathtips.styを使うことによって、セルの高さを変えずに斜線の入った増減表を書くことができました。

おい、それで終わりなのか!?
それなら最初から「増減表に斜線を入れたい」と質問すべきでしょ?
答えるために必要な情報も与えない、しかもそんななか親切に調べて答えてくれた
他の人に対しては何の返答も謝罪もない。それではあまりに乱暴で失礼でしょう?
もう誰も何も答えてくれなくなることを覚悟してください。
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 匿 名 の投稿
だ・か・ら!!
あなたが書いたソースを載せろって言ってんだよ!
たったそれだけのことが何故できないんだろう?
匿 名 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 和田 勇 の投稿
和田と申します。
スレッドの途中に返信することにします。

恒久的な解決ではなくアドホックな対処になってしまいました....

回答に入る前に。。。提示された入力例のなかに記述されていた \slashbox
には引数 {}をつけ \slashbo{..}{..} としましょう。もし表の一番最後カラムにいれると LaTeX エラーになります。提示されたものは途中の項目であったため各種処理で引数があったと同じ扱いになっただけですから(だと和田は考えています)。

さて、引数のなかに指定するものは、「何も表示したくない」とおもうので「空っぽ」で指定してみると欄幅が広くなったときの対応ができないようです。全角の空白を指定すると欄幅に応じて斜め線が引けます。このほかの方法では LaTeX の空白シリーズ(quad とか qquad hspace ほか)を試したところ「 ~ ~ 」(二つのチルダの前後に空白あり)とすると全角漢字空白と同じように斜め線が欄幅一杯にひけます。

でも「高さが二倍」になってしまいます。

さてさて ... slashbox は横見出しと縦見出しが交差するところにそれぞれのものを示す目的のような設計のようで、箱を二つ縦に積んで組版するようになっているようにおもいます。なので高さが二倍になる。

お望みのようなセルに斜め線を引く方法には、参照されていた http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/slashbox.html の最後に senbun というマクロを使ってた例があります。ソースのなかにマクロが書かれています。が、欄幅に自動対応することはちょっとしんどい感じがしたので slashbox.sty をしばし観察 ...
すると箱を縦に積んでいるところがあり、以下のようにコメントアウトして取り込むとお望みのような結果が得られました。よろしかったら試してみてください。

ただし {}  のなかは「三つのチルダの前後に空白」があるタイプでないと自動で欄幅に対応した斜め線がひけませんでした。全角の空白も NG でした。

platex + dvipdfmx したものを添付しますので参考にしてください。

--- slashbox.sty 2015-06-26 19:46:13
+++ slashbox.sty 2015-06-26 21:18:29
@@ -46,7 +46,7 @@
     \ifdim\@tempdimb>\@tempdima \@tempdima=\@tempdimb\fi%
     \@tempdimb=\ht\@slashboxa
     \advance\@tempdimb by \dp\@slashboxa
-    \advance\@tempdimb by \ht\@slashboxb
+%    \advance\@tempdimb by \ht\@slashboxb この行を探して行頭に % をつける
     \advance\@tempdimb by \dp\@slashboxb
     \@tempcnta=\@tempdima
     \@tempcntb=\@tempdimb

#マクロを書き換えているので適宜 myslashbox などとすると良いかと思いますが....


和田 勇 への返信

Re: 表の長方形のセルに斜線を書く方法。

- aminophen の投稿
とりあえず、このトピックの目的「表の長方形のセルに斜線を書く」の解答をまとめますね。
一般に、表に斜線を入れる方法は LaTeX では準備されていないようです。
よって自力でなんとかする必要があるわけですが…

(1) slashbox パッケージやその改善版 diagbox には \slashbox{一つ目}{二つ目} という
斜線の両側に言葉を入れ、適宜斜線の横幅を伸縮させる(らしい)マクロ」がある

-----
% slashbox の例;両側に単語が入る
\documentclass{jsarticle}
\usepackage{slashbox}
\begin{document}
\begin{table}[htb]
  \begin{tabular}{|l||c|r|r|} \hline
    \backslashbox{メニュー}{項目} & 値段 & カロリー \\ \hline \hline
    牛丼並盛 & 500円 & 600 kcal \\
    牛丼大盛 & 1,000円 & 800 kcal \\
    牛丼特盛 & 1,500円 & 1,000 kcal \\ \hline
    牛皿並盛 & 300円 & 250 kcal \\
    牛皿大盛 & 700円 & 300 kcal \\
    牛皿特盛 & 1,000円 & 350 kcal \\ \hline
  \end{tabular}
\end{table}
\end{document}
-----

-----
% diagbox の例;両側に単語が入る
\documentclass[dvipdfmx]{jsarticle} % diagbox が依存する pict2e はドライバ依存
\usepackage{diagbox}
\begin{document}
\begin{table}[htb]
  \begin{tabular}{|l||c|r|r|} \hline
    (中身は slashbox の例と全く同じなので省略)
  \end{tabular}
\end{table}
\end{document}
-----

上の2つのうち、pict2e の高度な描画機能を使う diagbox のほうがもちろん綺麗な線が描ける
のでおすすめ。ただし、ドライバ依存なので pLaTeX + dvipdfmx ならドライバ指定を忘れずに。

(2) ただし、単語を入れない場合には slashbox や diagbox が対応していないため、結果的に
「箱を二つ縦に積んで組版する分高さが2倍になる」という問題がある。(Thanks: 和田さん)
一つの案として、\slashbox の内部コマンド \@@@slashbox を改変するとよいかもしれない。
(そして、引数が空だと斜線の横幅が広がらないので「 ~ ~ 」と書けばいいらしい!)

この \@@@slashbox の改変をソース中で行うなら、例えば以下のように書けばよい:

-----
% slashbox の改変例:両側に単語なし
\documentclass{jsarticle}
\usepackage{slashbox}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@@@slashbox}{\advance\@tempdimb by \ht\@slashboxb}{}{}{}
\makeatother
\begin{document}
\begin{table}[htb]
  \begin{tabular}{|l||c|r|r|} \hline
    \backslashbox{ ~ ~ }{ ~ ~ } & 値段 & カロリー \\ \hline \hline
    牛丼並盛 & 500円 & 600 kcal \\
    牛丼大盛 & 1,000円 & 800 kcal \\
    牛丼特盛 & 1,500円 & 1,000 kcal \\ \hline
    牛皿並盛 & 300円 & 250 kcal \\
    牛皿大盛 & 700円 & 300 kcal \\
    牛皿特盛 & 1,000円 & 350 kcal \\ \hline
  \end{tabular}
\end{table}
\end{document}
-----

[注意]この修正を行った場合、当然ながら (1) の結果も変わってしまう(縦幅を広げる処理
を除去した分、単語を入れた場合にも縦幅が広がらない)。

(3) 頑張って描画コマンドを使って手書きすることもできる(手動調整)
多少面倒だが、qa:50011 やマクロツイーターで説明されている。後者の場合の例:

-----
% TikZ を使って斜線を頑張って引く
\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}
\begin{table}[htb]
  \begin{tabular}{|c||c|r|}\hline
    \tikz[baseline=0pt]{% 斜線<br />      \useasboundingbox(0,0);<br />      \draw(-1.03,0.40)--(1.03,-0.17);}
    & 値段 & カロリー \\\hline 
    牛丼並盛 & 480円 & 600 kcal \\
    牛丼テラ盛 & 1,980円 & 2,900 kcal \\\hline
  \end{tabular}
\end{table}
\end{document}
-----

(4) ただし、増減表に特化した場合なら mathtips.sty を使う方法もある。
(これは 2015年 06月 26日(金曜日) 12:26 - 匿 名 の投稿より)

-----
% mathtips で増減表
\documentclass{jsarticle}
\usepackage{slashbox}
\usepackage{eepic}
\usepackage{mathtips}
\begin{document}
\[
\zogen{<br />{x , \cdots , \gamma , \cdots , -1 , \cdots , 0 , \cdots , 1 , \cdots }
{f_n'(x) , + , 0 , - , \Slash , - , 0 , + , \Slash , + }
{f_n(x) , \nearrow , , \searrow , \Slash , \searrow , 1 , \nearrow , \Slash , \nearrow}
}
\]

\end{document}
-----

[注意]mathtips が依存する eepic は pLaTeX + dvipdfmx なら使えるが pdfLaTeX では
使えないので、pdfLaTeX を使いたい場合は \usepackage{eepic} の代わりに
\usepackage[dvipdfmx]{bxeepic} と書けば pict2e が使われて便利。


…と、こんなところですね。
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 鳩 場土 の投稿
 皆様方には、多くの貴重なアドバイスを頂き、大変感謝しております。
 お陰様で、問題を解決することができました。
 ありがとうございます。

 私の質問の拙さのために、皆様方にご迷惑をお掛けし、不愉快な気分にさせてしまったことを、お詫び申し上げます。
 申し訳ありませんでした。

 実は、私は、「アスペルガー症候群」という先天的な精神障害を持って生まれてきたため、健常者のような常識的なコミュニケーションをとることができません。
 論理的思考力・判断力は、健常者と同等かそれ以上ですが、先天的に情緒的判断力が極めて劣っており、そのため、健常者の常識では考えられないような問題が、リアル世界でも、度々発生します。

 この障害のため、自分の言動が引き起こすことになる重大な問題を、事前に予測することができないのは、その一例です。
 そのため、全く悪気もなく発した私の発言が人を憤慨させるといったことが度々起こり、なぜその人が憤慨しているのか分からない私は、当惑することになります。
 また、私の言動の誤りを指摘されると、論理的に納得することはできますが、情緒的な学習能力が極めて低いため、同じ誤りを何度も繰り返すことになります。
 例えば、子供の頃、「人前で、そんなこと言っちゃダメだよ。」と注意されたことを、大人になった今でも言ってしまうといったことが多々あります。
 私の情緒的判断力は、子供の頃と全く同じままなのです。そのため、この障害は、「発達障害」とも呼ばれています。

 「たったそれだけのことが何故できないんだろう?」という指摘がありましたが、私が障害者であることを認識できない健常者から、こういった心ない罵声を浴びせられることが、リアル世界でも多々あり、日々、傷つきながら生きています。
 まともな論理的思考力や記憶力のある者が誤った情緒的判断を下し、それを度々指摘されても直せない場合、本来ならば、その者が「障害者」であることを第三者は認識しなければなりません。
 その本来的なことができず、「障害者」の精神的欠陥を指摘し罵声を浴びせる行為は、露骨かつ卑劣な障害者差別であり、この上なく倫理観を欠いた行為であって、社会的に戒めらなければなりません。
 リアル社会であれ、ネット上のコミュニティであれ、障害者に対する差別発言は、著しく倫理観を欠いた非人道的行為として社会から糾弾されるべきです。

 私は、この精神障害のため、コミュニケーション能力の必要な組織的な仕事や遊びは、一切出来ず、そのため、定職に就くことも出来ません。
 私は、ただひたすら、なるべく世間様にご迷惑をお掛けしないように、ひっそりとつつましく孤独に生きております。
 リアル世界のみならず、ネット上のコミュニティにおいても、私のような障害者は、排斥されることになるかと思うと、かなり切ない気分になります。

 「アスペルガー症候群」という、この先天的な精神障害は、現代の医学では治療できないので、私が情緒的な予測力・学習能力を獲得することは、今後もないと思われます。
 そのため、リアル世界においても、ネット上のコミュニティにおいても、私は、人様にご迷惑をお掛けし不愉快な気分にさせて、しかも、自分はそのことに全く気付かないといったことが度々起こるでしょう。
 また、人から私の言動の誤りを反復して指摘されても、全く直すことができず、人を憤慨させるといったことも度々起こるでしょう。

 私は、今後も、このフォーラムを利用させて頂こうと思いますが、私の発言が引き起こす問題は、私の悪意によって生じるものではなく先天的な精神障害によるものであることを、ご理解願います。
 今後とも、よろしくお願い致します。
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 匿 名 の投稿
>論理的思考力・判断力は、健常者と同等かそれ以上ですが

そのような人の発言とは思えませんね.
あなたの投稿からわかることは「私は障害者なのだからお前らが我慢しろ!私自身を変えるようなことは一切しない!」ということだけです.
匿 名 への返信

Re: 表の長方形のセルに斜線を書く方法。

- 古水 達朗 の投稿
匿名さま

<論理的思考力・判断力は、健常者と同等かそれ以上ですが

という鳩さんの書き込みに対して

<そのような人の発言とは思えませんね.

と応じられました。
ずいぶん高慢ちきなことを書くやつだと思われたのだと思います。

が、鳩さんが書かれているご自分の状態から考えれば、このような書き込みは想定内、許容範囲内のことだと、わたしは思いました。

鳩さんは障害者差別にも言及されています。
その表現方法に異論を持つ方もいると思いますが、
それもまた、想定内、許容範囲内のことのように受けとれます。

アセトアミノフェンさんのような反応もあります。

今後の展開を注意深く見守りたいと思います。

鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- aminophen の投稿
鳩 場土さんがこのトピックで不快な思いをされるのは我々の望むところではないので書きます。

私は「ユーザ登録している人の人格を責めるような発言は厳禁」だと思っています。
ユーザ登録した時点で過去の発言を遡られる可能性があるので、ある程度発言に対して責任を持とうという意識があると思います。
そんななかご自身の状況を明らかにされるのは、(本名ではないのでリアルの人物が特定できないとはいえ)勇気のいることです。

さて、鳩 場土さんに対してですが、ご自身の努力がもう少し必要なのは確かです。

私が一度発言した一般論
> TeX Forum は技術系フォーラムの一種で、そこは後から来た人が新たな質問をせずとも検索すれば役に立つ
> 「データベース」としての役割が大きいです。
> 質問者・回答者の別なく、各人が一方的なサポートセンターではなく互助会であるという意識を持つべきです。
は難しいかもしれません。「一般論をもとにその都度、今何が必要なのか」を考えるのは一つ次元が上です。

ただ、その都度回答者から「何かをしてください」と言われたらそれにきちんと応じる努力は大事です。
これは「今まさに求められていることに対して、そのとおり答える」ことであれば努力で補えるという仮定の下ですが
> 「何をどうしたらこんなエラーが出た」あるいは「何をどうしたら期待していたのはこうだったのにこんなふうになった」
> ググって試したのはどこですか? URL を貼るか引用してください。
これらは妥当な発言だと思います。
私もこれを受けて一度「情報不足」と発言していますが、質問者である鳩 場土さんに対して「何を書いてほしいのか」を明記して
いるので、努力次第ではその要求を満たすことはできるのではないでしょうか。

(今はここまで。あとでもう少し発言するかもしれません)
鳩 場土 への返信

Re: 表の長方形のセルに斜線を書く方法。

- h s の投稿
鳩 場土さんがアスペルガー症候群であるとして、今回の問題はアスペルガーであることで起こった問題なんでしょうか?

少なくとも質問の仕方に関する問題はアスペルガーとは関係なくよくある間違いです。アスペルガーであることに特有な部分はどこにあるんでしょうか?