That's the effect of xeCJK
, it uses CJK fonts for these punctuations. If you don't need Japanese text (Sazanami Mincho is a Japanese font), you can delete it and \setCJKmainfont
command. And if you use only a little, you can use \makexeCJKinactive
to disable xeCJK
for most western text of your document. I'm sorry that this command is not well documented in the English part of the manual. (I'm one of the developers of xeCJK
.)
An example:
\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{Adobe Song Std}% a Chinese font
\begin{document}
\makexeCJKinactive
“Western text,” Okey.
\makexeCJKactive
“中文”(Chinese text)
\makexeCJKinactive
\end{document}
BTW, babel
may not work well with XeLaTeX and fontspec
. However, polyglossia
package may conflict with xeCJK
, even if you use \makexeCJKinactive
, they both use the \XeTeXinterchartoks
to change the fonts for different glyphs. I didn't tested, thus I'm not quite sure about the compatibility.
If you use Japanese for only a few words, e.g. names of persons, you don't need xeCJK
. You can just change the font manually for these words.
I don't really get the question so I hope this is what you wanted. If you include a full document (such that we copy paste and see the problem on our systems) things are much more easier.
Here, you can change the default setting within a scope but your block
style had a node distance
which was resetting every time it is issued. I've made it 2mm such that we can see the difference easier.
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows,shapes.geometric,positioning}
\begin{document}
\begin{tikzpicture}[decision/.style={diamond, draw, text width=4.5em, text badly centered, node distance=3.5cm, inner sep=0pt},
block/.style ={rectangle, draw, text width=6em, text centered, rounded corners, minimum height=4em, minimum height=2em},
cloud/.style ={draw, ellipse, minimum height=2em},
line/.style ={draw,-latex'},
node distance = 1cm,
auto]
\node [block] (1st) {1st};
\node [block, right= of 1st] (2nd1) {2nd1};
\begin{scope}[node distance=2mm and 10mm]%Here we change it for everything inside this scope
\node [block, above= of 2nd1] (2nd2) {2nd2};
\node [block, below= of 2nd1] (2nd3) {2nd3};
\node [block, right= of 2nd1] (3rd1) {3rd1};
\node [block, above= of 3rd1] (3rd2) {3rd2};
\node [block, above= of 3rd2] (3rd3) {3rd3};
\end{scope}
\node [block, below= of 3rd1] (3rd4) {3rd4};
\node [block, below= of 3rd4] (3rd5) {3rd5};
\path [line] (1st) -- (2nd1);
\path [line] (2nd1) -- (2nd2);
\path [line] (2nd1) -- (2nd3);
\path [line] (2nd2) -- (3rd3);
\path [line] (2nd1) -- (3rd1);
\path [line] (1st) -- (2nd1);
\end{tikzpicture}
\end{document}
Best Answer
Never use
"
for quotes. In particular, languages wherebabel
uses"
as a shorthand will make straight double quotes fail in various ways. The correct form isor, with Unicode characters
Why
"
mustn't be used for quotes? It's true that what's printed is, sometimes, the glyph ”, but this character usually has no setting of the\sfcode
, which means wrong spacing at sentence ending periods that are typed (as normal in American typography) before the closing quotes.But the biggest problem is with
babel
and the many languages for which"
is used as a shorthand. The mechanism uses\@ifnextchar
and so spaces are ignored after the character, which is exactly what happens in the example.None of these problems happens when
''
or”
are used (the latter of course requires a suitable call ofinputenc
). Good editors can be set up so that typing"
triggers a proper action. For instance, with Emacs and AUCTeX, typing"
will produce``
if after a space (or at the beginning of a line),''
otherwise; typing another"
produces a single"
.